使用k-means聚类算法对鸢尾花数据集进行聚类分析,聚类数为3,输出样本原有数据标签及聚类结果对应的数据标签,观察聚类的准确性
时间: 2024-12-12 16:29:33 浏览: 13
高质量源码_spectral_k-means聚类算法_鸢尾花数据分类_手写数字识别_
使用K-means聚类算法对鸢尾花数据集进行分析通常需要以下几个步骤:
1. **导入库**:首先,我们需要导入必要的库,如`sklearn`中的`datasets`、`cluster`以及用于数据可视化和评估的`matplotlib`等。
```python
from sklearn import datasets
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
```
2. **加载数据**:接下来,加载鸢尾花数据集(Iris dataset),这是一个经典的机器学习数据集,包含150个样本,每个样本有4个特征(花瓣长度、花瓣宽度、萼片长度和萼片宽度)。
```python
iris = datasets.load_iris()
X = iris.data
y = iris.target
```
3. **选择聚类数**:因为题目要求聚类数为3,我们可以创建一个KMeans模型,指定`n_clusters=3`。
```python
kmeans = KMeans(n_clusters=3)
```
4. **训练模型**:使用数据拟合模型。
```python
kmeans.fit(X)
```
5. **预测聚类**:应用模型对原始数据进行聚类,得到新的标签。
```python
labels = kmeans.predict(X)
```
6. **对比原标签与新标签**:我们可以将新生成的聚类标签`labels`与原始数据的标签`y`对比,看看聚类效果如何。
7. **评估准确性**:计算Kappa系数或查看混淆矩阵来评估聚类结果的准确性,但这通常是针对分类任务的评价,对于K-means,更常用的是查看聚类的可视化效果和质心分布。
8. **可视化**:最后,可以绘制散点图,其中颜色代表聚类标签,直观地观察聚类的效果。
```python
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red')
plt.xlabel(iris.feature_names[0])
plt.ylabel(iris.feature_names[1])
plt.show()
```
通过以上步骤,你可以观察到K-means聚类的结果,以及聚类的准确性。不过要注意,由于K-means是一种无监督学习方法,聚类的好坏取决于初始质心的选择,可能会有所差异。在实际应用中,可能需要多次尝试调整参数或者使用其他的初始化策略来优化聚类效果。
阅读全文