将cluster_centers重新用于另一个K-mean聚类

时间:2018-01-15 20:16:56

标签: python scikit-learn k-means

我有一个维度矩阵(nw,ny,nx),其中nx和ny是图像的维度(光子计数),对于每个像素,我有一个nw波长点的光谱轮廓。

我已经从scikit-learn python包中应用了K-mean聚类,其簇数等于ncl = 5。

dat =dat1.reshape(nw,nx*ny)
mm[:]=KMeans(n_clusters=ncl).fit(np.transpose(dat)).labels_
x=KMeans(n_clusters=ncl).fit(np.transpose(dat)).cluster_centers_

然后绘制x [i,:](i =簇标签)我可以看到Kmeans生成的5种不同的平均光谱轮廓。 现在我的问题如下:我想在相同维度(nw,ny,nx)的不同数据集中使用这5个cluster_centers来检索我称之为mm的标签。我该怎么办?

提前感谢您的时间。

1 个答案:

答案 0 :(得分:1)

正如@sascha指出的那样,你需要保持KMeans对象来预测未来的数据

dat = dat1.reshape(nw,nx*ny)
clusterer = KMeans(n_clusters=ncl).fit(np.transpose(dat)

dat2 = dat2.reshape(nw,nx*ny)
dat2_labels = clusterer.predict(np.transpose(dat2))