helloDasim 2021-04-26 16:58 采纳率: 0%
浏览 145

有一组数据,维度为182,4如何进行kmean聚类分析?如何实现代码?

通过学习书本,想实现对这个维度数组进行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))

 

  • 写回答

3条回答 默认 最新

  • 11FIGHT11 2021-10-19 20:16
    关注

    from sklearn.metrics import fowlkes_mallows_score
    from sklearn.cluster import KMeans
    from sklearn.datasets import load_iris
    iris = load_iris()
    print(iris.data)
    print(iris.target)
    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))
    上述代码运行出来了
    iris数据聚2类FMI评价分值为:0.750473
    iris数据聚3类FMI评价分值为:0.820808
    iris数据聚4类FMI评价分值为:0.753970
    iris数据聚5类FMI评价分值为:0.725483
    iris数据聚6类FMI评价分值为:0.614345

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器