kmeans聚类算法解密

前面我们了解了很多有监督学习相关的知识,相信大家一定对其中的精彩还回味无穷呢(原谅我就是这么臭不要脸,哈哈哈),最近闲来无事,看了看无监督学习相关的资料和知识,今天我们就先来看看无监督学习之kmenas算法,从名字可以看到两个信息:1)k个簇;2)每个簇的质心是它的means,即均值。我们先来看看kmeans的思路:

思路解析:

1)确定k个中心表示k个簇(方法各异);
2)对n个样本,找到距离其最近的簇,重新计算每个簇的中心;
3)重复2)知道簇中心不发生变化或者达到最大迭代次数!

步骤分析:

对于1)中k的确定以及对应的簇的中心选择,我们对症下药设计了不同的方法:
k的确定:如果问题中没有给定k值,我们需要自己确定k的大小,可以选用的方法很多很多,包括:

1)肘部法则:选用不同的k值,得到其对应的畸变度量(SSE),然后选择变化最大(由迅猛转化为缓慢)的那一个k值;
2)与层次聚类结合:先用层次聚类确定一个大体的k值,然后找到一个初始聚类,然后用迭位重定位来改进该聚类;
3)稳定性方法:

初始质心选择:

1)随机选取质心:这种方法的随机性很大,这样簇的质量往往很差,一种改进方法为:随机选取质心,多次运行,选取具有最小SSE的簇集(这需要执行到1)+2)的前部分);
2)取一个样本,使用层次聚类技术对其进行聚类,从层次聚类中提取k个簇,并用这些簇的质心作为初始质心;
3)选择第一个点(随机地选择或者选取所有点的质心),然后对于**每个后继初始质心**,选择距离已经选取过的初始质心最远的点,求距当前质心距离最远的点时计算成本很高,而且这种方法可能选中离群点。

对于2)中的第二个步骤(重新计算每个簇的中心),我们为其设计的目标函数为sum of squared Error(SSE),即平方误差和:
这里写图片描述
最小化目标函数,可得:
这里写图片描述
因此我们可以得到更新每一个簇的质心即为该簇的均值!

不足之处:

kmeans方法的缺点:
1)k值需要预先确定;
2)kmeans算法对于初始质心的选择超级敏感,不同的初始质心的选择得到的聚类结果完全不同;
3)kmeans算法适应的数据类型:球形簇,圆形簇。对于不同簇的规模差距较大或者分布属于长条形等时,不适合使用kmeans算法;
4)对离群点很敏感。

如果后面有时间的话,我们再来看看其对应的改进算法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值