高斯混合模型 1)加载sklearn的鸢尾花数据集,查看数据的特征名称(feature_names),获取特征值X和标签值y; 2)对鸢尾花数据集,利用高斯混合模型进行聚类分析(创建模型,模型拟合,模型聚类); 3)使用特征'petal length (cm)'和 'petal width (cm)',可视化原始数据和聚类结果,将两者进行对比分析。(提示:这两个特征分别是X的第三列和第四列)
时间: 2024-03-31 09:33:50 浏览: 57
鸢尾花数据分析与建模1
好的,以下是你需要的代码:
```python
from sklearn.datasets import load_iris
from sklearn.mixture import GaussianMixture
import matplotlib.pyplot as plt
# 加载鸢尾花数据集
iris = load_iris()
# 获取特征值和标签值
X = iris.data
y = iris.target
# 创建高斯混合模型
gmm = GaussianMixture(n_components=3)
# 拟合模型并进行聚类
gmm.fit(X)
y_pred = gmm.predict(X)
# 可视化原始数据和聚类结果
plt.subplot(121)
plt.scatter(X[:, 2], X[:, 3], c=y)
plt.xlabel('petal length (cm)')
plt.ylabel('petal width (cm)')
plt.title('Original Data')
plt.subplot(122)
plt.scatter(X[:, 2], X[:, 3], c=y_pred)
plt.xlabel('petal length (cm)')
plt.ylabel('petal width (cm)')
plt.title('Clustered Data')
plt.show()
```
上述代码中,我们首先加载了鸢尾花数据集,并获取了特征值X和标签值y。然后,我们创建了一个高斯混合模型对象,并使用`fit`方法拟合模型,并使用`predict`方法对数据进行聚类。最后,我们使用`scatter`函数将原始数据和聚类结果进行可视化,并使用`c`参数设置点的颜色,以显示不同的类别。我们还使用`xlabel`和`ylabel`函数设置横轴和纵轴的标签,以及使用`title`函数给图表加上标题。最后,我们调用`show`函数显示图表。
注意:这里我们只选取了特征'petal length (cm)'和 'petal width (cm)'进行可视化,因为这两个特征对于鸢尾花数据集的聚类效果最好。
阅读全文