K均值聚类算法及其可视化
时间: 2024-01-23 12:13:55 浏览: 89
K均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个不同的簇。该算法的目标是使得每个数据点与其所属簇的中心点之间的距离最小化。以下是K均值聚类算法的步骤及其可视化过程:
1. 初始化:随机选择K个中心点作为初始的簇中心。
2. 分配数据点:将每个数据点分配给与其距离最近的簇中心。
3. 更新簇中心:计算每个簇的新中心点,即该簇中所有数据点的平均值。
4. 重复步骤2和3,直到簇中心不再发生变化或达到最大迭代次数。
可视化过程可以通过绘制数据点和簇中心的散点图来展示。每个数据点根据其所属簇的不同,使用不同的颜色进行标记。同时,可以绘制决策边界来显示簇的分布情况。
以下是K均值聚类算法及其可视化的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成示例数据
X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
# 创建KMeans对象并指定簇的数量为2
kmeans = KMeans(n_clusters=2)
# 执行K均值聚类算法
kmeans.fit(X)
# 获取簇中心和簇标签
centers = kmeans.cluster_centers_
labels = kmeans.labels_
# 绘制数据点和簇中心的散点图
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(centers[:, 0], centers[:, 1], marker='x', color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('K-means Clustering')
plt.show()
```
该代码将生成一个散点图,其中数据点根据其所属簇的不同使用不同的颜色进行标记,簇中心用红色的"X"标记。
阅读全文