改变 Kmeans 算法的结果

Changing the results of Kmeans algorithm

我正在使用 KBinsDiscretizer 使用 kmeans 算法将我的数据聚类为四个类别,如下所示。目标是根据 avg_error 的值有 4 个集群。代码工作正常,returns 4 个集群为:

0:错误率极低,

1:错误率低,

2:错误率高,

3:错误率非常高。

最后两个簇中的数据点数量(2:高错误率,3:非常高错误率)非常低。我需要找到一种方法来影响结果,以便它为这两个集群分配更多的数据点。是否可以这样做,如果可以,怎么做?

enc = KBinsDiscretizer(n_bins=4, encode='ordinal', strategy="kmeans")

grouped = df.groupby('day')
clustered = pd.DataFrame()
for name, group in grouped:
  group["cluster"] = enc.fit_transform(group.avg_error.values.reshape(-1,1))
  clustered = clustered.append(group)

kmeans策略试图优化平方误差的统计量。那么您希望优化多少数量?

在您的数据上,您也可以简单地手动预定义阈值,而不是优化它们。