k均值聚类(k-means clustering)


k均值聚类(k-means clustering)算法思想起源于1957年Hugo Steinhaus[1],1967年由J.MacQueen在[2]第一次使用的,标准算法是由Stuart Lloyd在1957年第一次实现的,并在1982年发布[3]。简单讲,k-means clustering是一个根据数据的特征将数据分类为k组的算法。k是一个正整数。分组是根据原始数据与聚类中心(cluster centroid)的距离的平方最小来分配到对应的组中。

例子:假设我们有4个对象作为训练集,每个对象都有两个属性见下。可根据x,y坐标将数据表示 在二维坐标系中。

object

Atrribute 1 (x):

weight index

Attribute 2 (Y):

pH

Medicine A 1 1
Medicine B 2 1
Medicine C 4 3
Medicine D 5 4

表一 原始数据

并且我们知道这些对象可依属性被分为两组(cluster 1和cluster 2)。问题在于如何确定哪些药属于cluster 1,哪些药属于cluster 2。

k-means clustering实现步骤很简单。刚开始我们需要为各个聚类中心设置初始位置。我们可以从原始数据中随机取出几个对象作为聚类中心。然后k means算法执行以下三步直至收敛(即每个对象所属的组都不改变)。

1.确定中心的坐标

2.确定每个对象与每个中心的位置

3.根据与中心位置的距离,每个对象选择距离最近的中心归为此组。

                    图1 k means流程图

对于表1中的数据,我们可以得到坐标系中的四个点。

 

1.初始化中心值:我们假设medicine A和medicine B作为聚类中心的初值。用c1和c2表示中心的坐标,c1=(1,1),c2=(2,1)。

2对象-中心距离:利用欧式距离(d = sqrt((x1-x2)^2+(y1-y2)^2))计算每个对象到每个中心的距离。第0次迭代的距离矩阵为

其中行表示聚类中心,列表示对象。

D距离矩阵中第一行表示每一个对象与第一个聚类中心的距离,第二行表示每一个对象与第二个聚类中心的距离

3.对象聚类:根据每个对象与聚类的距离的最小值将对象分为两组。因此,medicine A属于第一组,其余的对象属于第二组。

4.迭代-1,确定中心:从3中我们得到了每组的成员,我们现在根据第组成员利用平均值计算新的聚类中心。c1=(1,1),c2=((2+4+5)/3,(1+3+4)/3)=(11/3,8/3)。此时各数据坐标位置如下。

5.迭代-1,对象-中心距离:此步计算所有对象与新的中心之间的距离。同第2步一样,迭代-1中的距离矩阵如下所示。

6.迭代-1,对象聚类:同第3步一样,将每一对象根据最小距离分组。此时得到的组距离如下所示。

7.迭代-2,确定中心:如第4步,得到c1=(3/2,1),c2=(9/2,7/2)

8.迭代-2,对象中心距离:如第2步。得距离矩阵如下。

9.迭代-2,对象聚类:得组矩阵如下。

此时,我们发现第一次迭代和第二迭代所得的分组情况是一样的,即收敛,k means算法结束。得到如下所示的分组结果。

点击见英文原文

[1]Steinhaus, H., "Sur la division des corps matériels en parties" (in French).Bull. Acad. Polon. Sci. 4 (12): 801–804. MR0090073. Zbl 0079.16403,1957.

[2]MCQUEEN, J.,  "Some methods for classification and analysis of multivariate observations." In Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability, 281-297,1967.

[3]Lloyd, S. P.,  "Least square quantization in PCM, " Bell Telephone Laboratories Paper, 1957, Published in journal much later: Lloyd., S. P. (1982). 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM