k-means顾名思义k-均值,通过计算一类记录的均值来代表该类,但是受异常值或极端值的影响比较大,这里介绍另外一种算法k-medodis。看起来和k-means比较相似,但是k-medoids和k-means是有区别的,不一样的地方在于中心点的选取,在k-means中,我们将中心点取为当前cluster中所有数据点的平均值,在 k-medoids算法中,我们将从当前cluster 中选取这样一个点——它到其他所有(当前cluster中的)点的距离之和最小——作为中心点。
k-means算法的缺点:
产生类的大小相差不会很大,对于脏数据很敏感。
改进的算法:k-medoids方法。
这儿选取一个对象叫做mediod来代替上面的中心的作用,这样的一个medoid就标识了这个类。
k-medodis的具体流程如下:
1)任意选取k个对象作为medoids(o1,o2,…oi…ok)。
2)将余下的对象分到各个类中去(根据与medoid最相近的原则);
3)对于每个类(oi)中,顺序选取一个or,计算用or代替oi后的消耗—e(or)。选择e最小的那个or来代替oi。这样k个medoids就改变了。
4)重复2、3步直到k个medoids固定下来。
不容易受到那些由于误差之类的原因产生的脏数据的影响,但计算量显然要比k-means要大,一般只适合小数据量。
<b>原文发布时间为:2013-08-4</b>
<b></b>
<b>本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“bigdatadigest”微信公众号</b>