在Iris数据集上使用k-Means算法进行聚类,评价指标采用accuracy,将聚类结果保存在excel、txt等。
时间: 2024-03-05 07:49:41 浏览: 138
首先,我们需要加载 Iris 数据集,接着使用 K-means 算法对数据进行聚类,最后计算聚类结果的准确率并将结果保存在 Excel 和文本文件中。
以下是 Python 代码示例:
```python
# 导入需要的库
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
# 加载 Iris 数据集
iris = load_iris()
X = iris.data
y = iris.target
# 使用 K-means 算法进行聚类
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
# 计算聚类结果的准确率
labels = np.zeros_like(kmeans.labels_)
for i in range(3):
mask = (kmeans.labels_ == i)
labels[mask] = mode(y[mask])[0]
accuracy = accuracy_score(y, labels)
# 保存聚类结果
df = pd.DataFrame({'True Labels': y, 'Cluster Labels': labels})
df.to_excel('iris_cluster_result.xlsx', index=False)
np.savetxt('iris_cluster_result.txt', np.column_stack((y, labels)), fmt='%d')
# 输出聚类结果的准确率
print('Accuracy:', accuracy)
```
在该示例代码中,我们首先加载 Iris 数据集,然后使用 K-means 算法对数据进行聚类,聚类结果保存在 `kmeans.labels_` 中。接着,我们计算聚类结果的准确率,并将聚类结果保存在 Excel 和文本文件中。
需要注意的是,在本例中,由于 Iris 数据集已经有真实的标签,因此我们可以使用真实标签来对聚类结果进行纠正,以计算准确率。在实际应用中,如果没有真实标签,我们可以使用其他指标来评估聚类结果的质量。
阅读全文