k-means, k-medoids and hierarchical clustering

这篇讲几个基本而又流行的clustering methods: k-means, k-medoids, hierarchical clustering。这是几种最基本的clustering method。

 

K-means

顾名思义,就是希望将所有的数据点分为 k 类,而且这个类别和 mean 非常相关。目标函数即为要使下式目标函数最小:

其中有

上式中没办法获得最优解,所以解k-means都是通过Maxinum Expectation。解法如下:

Initialize: 任意将数据划分为 k 个起始的 cluster。

Step 1: 计算每个cluster 的中心。

Step 2: 将每个点分配到最近的那个cluster 中心点。

Step 3: 如果存在有点改变了所属的cluster,就回到step 1。

 

由于可能有的情况下,给定的初始 cluster 会让整个程序的结果仅为 local optimum,所以一般会多 run 几遍从中选出最好的 cluster result。

优点:相对高效,O(tkn),n为点的个数,k为cluster的个数,t为循环的个数。

缺点:只适用于 mean 能够被定义的情况下,例如有的情况下无法得到点的坐标。需要提前定义 k。无法处理噪声数据和界外点。不适用与 cluster 为 non-convex 形状的数据。不适用于高维数据。

 

 

K-medoids

这个方法专注于 k 个medoid。这个medoid 不再是k-means中的一个虚构的点(求平均获得),这个medoid直接取数据点中的一点。解法如下:

Initialize:任意选择k个数据点作为 k 个medoid。

Step 1:由数据点与 medoid 点之间的距离将数据点分成 k 个cluster。

Step 2:在每个 cluster 中,将其他点与当前的medoid交换。如果得到的该点到其他点距离的和最小,则这个 cluster 的medoid改为新的点。

Step 3:如果存在有cluster 的medoid 改变,就回到step 1。

 

该方法不需要点的坐标,只需要点直接的相对距离,或者点直接的dissimiliarity。而且,此方法可以很好地处理界外点outlier的问题。

 

如何选择 k?

方法一:L-curve:

如果 k 并未给出,可以通过考察cluster内距离来Wk考察 k 的选择。通常,Wk随着k的增加而变小。

通过k 和 Wk之间的关系,可以对k进行合适的选择。如果Wk呈L型,则在L型的拐点为最合适的k。

方法二: Gap statistic:

找到让Gap statistic最大的那个k,作为最佳的k。

 

Hierarchical Clustering:

Single linkage: 两个cluster之间的距离为两 cluster 中元素之间的最小距离。

Complete linkage:两个cluster之间的距离为两 cluster 中元素之间的最大距离。

Average:两个cluster之间的距离为两 cluster 中元素之间的平均距离。

Centroid:两个cluster之间的距离为两 cluster 的centroid 的距离。

Medoid:两个cluster之间的距离为两 cluster 的medoid 的距离。

 

Hierarchical clustering 有两种形式,一是 agglomerative,一是 divisive。

agglomerative 是指,通过cluster之间距离的定义,从N个数据点N个cluster开始,慢慢地进行cluster之间的融合。

divisive 是指,通过cluster之间距离的定义,从1个cluster开始,逐渐进行分裂。

 

posted @ 2012-10-03 08:05  YYNicholas  阅读(626)  评论(0编辑  收藏  举报