【发布时间】:2018-10-23 06:56:02
【问题描述】:
我正在运行一个 KNN 分类器,其特征向量来自一个 K-Means 分类器(更具体地说,sklearn.cluster.MiniBatchKMeans)。由于每次运行算法时我都会得到不同的结果,因此 K-means 从随机点开始。我已经将集群中心存储在一个单独的 .npy 文件中,从结果良好的时候开始,但现在我需要在我的 K-means 中使用这些中心,我不知道如何。
按照this 的建议,我尝试使用集群中心作为起点,如下所示:
MiniBatchKMeans.__init__(self, n_clusters=self.clusters, n_init=1, init=np.load('cluster_centers.npy'))
不过,每次运行算法时,结果都会发生变化。
然后我尝试在拟合数据后手动更改聚类中心:
kMeansInstance.cluster_centers_ = np.load('cluster_centers.npy')
不过,每次结果都不一样。
我能想到的唯一其他解决方案是使用我保存的中心手动实现预测方法,但我不知道如何,也不知道是否有比重写轮子更好的方法来解决我的问题.
【问题讨论】:
标签: python machine-learning scikit-learn cluster-analysis k-means