改变 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策略试图优化平方误差的统计量。那么您希望优化多少数量?
在您的数据上,您也可以简单地手动预定义阈值,而不是优化它们。
我正在使用 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策略试图优化平方误差的统计量。那么您希望优化多少数量?
在您的数据上,您也可以简单地手动预定义阈值,而不是优化它们。