聚类问题是将一组对象分成若干个群体,每个群体构成一个簇,使得簇内的对象尽可能具有最大的相似性,不同簇之间的对象尽可能有最大的相异性,聚类过程是一个寻找最优划分的过程,即根据聚类质量的评价准则或方法不断对划分进行优化,最终得到最优解。由于聚类是无指导的学习过程事先对数据的结构是未知的,因此,最终的聚类结果都需要进行有效性验证和质量评价。
一般来说 评价聚类和选择最优聚类模式的原则有两个:紧密度,即簇中的成员必须尽可能地相互靠近。分离度,簇与簇之间的距离尽可能地远。大多数评价聚类质量的方法都是基于这两个原则。
K-means算法通过计算一类记录的均值来代表该类,但是受异常值或极端值的影响比较大。和K-means比较相似另一种算法K-medoids,它通过中心点的迭代轮换及最小化类内差异完成数据对象聚类。首先随机初始中心,然后将其余对象分配给最近的簇;在反复用非中心点来替代中心点后重复分配过程,以提高聚类质量至聚类质量不再变化。而在K-means中,我们将中心点取为当前cluster中所有数据点的平均值。如下图所示,在K-medoids中,需要计算每一个未被选中的数据点h和选中的数据点i的交换代价TCih,如果TCih<0,就用h替换。其中TCih= Cjih,Cjih = d(j, h) - d(j, i)。