K-means

算法原理

kmeans的计算方法如下:

1 随机选取k个中心点

2 遍历所有数据,将每个数据划分到最近的中心点中

3 计算每个聚类的平均值,并作为新的中心点

4 重复2-3,直到这k个中线点不再变化(收敛了),或执行了足够多的迭代

时间复杂度:O(Ink*m)

空间复杂度:O(n*m)

其中m为每个元素字段个数,n为数据量,I为迭代个数。一般I,k,m均可认为是常量,所以时间和空间复杂度可以简化为O(n),即线性的。

判停标准:

kmeans算法的迭代优化过程一直持续直到满足某个判停标准,如果在这一轮迭代中:

1、训练样本所属类别不再发生改变或者只有很少几个训练样本改变;
2、目标函数变化很小或者聚类中心向量变化很小;
3、达到最大迭代次数。

满足其中一个条件,即可停止训练。如果满足条件1或2,说明算法已经收敛。

K值的选取:

随着聚类数K的增大,目标函数呈减小趋势。但是另一方面K值的增大会导致存储空间和计算量的增加。那么如何选择合适的K值呢?
1.经验法:根据问题的性质和先验知识,人为指定聚类的数目。
2.爬山法:但当聚类数目到达一定值以后,聚类数目的增加目标函数的变化很小,这个拐点可以认为是最优聚类数目。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值