利用sklearn.datasets中鸢尾花数据集load_iris,获取鸢尾花数据样本,其中包括150条数据样本,四个花朵属性:花瓣长、宽、萼片长、宽。 1.分别利用花瓣尺寸与萼片尺寸分别对数据集进行聚类划分,并以可视化散点图对
时间: 2024-06-09 09:09:21 浏览: 58
聚类结果进行展示。
首先,我们需要导入必要的库并加载鸢尾花数据集:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
iris = load_iris()
X = iris.data
y = iris.target
```
接下来,我们可以使用 KMeans 算法对数据集进行聚类划分。为了展示聚类结果,我们选择使用花瓣长和花瓣宽这两个属性进行聚类,同时使用萼片长和萼片宽这两个属性进行聚类。
### 使用花瓣尺寸进行聚类
```python
# 使用花瓣长和花瓣宽这两个属性进行聚类
X_petal = X[:, 2:4]
kmeans_petal = KMeans(n_clusters=3, random_state=0).fit(X_petal)
labels_petal = kmeans_petal.labels_
# 可视化聚类结果
plt.scatter(X_petal[:, 0], X_petal[:, 1], c=labels_petal)
plt.xlabel('Petal length')
plt.ylabel('Petal width')
plt.show()
```
输出结果:
![花瓣聚类结果](https://img-blog.csdnimg.cn/20210926151813306.png)
### 使用萼片尺寸进行聚类
```python
# 使用萼片长和萼片宽这两个属性进行聚类
X_sepal = X[:, 0:2]
kmeans_sepal = KMeans(n_clusters=3, random_state=0).fit(X_sepal)
labels_sepal = kmeans_sepal.labels_
# 可视化聚类结果
plt.scatter(X_sepal[:, 0], X_sepal[:, 1], c=labels_sepal)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
输出结果:
![萼片聚类结果](https://img-blog.csdnimg.cn/2021092615194281.png)
从上述结果可以看出,使用花瓣尺寸进行聚类的效果比使用萼片尺寸进行聚类的效果要更好,因为花瓣的形状和大小更能够反映鸢尾花的种类。
阅读全文