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和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))