我正在尝试使用Scikit-learn进行K均值聚类。 代码:
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters = 10)
x = df.values
kmeans.fit(x.reshape(-1, 1))
如果参数
n_init = random
,它会选择随机的初始质心。有没有一种方法可以获取使用的初始质心?我正在尝试使用Scikit-learn进行K均值聚类。 代码:
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters = 10)
x = df.values
kmeans.fit(x.reshape(-1, 1))
n_init = random
,它会选择随机的初始质心。有没有一种方法可以获取使用的初始质心?在将KMeans
对象拟合到数据后,才能获得聚类中心。
小技巧!
因此,您可以将参数max_iter
设置为1
。默认情况下,它设置为300
,然后中心点可能会在每次迭代时发生变化。
如果您仅使用一次迭代,该算法将将每个样本分配给一个初始中心,然后停止更新中心。
因此,调用.cluster_centers_
将返回初始质心!
是的,我认为您可以在调用fit()
之前尝试centroids = kmeans.cluster_centers_
fit()
调用后 cluster_centers_
将不再可用。我会创建一个质心数组并使用它来创建聚类。kmeans = KMeans(init=centroids_array)
。这样我们可以自定义质心的初始化方式。再次对我的回答未经核实表示歉意。 - xtt