1.1 k-Means的优点
- 计算复杂度低,为O(Nkq),其中k为聚类的数量、q为迭代的次数,通常k和q小于N,此时的复杂度相当于O(N)
- 思想简单,容易实现
1.2 加速k-Means
k均值算法中,每个E步骤都需要计算每个向量和每个数据点之间的欧几里得距离。加速这个过程的方法有:
- 基于对数据结构的预先计算,例如将数据组织成树结构,使得相邻的数据点属于同一个子树。
- 使用距离的三角不等式,避免不必要的计算
1.3 k-Means的缺点
- k均值算法的基础是将欧几里得距离作为数据点与代表向量之间不相似程度的度量。这不仅限制了能处理的数据变量的类型(比如,它不能处理某些或全部变量表示类别标签的情形),而且使得聚类的中心的确定对于异常点不具有鲁棒性。
- 需要选取确定的聚类的数量k,分类的结果严重依赖于簇中心的初始化。结果不一定是全局最优的,只能保证局部最优。对噪声敏感,无法解决不规则形状的聚类。
1.4 k-Means的性质
- k-Means实际上假设数据呈现球形分布,与之相比,GMM假设则是高斯分布
- k-Means假设各个簇的先验相同,但是各个簇的数量可能不均匀
- k-Means算法的迭代过程实际上等价于EM算法
1.5 和GMM的比较
- 相比k-Means,GMM收敛之前,经历了更多次的迭代,每次迭代需要计算更多的计算量,通常运行k-Means找到GMM的一个合适的初始值,接下来使用GMM进行调节。
- k-Means对数据点的聚类进行了硬分配,即每个数据点只属于唯一的一个聚类,而GMM基于后验概率进行了软分配,k-Means可以看成GMM的特殊情形。(没有估计聚类的协方差,只估计了聚类的均值)