使用k-means聚类算法对鸢尾花数据集进行聚类分析,聚类数为3,输出样本原有数据标签及聚类结果对应的数据标签,观察聚类的准确性。
时间: 2024-12-15 13:21:04 浏览: 30
k-means是一种常用的无监督机器学习算法,用于将数据集分成预设数量的类别,例如在这个例子中是3个簇。对于鸢尾花数据集(Iris dataset),它包含了三种不同的鸢尾植物(setosa、versicolor和virginica)。首先,你需要加载数据并对其进行预处理,确保所有的数值特征在同一尺度上。
以下是使用Python(如sklearn库)进行k-means聚类的基本步骤:
1. 导入所需库:
```python
import numpy as np
from sklearn import datasets
from sklearn.cluster import KMeans
import pandas as pd
```
2. 加载鸢尾花数据集:
```python
iris = datasets.load_iris()
X = iris.data
y = iris.target
```
3. 创建KMeans实例并设置聚类数目为3:
```python
kmeans = KMeans(n_clusters=3)
```
4. 训练模型:
```python
kmeans.fit(X)
```
5. 预测聚类结果并获取新标签:
```python
labels = kmeans.labels_
```
6. 将原标签和预测的聚类结果合并到DataFrame中以便比较:
```python
results = pd.DataFrame({"Original Label": y, "Cluster Label": labels})
```
7. 分析聚类准确性,通常会计算轮廓系数(Silhouette Coefficient)、调整后的卡方统计量(Adjusted Rand Index, ARI)或混淆矩阵来评估效果。
阅读全文