k means聚类算法_K-Means 聚类算法实现鸢尾花数据的聚类
时间: 2023-06-29 08:06:23 浏览: 174
鸢尾花的聚类Kmeans聚类
K-Means 聚类算法是一种基于距离的聚类算法,它将数据集分成 K 个簇,每个簇的中心点就是该簇内所有点的质心。K-Means 聚类算法的步骤如下:
1. 随机选择 K 个点作为簇的中心点。
2. 计算每个样本点到 K 个中心点的距离,将其分配到最近的簇中。
3. 对于每个簇,重新计算该簇的中心点。
4. 重复步骤 2 和 3,直到簇不再发生变化或达到最大迭代次数。
下面是使用 K-Means 聚类算法对鸢尾花数据进行聚类的 Python 代码:
``` python
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
# 定义 K 值和最大迭代次数
k = 3
max_iter = 300
# 使用 K-Means 聚类算法
kmeans = KMeans(n_clusters=k, max_iter=max_iter)
kmeans.fit(X)
# 获取聚类结果和簇的中心点
labels = kmeans.labels_
centers = kmeans.cluster_centers_
# 绘制聚类结果图
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(centers[:, 0], centers[:, 1], c='red', marker='*', s=200)
plt.title('K-Means Clustering')
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
上述代码中,首先加载鸢尾花数据集,然后定义 K 值和最大迭代次数。接着使用 K-Means 聚类算法,获取聚类结果和簇的中心点。最后绘制聚类结果图,其中样本点的颜色表示它所属的簇,红色星号表示每个簇的中心点。
阅读全文