K-mediods(K中心点)算法介绍
一、K-mediods算法介绍
a) 话说,聚类算法可以被分为那么几种,比如基于划分方法的、基于层次方法的、基于密度方法的、基于网格方法的、基于模型方法的;K-mediods算法就是基于划分方法的一种聚类算法,确切的说,是对K-means算法的一种改进算法。
二、K-mediods算法优缺点
a) K-mediods算法具有能够处理大型数据集,结果簇相当紧凑,并且簇与簇之间明显分明的优点,这一点和K-means算法相同。
b) 同时,该算法也有K-means同样的缺点,如,必须事先确定类簇数和中心点,簇数和中心点的选择对结果影响很大;一般在获得一个局部最优的解后就停止了;对于除数值型以外的数据不适合;只适用于聚类结果为凸形的数据集等。
c) 与K-means相比,K-mediods算法对于噪声不那么敏感,这样对于离群点就不会造成划分的结果偏差过大,少数数据不会造成重大影响。
d) K-mediods由于上述原因被认为是对K-means的改进,但由于按照中心点选择的方式进行计算,算法的时间复杂度也比K-means上升了O(n)。
三、K-mediods算法描述
a) 首先随机选取一组聚类样本作为中心点集
b) 每个中心点对应一个簇
c) 计算各样本点到各个中心点的距离(如欧几里德距离),将样本点放入距离中心点最短的那个簇中
d) 计算各簇中,距簇内各样本点距离的绝度误差最小的点,作为新的中心点
e) 如果新的中心点集与原中心点集相同,算法终止;如果新的中心点集与原中心点集不完全相同,返回b)
四、K-mediods算法举例
a) 设有(A,B,C,D,E,F)一组样本
b) 随机选择B、E为中心点
c) 计算D和F到B的距离最近,A和C到E的距离最近,则B,D,F为簇X1,A,C,E为簇X2
d) 计算X1发现,D作为中心点的绝对误差最小,X2中依然是E作为中心点绝对误差最小
e) 重新以D、E作为中心点,重复c)、d)步骤后,不再变换,则簇划分确定。