划分聚类——Kmeans算法

划分聚类
聚类是针对一堆没有类别属性的对象的,它把这一大堆对象分成一些小堆,并保证小堆内的对象之间彼此相似,小堆之间的对象彼此不同。划分聚类是聚类的一种,由它生成的小堆,小堆间没有一样的元素,大堆小堆之间关系和大集合与它的的分割一样。

Kmeans算法
设数据点(对象)的集合为:
{x1,x2,...,xn}
其中, xi={xi1,xi2,...,xir} 是实数空间 Rr 中的向量,r是数据的属性数目。Kmeans算法把数据点集合划分成k个聚类;每个聚类有一个中心,中心是聚类中所有成员向量的均值;这就是算法名字的由来。算法的伪代码如下:
这里写图片描述
其中, k是指定的要生成的聚类数目,D是数据点集合。
从算法伪代码中可以看到,算法开始时,从数据点集合中任意选取k个点作为初始的聚类中心;然后开始迭代,直至满足迭代终止条件为止。每一次迭代,都计算每一个点到k个聚类中心的距离,把数据点分配给离自己最近的中心,得到k个聚类,然后根据k个聚类现有的成员计算新的聚类中心。终止条件可以是下面三个之一:

  1. 没有(或最小数目)数据点被重新分配给不同的聚类。
  2. 没有(或最小数目)聚类中心再发生变化。
  3. 误差平方和(Sum of Squares for Error, SSE)局部最下
    SSE=kj=1xCjdist(x,mj)2
    其中,k表示需要的聚类数目, Cj 表示第j个聚类, mj 表示第j个聚类的聚类中心, dist(x,mj) 表示数据点和聚类中心间的聚类。

参考资料:
《Web数据挖掘》第2版,Bing Liu 著, 俞勇 译
《数据挖掘概念与技术》第3版,Jiawei Han,Micheline Kamber,Jian Pei 著,范明,孟小峰 译

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值