您的位置:首页 > 其它

Kmeans聚类算法

2018-03-01 12:18 281 查看
(该方法不适于发现非凸面形状的簇或大小差别很大的簇。缺点是K值难确定)  k均值算法的计算过程:      1、从D中随机取k个元素,作为k个簇的各自的中心。      2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。      3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。      4、将D中全部元素按照新的中心重新聚类。      5、重复第4步,直到聚类结果不再变化。      6、将结果输出。计算距离的方法是使用欧式距离:



                                                                                   

                                                                                                                     流程图聚类例子


数据对象集合S见上表,作为一个聚类分析的二维样本,要求的簇的数量k=2。
(1)选择

 ,

为初始的簇中心,即    

,   

               。
(2)对剩余的每个对象,根据其与各个簇中心的距离,将它赋给最近的簇对O3 :
     

     

显然 

O3,故将C2分配给
对于O4:




因为:

所以将O4分配给C2对于O5:




因为:

所以讲O5分配给C1
更新,得到新簇

 和

计算平方误差准则,单个方差为








总体平均方差是:


(3)计算新的簇的中心。 



重复(2)和(3),得到O1分配给C1;O2分配给C2,O3分配给C2 ,O4分配给C2,O5分配给C1。更新,得到新簇


 和

。 中心为

  ,

 。单个方差分别为


总体平均误差是: 



由上可以看出,第一次迭代后,总体平均误差值52.25~25.65,显著减小。由于在两次迭代中,簇中心不变,所以停止迭代过程,算法停止。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kmeans 聚类