核心思想与质心 (Centroid)

核心思想:K-Means 通过一个迭代的过程来找到最佳的簇划分。这个过程可以概括为两步:

  • 分配 (Assign): 将每个数据点分配给离它最近的质心 (Centroid)。质心可以看作是每个簇的“中心点”。
  • 更新 (Update): 将每个质心移动到分配给它的所有数据点的平均位置。

算法会不断重复这两个步骤,直到质心的位置不再变化,此时聚类完成。

动手试试:

选择您想要的簇数量 (K),然后点击“运行 K-Means”,观察质心如何移动并最终完成数据聚类。

from sklearn.cluster import KMeans # X: 未标记的数据 X = ... # 创建 K-Means 模型 # n_clusters 就是 K 值 kmeans = KMeans(n_clusters=3, random_state=42) # 训练模型并进行预测 clusters = kmeans.fit_predict(X)

评估聚类效果:轮廓系数

由于没有“正确答案”,我们需要一种方法来评估聚类效果的好坏。轮廓系数 (Silhouette Coefficient) 是一个常用的指标,它衡量了每个数据点与其所在簇的紧密程度,以及与其他簇的分离程度。

  • 分数接近 +1: 表示样本远离相邻的簇,聚类效果好。
  • 分数接近 0: 表示样本在两个簇的边界上。
  • 分数接近 -1: 表示样本可能被分配到了错误的簇。
from sklearn.metrics import silhouette_score # 计算所有样本的平均轮廓系数 score = silhouette_score(X, clusters) print(f"轮廓系数: {score:.4f}")

轮廓系数得分

N/A

(运行 K-Means 后显示)