如何找到sklearn中K均值聚类的均值,中位数和众数?

时间:2019-04-01 17:05:24

标签: python scikit-learn k-means

我对于sklearn来说还比较陌生,所以使用kmeans时如果我的问题似乎过于初级或我误解了kmeans的功能,请原谅我,但我确实进行了搜索,但无法找到想要的解决方案。

我的理解是,KMeans.cluster_centers_属性将最接近的样本返回到聚类中心,但是有没有办法还为每个聚类返回“平均”样本值? (即,我想找到聚类中心的实际值,就好像它是它自己的样本,而不是离聚类最近的样本)。

我正在尝试使用cluster_centers_返回的样本来构建一个预测模型,该模型将传入的数据点分配给集群提供的值,但是,我觉得检索到的单个样本过度拟合了数据,所以我想获得一个可以“平滑”一点的样本,看看它是否可以减少误差和方差。

我也尝试绘制惯性图以查看最佳聚类数,但是我很难确定什么是最佳聚类数。一旦我超过8个群集,训练/拟合模型的时间就变得非常高,任何输入将不胜感激!

这是我用来绘制中心的代码:

closest, _ = pairwise_distances_argmin_min(kclustering.cluster_centers_, df_reads)

plt.subplot(412)
plt.title('Various load curves shown')
plt.xticks(np.arange(0,24,1))
plt.yticks(np.arange(0,1,0.1))

for i, center in enumerate(closest):
    plt.plot(range(0,len(df_reads.iloc[center])), df_reads.iloc[center])

这是我创建的情节的图像:

enter image description here

我正在使用的完整数据集是750k条记录,但出于测试目的,我将其采样到75k。

0 个答案:

没有答案