K-Means算法

1、 K-Means算法说明

K个簇的中心分别为 ,每个簇的样本量为 ,目标函数为平方误差(欧式距离),即所有样本到自己所属的簇的中心距离最小。求下述目标函数的最优解
在这里插入图片描述
可以得到聚类中心的更新公式为
在这里插入图片描述
如果使用曼哈顿距离度量公式,簇中心更新公式为中值,适用于凸形状,簇大小相近,簇数量较少的聚类。

2、 K-Means算法流程

输入:样本集 在这里插入图片描述,聚类的簇数K,最大的迭代次数N
输出:类簇划分 在这里插入图片描述
(1) 从D中随机选取K个样本做为初始聚类中心
(2) 计算每个点到聚类中心的距离,将其归类到最近的类别中心
(3) 更新聚类中心
(4) 不断重复(1)~(3)如果所有的聚类中心不再变化,输出类簇。

3、K-Means算法复杂度

算法复杂度为O(NKT),N代表总元素个数,K代表簇中心个数,T代表迭代次数

4、 K-Means算法优缺点

优点

  • 处理大规模数据集时有良好的伸缩性

缺点

  • 需要设定K值
  • 对初始的簇中心点敏感
  • 不适合发现非凸形状的簇或者差别较大的簇
  • 离群点对模型影响较大

5、 解决初始聚类中心敏感

5.1 二分K-Means
不设定初始聚类中心,算法流程
(1)将所有数据作为一个簇放到一个队列中
(2)从队列中选取一个簇,对簇进行K-Means算法,划分为两个子簇,并将子簇添加到队列中。选择簇的方式包括簇元素最多,或者簇聚合度最低,即到中心的误差最大
(3)循环(2)直到达到终止条件(类簇数据量、最小平方误差、迭代次数)
(4)队列中的簇即为最终的分类集合
5.2 K-Means++
K-Means++区别于K-Means算法在于初始的k个聚类中心的选择
(1)从数据集中任选一个节点作为第一个聚类中心
(2)对数据集中的每个点,计算其到已有聚类中心的距离和,距离和最大的点为新增聚类中心。
5.3 K-Means||
算法的思路是改变每次遍历时候的取样规则,每次获取K个样本,重复该取样操作O(log(n))次,然后从抽出来的样本聚类出K个点,最后使用这K个点作为K-Means算法的初始聚类中心,实践表明次重复采样就可以保证一个比较好的聚类中心。
5.4 Canopy算法
算法流程
设置两个距离阈值r1、r2
(1)计算样本点到簇中心的距离,与样本距离最近的簇的距离为D
(2)如果D<r1,则样本点属于该簇
(3)如果D<r2,则样本点为该簇簇中心
(4)如果D>r1,则样本点为新簇簇中心
(5)循环执行(1)~(4)

K-Means++、K-Means||、Canopy算法给出初始聚类中心的选取方法,基于初始的聚类中心进行后续的K-Means算法聚类。

6、K-Means性能优化

6.1 Mina Batch K-Means
算法流程
(1)抽取部分数据集,使用K-Means算法进行聚类
(2)继续抽取部分数据集,分配给距离最近的聚类中心,更新聚类中心的值
(3)循环迭代(1)~(2),直到中心稳定或者达到迭代次数。
6.2 elkan K-Means
在传统的K-Means算法中,我们在每轮迭代时,要计算所有的样本点到所有的质心的距离,这样会比较的耗时,elkan K-Means算法就是从这块入手加以改进。它的目标是减少不必要的距离的计算,elkan K-Means利用了两边之和大于等于第三边,以及两边之差小于第三边的三角形性质,来减少距离的计算.
第一种规律是对于一个样本点x和两个质心μj1,μj2。如果我们预先计算出了这两个质心之间的距离D(j1,j2),则如果计算发现2D(x,j1)≤D(j1,j2),就可以知道D(x,j1)≤D(x,j2)。此时我们不需要再计算D(x,j2)
第二种规律是对于一个样本点x和两个质心μj1,μj2。我们可以得到D(x,j2)≥max{0,D(x,j1)−D(j1,j2)}。如果样本的特征是稀疏的,有缺失值,此时某些距离无法计算,则不能使用该算法

写博客的目的是学习的总结和知识的共享,如有侵权,请与我联系,我将尽快处理

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值