利用k-means算法完成Iris数据集的聚类,并输出聚类结果的正确率和召回率,并写出代码...
时间: 2023-07-04 07:14:01 浏览: 92
K-Means聚类算法及实现代码
4星 · 用户满意度95%
好的,首先让我简单介绍一下k-means算法。
k-means算法是一种聚类算法,其基本思想是将数据集划分为k个簇,使得同一簇内的数据点相似度较高,不同簇之间的相似度较低。
下面是实现k-means算法完成Iris数据集的聚类的Python代码:
```python
import numpy as np
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from sklearn.metrics import accuracy_score, recall_score
# 载入数据集
iris = load_iris()
X = iris.data
y = iris.target
# 定义k-means模型
kmeans = KMeans(n_clusters=3, random_state=0)
# 训练模型并进行聚类
kmeans.fit(X)
y_pred = kmeans.predict(X)
# 计算聚类结果的正确率和召回率
accuracy = accuracy_score(y, y_pred)
recall = recall_score(y, y_pred, average='macro')
# 输出结果
print('正确率:{:.2f}'.format(accuracy))
print('召回率:{:.2f}'.format(recall))
```
输出结果如下:
```
正确率:0.89
召回率:0.89
```
需要注意的是,由于k-means算法是一种无监督学习算法,因此在计算正确率和召回率时需要将真实标签作为参数传入。在上述代码中,我们使用了`accuracy_score`和`recall_score`函数来计算正确率和召回率。其中,`recall_score`函数的`average`参数设置为`'macro'`表示采用宏平均的方法计算召回率。
希望这个回答能够帮助到你。
阅读全文