NightHUNT 2022-12-05 12:16 采纳率: 100%
浏览 22
已结题

GaussianMixture聚类准确率

直接用sklearn里面的GaussianMixture对iris数据集进行聚类,准确率为什么很低呢?

iris=datasets.load_iris()
x=iris.data
y=iris.data
K=3#高斯混合的数目
gmm=GaussianMixture(n_components=K,covariance_type='full', random_state=0)
labels=gmm.predict(y)
print(labels)
######
运行后结果
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2
2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1]
数据集标签
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]

怎么提高准确率呢
  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-05 14:28
    关注

    望采纳


    其实你的准确率挺高的,因为聚类算法只知道最后的几个类别,但是类别编号并不知道,你把你的结果里的1和2调换一下,再判定就是没问题的。

    import sklearn
    from sklearn import datasets
    
    # 读取iris数据集
    iris = datasets.load_iris()
    
    # 接下来,使用sklearn库中的`GaussianMixture`类来创建一个高斯混合模型,并用它来对iris数据集进行聚类:
    from sklearn.mixture import GaussianMixture
    
    # 创建一个高斯混合模型
    gmm = GaussianMixture(n_components=3)
    
    # 使用iris数据集进行聚类
    gmm.fit(iris.data)
    
    # 打印聚类结果
    print(gmm.predict(iris.data))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 修改了问题 12月5日
  • 创建了问题 12月5日

悬赏问题

  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题