K-Means 聚类算法是一种常用的无监督学习算法,它可以用来将数据集中的点划分为 K 个簇。下面是一个简单的 Python 实践教程,帮助你了解如何使用 K-Means 算法。

基本原理

K-Means 算法的目标是将数据集中的点划分为 K 个簇,使得每个簇内的点尽可能接近,而不同簇之间的点尽可能远。

工作流程

  1. 随机选择 K 个点作为初始质心。
  2. 将每个点分配到最近的质心,形成 K 个簇。
  3. 计算每个簇的质心。
  4. 重复步骤 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 聚类算法原理图解