用python完成机器学习实验鸢尾花数据集的 k 均值聚类实验过程记录
时间: 2023-06-25 17:04:56 浏览: 106
好的,下面是用Python完成机器学习实验鸢尾花数据集的k均值聚类实验过程记录:
首先,我们需要导入相关的库和数据集:
```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
```
然后,我们可以通过绘制散点图的方式来观察数据集的分布情况:
```python
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
接着,我们可以使用KMeans算法对数据进行聚类。在这个例子中,我们将数据集聚成3类:
```python
# 创建KMeans模型对象
kmeans = KMeans(n_clusters=3, random_state=0)
# 训练模型
kmeans.fit(X)
# 预测聚类结果
y_pred = kmeans.predict(X)
```
最后,我们可以绘制聚类结果的散点图:
```python
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
完整代码如下:
```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
# 绘制原始数据的散点图
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
# 创建KMeans模型对象
kmeans = KMeans(n_clusters=3, random_state=0)
# 训练模型
kmeans.fit(X)
# 预测聚类结果
y_pred = kmeans.predict(X)
# 绘制聚类结果的散点图
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
阅读全文