K-Means算法对噪声和异常值非常敏感,这些个别数据对于平均值的影响非常大,相对而言,K-中心点的方法不像K-Means算法,它不是求样本的平均值,而是用类中最接近于中心点的对象来代表类,因此K-中心点的方法对于噪声和异常值没有K-Means算法那么敏感。鉴于K-Means算法的这一局限性,我们应用该算法时需要特别注意这些数据噪声和异常值。
针对聚类中的数据噪声和异常值,常用的处理方法如下:
直接删除那些比其他任何数据点都要远离聚类中心点的异常值。为了防止误删的情况发生,数据分析师需要在多次的聚类循环中监控这些异常值,然后依据业务逻辑与多次的循环结果进行对比,再决定是否删除这些异常值。
随机抽样的方法也可以较好地规避数据噪声的影响。因为是随机抽样,作为稀有事件的数据噪声和异常值能被随机抽进样本中的概率会很小,这样随机抽出的样本就比较干净。针对该随机样本进行聚类分析时不仅可以避免数据噪声的误导和干扰,而且其聚类后的结果作为聚类模型可以应用到剩余的数据集中,完成对整个数据集的聚类划分。利用这种随机抽样方式得到的聚类模型,在应用于整个数据集时至少有以下两种方式。
1)直接用该聚类模型对剩余的数据集进行判断,也就是把剩余的数据分配给那些离它们最近的聚类中心,这种方法最简单、最直观、最快捷。
2)利用监督学习中的分类器的原理,每个聚类被认为是一个类别,已经参与聚类的这些随机抽样数据则被看做是学习样本,由此产生的分类器可以用于判断剩余的那些数据点最适合放进哪个类别或者哪个聚类群体中。这种方式相比第一种方式来说比较费时,尤其是当聚类出来的群体较多的时候,利用分类器的原理去分别判断时会更加耗时,不过其作为一种思路和方法倒是未尝不可。