我正在尝试在Scipy中应用 kmeans2算法。以下代码正确应用了该算法。
from scipy.cluster.vq import kmeans2,vq
import numpy as np
df = pd.read_csv("123.csv")
km,_ = kmeans2(X,2)
idx,_ = vq(X,km)
我将如何观察集群中心?我已经尝试过print(centers),print(centroids)等,但是没有用。
我将如何观察群集标签?例如,在sklearn KMeans中,这由 labels _ 给出。
我尝试了print(labels)及其所有变体,这些都可以在《 Scipy参考指南》中找到,但似乎没有任何作用。
此外,在初始化方法下,它指出矩阵是minit中可用的方法。我无法认出我放入的任何矩阵。 我通常会收到一条错误消息,提示“无法理解的数据类型”或“无法散列的类型:'列表'。
之所以尝试这样做,是因为我想运行KMeans聚类算法,可以在其中手动选择每个聚类中心,然后将每个点归类为最近的中心。
我只是不了解“ minit”的工作原理,还是只是没有以正确的形式输入矩阵
答案 0 :(得分:0)
km应包含聚类中心。尝试
打印(公里)
关于标签,它应该是kmeans2返回的第二个变量。
这是一个有效的示例:
File.Delete
结果:
df = [[1.,2.,3.], [7.,8.,9.], [2.,2.,2.], [7.,8.,6.]]
centers,labels = kmeans2(df,2)
print(centers)
print(labels)