我对于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])
这是我创建的情节的图像:
我正在使用的完整数据集是750k条记录,但出于测试目的,我将其采样到75k。