K均值聚类是一种应用广泛的聚类技术,特别是它不依赖于任何对数据所做的假设,比如说,给定一个数据集合及对应的类数目,就可以运用K均值方法,通过最小化均方误差,来进行聚类分析。
- K均值假设每个变量的分布是球形的;
- 所有的变量具有相同的方差;
- 类具有相同的先验概率,要求每个类拥有相同数量的观测
以上任一个条件不满足时,kmeans都会失效,现在具体分析一些。
第一, 数据分布是球形的。
根据kmeans的算法设置,类内各点与中心的距离之和最小,可以形象的将类内各样本点想象成一个球体,而这个中心就是我们计算出来的类中心。因此,其隐含条件是数据服从一个高维度的球体,而在实际情况,这种数据比较少见。而GMM,高斯混合模型,则是一种更为广泛的数据分布假设。或者就混合模型而已,可以引入更多的混合模型,比如weibull。
第二,变量具有相同的方差。
在 k-means 中,我们假设各个 cluster 的先验概率是一样的,但是各个 cluster 的数据量可能是不均匀的。举个例子,cluster A 中包含了10000个样本,cluster B 中只包含了100个。如此带来了新的问题,由于在不均衡样本上的聚类,大类的误差会覆盖掉小类的误差,容易将小类并入到大类中,因此,若想单独成类,小类最好的方式就是在空间上与大类保持一定的距离,聚类时,才能独立成类。否则,容易被误认为离群点进行处理。
注意在 k-means 中,我们通常采用欧氏距离来衡量样本与各个 cluster 的相似度,当然也有其他度量方法,将欧式距离的2改为1或者更大,都是以不同形式逼近中心。这种距离实际上假设了数据的各个维度对于相似度的衡量作用是一样的。能不能有其他方法改变维度在间的权重问题? GMM 中,相似度的衡量使用的是后验概率,通过引入协方差矩阵,我们就可以对各维度数据的不同重要性进行建模。
第三,聚类结果。
在 k-means 中,各个样本点只属于与其相似度最高的那个 cluster ,这实际上是一种 hard clustering 。相较而言,以概率隶属的GMM会展示更符合实际的结果,这种结果类似于logistic回归,最终是0或者1,但实际上给出了相对的隶属概率大小。GMM可以看作是一种 fuzzy clustering 。
天下没有免费的午餐,根据数据正确使用模型才是正理。kmeans存在这样或那样的问题,但终究还是好用。