如何使用Skleans的KMeans查看n_init每次迭代的聚类质心

时间:2018-08-05 19:41:37

标签: python k-means sklearn-pandas

我当前正在尝试查看从n_init的每次迭代确定的KMeans的每次迭代创建的质心(集群中心)。到目前为止,我已经能够查看最终结果,但是我希望在每次迭代中都能看到这些结果,因此我能够报告在每次迭代中使用init ='random'和预设聚类中心时KMeans的差异。以下是我目前拥有的简短示例 \

#Creating model for Kmeans
Model=[]

Model=KMeans(n_clusters=5,max_iter=10,n_init=10)
#Data trials below represents my data for model training
Model.fit(Data_Trials)

#Get Created Clusters
labels=Model.predict(Data_Trials)
inertia=Model.inertia_

### Gets created Cluster centroids for Final iteration of n_init
zTrial=pd.DataFrame(Model.cluster_centers_)

如果有人知道如何在每次迭代中获取此代码,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以反复进行游戏。以这个12点示例为例

kmeans = KMeans(n_clusters=3, random_state=0,max_iter=1).fit(X)
kmeans.predict([[0, 0], [2, 2],[6, 4]])

一次迭代

 kmeans.cluster_centers_
array([[ 2.75      ,  0.5       ],
       [ 1.83333333,  3.16666667],
       [ 1.        ,  8.5       ]])

因此我们拥有

kmeans = KMeans(n_clusters=3, random_state=0,max_iter=10).fit(X)
kmeans.cluster_centers_
array([[ 1.        ,  8.5       ],
       [ 2.75      ,  0.5       ],
       [ 1.83333333,  3.16666667]])

如果增加迭代次数

<div class="fieldWrapper">
    {{ form.subject.errors }}
    <div class="labelWrapper"><label for="{{ form.subject.id_for_label }}">Email subject:</label></div>
    {{ form.subject }}
</div>