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++ 会分散初始质心,通常带来更快收敛和更低的最终惯性。
生产中建议用不同种子多次运行以降低局部最优敏感性。
- 加载演示点并比较随机初始化与 k-means++。
- 尝试不同 K 值并观察区域边界与簇数量。
- 使用“步进”查看一次分配/更新循环。
- 运行至收敛并比较最终惯性。
点击画布添加点。触屏长按或右键可删除最近点。
状态
点数: 0
K: 3
迭代: 0
惯性: -
质心位移: -