用python完成机器学习实验鸢尾花数据集的 k 均值聚类的实验过程记录与结果分析
时间: 2023-06-25 11:06:41 浏览: 102
好的,下面是机器学习实验鸢尾花数据集的 k 均值聚类的实验过程记录与结果分析的步骤:
1. 首先,我们需要导入相关的Python库:
```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
```
2. 加载数据集并将其存储在变量中:
```python
# 加载鸢尾花数据集
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
```
3. 探索数据集:
```python
# 查看数据集前5行
X.head()
```
我们可以看到数据集由4个特征组成:sepal length, sepal width, petal length, petal width。
4. 数据可视化:
```python
# 选择两个特征进行可视化
plt.scatter(X['petal length (cm)'], X['petal width (cm)'])
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.show()
```
我们可以看到数据集中存在3个不同的聚类。
5. k-means聚类:
```python
# 设置k值为3
kmeans = KMeans(n_clusters=3)
# 对数据进行聚类
kmeans.fit(X)
# 获取聚类结果标签
labels = kmeans.labels_
# 输出聚类结果
print(labels)
```
我们可以看到输出的聚类结果是一个包含150个元素的数组,每个元素代表一个样本的聚类标签。
6. 可视化聚类结果:
```python
# 可视化聚类结果
plt.scatter(X['petal length (cm)'], X['petal width (cm)'], c=labels, cmap='viridis')
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.show()
```
我们可以看到聚类结果与数据集中的真实类别相似。
7. 结果分析:
通过对数据集进行k-means聚类,我们得到了3个聚类。我们可以看到聚类结果与数据集中的真实类别相似,这表明k-means聚类算法对于这个数据集是有效的。同时,我们还可以通过调整k值来改进聚类结果。
阅读全文