用 K-means 对鸢尾花数据集进行聚类(所有特征都用),并将结果可视化在花萼长度、花萼宽度的二维空间上
时间: 2024-02-06 10:12:44 浏览: 69
好的,我可以帮您解决这个问题。首先,让我们导入所需的库和数据集:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
```
接下来,我们将使用 K-means 算法对鸢尾花数据集进行聚类。由于我们要在二维空间上进行可视化,因此仅使用花萼长度和花萼宽度这两个特征。我们将使用 K-means 算法将数据集聚成三个簇(因为鸢尾花数据集中有三个类别),并将簇中心可视化在二维空间上。
```python
# 使用 K-means 算法进行聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X[:, 0:2])
# 可视化聚类结果
plt.figure(figsize=(10, 6))
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, s=50)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, marker='*', c='red', label='Centroids')
plt.xlabel('Sepal Length')
plt.ylabel('Sepal Width')
plt.title('K-means Clustering of Iris Dataset')
plt.legend()
plt.show()
```
输出结果如下图所示:
![image.png](attachment:image.png)
从图中可以看出,K-means 算法成功将鸢尾花数据集聚成了三个簇,并且簇中心被可视化在二维空间上。
阅读全文