通过学习书本,想实现对这个维度数组进行kmean聚类,通过for循环查看聚类数为多少是最合理的?
这是通过学习书本上,了解到鸢尾花的模型,这个是随机的模型,查看到iris_data与iris_target都是直接获取的,但是我这个源数据如何获取相对应的数据,源数据本身可以使用data代替,求大神解答
from sklearn.metrics import fowlkes_mallows_score
for i in range(2,7):
#构建并训练模型
kmeans = KMeans(n_clusters=i,random_state=123).fit(iris_data)
score = fowlkes_mallows_score(iris_target,kmeans.labels_)
print('iris数据聚%d类FMI评价分值为:%f'%(i,score))
这个是我的源数据,其中NAN已经处理了,可以忽略
incomeperperson internetuserate urbanrate
country
Afghanistan NaN 3.654122 24.04
Albania 1914.996551 44.989947 46.72
Algeria 2231.993335 12.500073 65.22
Andorra 21943.339900 81.000000 88.92
Angola 1381.004268 9.999954 56.70
... ... ... ...
Vietnam 722.807559 27.851822 27.84
West Bank and Gaza NaN 36.422772 71.90
Yemen, Rep. 610.357367 12.349750 30.64
Zambia 432.226337 10.124986 35.42
Zimbabwe 320.771890 11.500415 37.34
这是我修改后的,但是报错了,这是报错内容:labels_true must be 1D: shape is (182, 3)。没有数据标签集,我理解的标签集是国家名,这个理解是不是错误了?求大神解答
num = data.iloc[:,1:]
print(num)
from sklearn.metrics import fowlkes_mallows_score
for i in range(2,7):
#构建并训练模型
kmeans = KMeans(n_clusters=i,random_state=123).fit(num)
score = fowlkes_mallows_score(num,kmeans.labels_)
print('数据聚%d类FMI评价分值为:%f'%(i,score))