K-Means Clustering

K-Means 聚类实验

包含 Voronoi 区域、质心更新与惯性跟踪的 2D 交互式聚类模拟器。

K-Means 通过最小化簇内平方距离(惯性)将数据划分为 K 个簇。

$$ J = \sum_{i=1}^{N} \min_{1 \leq j \leq K} \left\lVert x_i - \mu_j \right\rVert^2 $$

每个样本分配到最近质心,然后质心更新为所分配样本的均值。

算法在两步之间交替:

$$ c_i \leftarrow \arg\min_j \lVert x_i - \mu_j \rVert^2 $$

$$ \mu_j \leftarrow \frac{1}{|C_j|}\sum_{x_i \in C_j} x_i $$

惯性会单调下降,直到收敛到局部最优。

随机初始化简单,但可能从较差的种子开始。

k-means++ 会分散初始质心,通常带来更快收敛和更低的最终惯性。

生产中建议用不同种子多次运行以降低局部最优敏感性。

  1. 加载演示点并比较随机初始化与 k-means++。
  2. 尝试不同 K 值并观察区域边界与簇数量。
  3. 使用“步进”查看一次分配/更新循环。
  4. 运行至收敛并比较最终惯性。

点击画布添加点。触屏长按或右键可删除最近点。

状态
点数: 0
K: 3
迭代: 0
惯性: -
质心位移: -
惯性曲线
簇摘要