K-Means
- Partitional Clustering
- 每一个 cluster 与一个 centroid 相联系,每一个点分配到其最近的 centroid
是超参数
算法流程
- 选定初始的
个点作为 centroid - 循环,直到
个 centroid 不再发生变化 - 把所有点分配到这
个 cluster - 重新计算
个 centroid
- 把所有点分配到这
我们用平均距离衡量 K-Means 算法的优劣:
局限性
- 对初始中心的选取很敏感
-
需要预先指定
- 可能出现空聚类
针对这些问题,我们可以作出一些改进:
- 多运行几次算法,增加找到最优解的概率
- 用 Hierarchical Clustering 优化初始点的选取
- K-Means 算出多于
个 centroid,再从其中选出 个 - 后处理
- Bisecting K-Means
空聚类的处理
- 将距离所有簇中心最远的样本点选为空簇的新中心。该点对当前聚类的误差(SSE)贡献最大,重新分配它有助于优化整体聚类效果。
- 从SSE(误差平方和)最高的非空簇中选择一个点,将其作为空簇的新中心。该簇的误差较大,说明其内部数据分布分散,分裂或调整其中心可能改善聚类质量。
- If there are several empty clusters, the above can be repeated several times.
增量法更新
- 不会产生空簇
前、后处理
前处理:
- Normalization
- 去除异常值
后处理:
- 去除小聚类(可能由异常值组成)
- 分裂稀疏、分散的聚类
- 合并close, 紧密的聚类
- 使用 ISODATA