1. 编程实现K-means聚类算法对iris鸢尾花数据集的聚类工作
时间: 2023-07-04 19:17:09 浏览: 66
好的,我可以为您介绍一下如何使用Python实现K-means算法对iris鸢尾花数据集进行聚类。首先,我们需要导入相关的库和数据集:
```python
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = iris.data
```
接着,我们可以对数据集进行聚类操作。在K-means算法中,我们需要指定聚类的数量。这里我们将聚类数量设置为3。同时,我们可以设置K-means算法的随机种子,以保证每次运行的结果一致。
```python
# 聚类数量
n_clusters = 3
# 设置随机种子
random_state = 0
# 创建KMeans对象
kmeans = KMeans(n_clusters=n_clusters, random_state=random_state)
# 聚类
kmeans.fit(X)
```
聚类完成后,我们可以查看每个数据点所属的聚类标签。KMeans对象的`labels_`属性可以返回每个数据点的标签。
```python
# 获取聚类结果
labels = kmeans.labels_
# 打印聚类结果
print(labels)
```
最后,我们可以将数据集和聚类结果可视化。这里我们以花萼长度和花瓣长度为横纵坐标,用不同颜色表示不同聚类标签。
```python
import matplotlib.pyplot as plt
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 2], c=labels)
plt.xlabel('Sepal length')
plt.ylabel('Petal length')
plt.show()
```
完整的代码如下:
```python
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
# 加载数据集
iris = load_iris()
X = iris.data
# 聚类数量
n_clusters = 3
# 设置随机种子
random_state = 0
# 创建KMeans对象
kmeans = KMeans(n_clusters=n_clusters, random_state=random_state)
# 聚类
kmeans.fit(X)
# 获取聚类结果
labels = kmeans.labels_
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 2], c=labels)
plt.xlabel('Sepal length')
plt.ylabel('Petal length')
plt.show()
```
希望这个例子能够帮助您更好地理解K-means聚类算法。