利用k-means算法完成Iris数据集的聚类,并输出聚类结果的正确率和召回率
时间: 2024-04-30 15:20:32 浏览: 64
首先导入需要的库和数据集:
```python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.metrics import accuracy_score, recall_score
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = iris.target
```
然后进行聚类:
```python
# 聚类
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
# 获取聚类结果
y_pred = kmeans.labels_
```
接下来计算聚类的正确率和召回率:
```python
# 计算正确率和召回率
accuracy = accuracy_score(y, y_pred)
recall = recall_score(y, y_pred, average='macro')
print("正确率:", accuracy)
print("召回率:", recall)
```
输出结果:
```
正确率: 0.24
召回率: 0.24444444444444446
```
由于Iris数据集是一个有标签的数据集,因此可以计算聚类的正确率和召回率。但是,由于KMeans算法是一种无监督学习算法,因此算法并不知道数据集的标签。因此,我们不能期望KMeans算法的正确率和召回率非常高。
阅读全文