利用k-means算法完成Iris数据集的聚类,并输出聚类结果的正确率和召回率,并写出代码...
时间: 2023-07-04 19:14:21 浏览: 95
K-Means聚类算法及实现代码
4星 · 用户满意度95%
好的,我来为您解答这个问题。
首先,让我们从数据集 Irsis 开始。Iris数据集是常用的分类实验数据集,由Fisher于1936年收集整理。数据集包含150个样本,分为3类,每类50个数据,每个数据包含4个属性。数据集中每个样本有4个属性,分别为花萼长度、花萼宽度、花瓣长度、花瓣宽度,分别记为x1、x2、x3、x4。样本的类别共有3种,分别为Iris Setosa、Iris Versicolour、Iris Virginica,分别记为y1、y2、y3。
接下来,我们将使用Python中的scikit-learn库来完成k-means算法的实现。以下是完整的代码:
```python
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from sklearn.metrics import accuracy_score, recall_score
# 加载Iris数据集
iris = load_iris()
X = iris.data
y_true = iris.target
# 进行k-means聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
y_pred = kmeans.predict(X)
# 计算聚类结果的正确率和召回率
accuracy = accuracy_score(y_true, y_pred)
recall = recall_score(y_true, y_pred, average='macro')
# 输出聚类结果的正确率和召回率
print('Accuracy:', accuracy)
print('Recall:', recall)
```
在上面的代码中,我们首先使用scikit-learn库中的load_iris函数来加载Iris数据集,并将数据集中的样本数据保存在X中,将样本的类别保存在y_true中。
接着,我们使用KMeans类来实现k-means聚类,其中n_clusters参数设置为3,表示将数据集聚成3个簇。我们使用KMeans类的fit方法来拟合数据集,并使用predict方法来预测每个样本所属的簇,将预测结果保存在y_pred中。
最后,我们使用accuracy_score和recall_score函数来计算聚类结果的正确率和召回率,其中average参数设置为'macro',表示计算每个类别的平均值。
希望这个答案能够帮到您。
阅读全文