K-Means 聚类算法是一种常用的无监督学习算法,它可以用来将数据集中的点划分为 K 个簇。下面是一个简单的 Python 实践教程,帮助你了解如何使用 K-Means 算法。
基本原理
K-Means 算法的目标是将数据集中的点划分为 K 个簇,使得每个簇内的点尽可能接近,而不同簇之间的点尽可能远。
工作流程
- 随机选择 K 个点作为初始质心。
- 将每个点分配到最近的质心,形成 K 个簇。
- 计算每个簇的质心。
- 重复步骤 2 和 3,直到质心不再发生变化或满足其他停止条件。
Python 实现
以下是一个使用 Python 和 scikit-learn 库实现 K-Means 聚类的简单示例。
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 示例数据
X = [[1, 2], [1, 4], [1, 0],
[10, 2], [10, 4], [10, 0]]
# 创建 KMeans 对象
kmeans = KMeans(n_clusters=2)
# 拟合模型
kmeans.fit(X)
# 预测簇标签
labels = kmeans.predict(X)
# 绘制结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', marker='X')
plt.show()
扩展阅读
想要更深入地了解 K-Means 聚类算法?可以阅读本站的 K-Means 聚类算法原理详解。
K-Means 聚类算法原理图解