看到这里的k-medoids联想到聚类方法有哪些?
http://blog.chinaunix.net/uid-10289334-id-3758310.html
http://www.educity.cn/wenda/418948.html
这k-medoids和k-means两者对比一下图:
k-means
k-medoids
=================================================================
1.问题:
给定数据点集P,d-by-N,将这些数据点集聚类到K类中去<K是给定的类的数目,可以不给定K,但本文我们处理不那么复杂的问题>
同时要求下式值最小:Sk是聚类形成的数据集合,mk是每个类集合的“中心”——K-Means与K-Medoids唯一不同的地方
演示图:
2.K-Means算法:
1. 将数据分为K个非空子集
2. 计算每个类中心
3. 将每个数据点 xj 到最近的 mk
4. 返回2,当聚类结果(如:计算得到的中心m1—mk,本文采用的方法)不再变化的时候stop
3.K-Medoids算法:
1. 随机选择K个点作为初始medoid
2.将每个数据点分配到最近的medoid
3. 更新每个类的medoid ——此步导致比K-Means算法的计算量加大
4. 返回2,当各类medoid不再变化的时候stop
4.特点:
-聚类结果与初始点有关(因为是做steepest descent from a random initial starting oint)
-是局部最优解
-在实际做的时候,随机选择多组初始点,最后选择拥有最低TSD(Totoal Squared Distance)的那组
==================================================================
下面是几个博友的实现:
http://blog.csdn.net/abcjennifer/article/details/8197072
http://blog.csdn.net/lifeitengup/article/details/8245028
==================================================================================================================================