Kmeans++聚类算法原理与实现

Kmeans++是Kmeans的改进版,主要解决了初始化簇中心的问题。算法通过逐个选取离现有簇中心最远的样本点作为新的簇中心,减少聚类错误。本文详细介绍了Kmeans++的原理和计算示例。
摘要由CSDN通过智能技术生成

1 引例

在上一篇文章中,笔者介绍了什么是聚类算法,并且同时还介绍了聚类算法中应用最为广泛的 K m e a n s Kmeans Kmeans聚类算法。从 K m e a n s Kmeans Kmeans聚类算法的原理可知, K m e a n s Kmeans Kmeans在正式聚类之前首先需要完成的就是初始化 k k k个簇中心。同时,也正是因为这个原因,使得 K m e a n s Kmeans Kmeans聚类算法存在着一个巨大的缺陷——收敛情况严重依赖于簇中心的初始化状况。试想一下,如果在初始化过程中很不巧的将 k k k个(或大多数)簇中心都初始化了到同一个簇中,那么在这种情况下 K m e a n s Kmeans Kmeans聚类算法很大程度上都不会收敛到全局最小值。也就是说,当簇中心初始化的位置不得当时,聚类结果将会出现严重的错误。

如图所示的数据集仍旧是在上一篇文章中我们所用到的人造数据集,不同的是在进行聚类时我们人为的将三个簇中心初始化了到一个簇中。其中iter=0时的情况为未开始聚类前根据每个样本的真实簇标签所展示的情况,其中蓝色、绿色和橙色分别表示三个簇的分布情况,三个黑色圆点为初始化的簇中心。从上图中可以发现, K m e a n s Kmeans Kmeans在进行完第10次迭代后,将最上面的一个簇分为了两个簇,将下面的两个簇划分成了一个簇。同时,当进行完第30次迭代后,可以发现算法已经开始收敛,后续簇中心并没有发生任何变化。最终的结果仍旧是将上面一个簇分为两个,下面两个簇划分为一个。

通过上面这个例子我们知道,初始簇中心的位置会严重影响到 K m e a n s Kmeans Kmeans聚类算法的最终结果,那么我们该怎么最大可能的避免这种情况呢?此时就开始轮到 K m e a n s + + Kmeans++ Kmeans++算法登场了。

2 Kmeans++聚类算法

K m e a n s +

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值