K-Means++算法

传统的K-Means算法对初始聚类中心的选择非常敏感,而K-Means++就是针对这一点来对K-Means进行改进。

K-Means++选择初始聚类中心的步骤

  1. 从输入的数据点集合中随机选择一个点作为第一个聚类中心
  2. 对于数据集中的每一个点x,计算它与已选择的聚类中心中最近聚类中心的距离D(x)
  3. 依据一个有权重的概率分布选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
  4. 重复2-3,选出k个聚类中心
  5. 利用这k个初始的聚类中心来执行标准的k-means算法

第2步中,计算每个数据点与最近的聚类中心的距离,依次得到D(1)、D(2)、…、D(n)构成的集合D,其中n表示数据集的大小。

在D中,为了避免噪声,不能直接选取D(x)值最大的元素,而是依概率来选取较大的元素。

具体实现:

  1. 将D(x)相加得到s=sum(D(x))
  2. 取一个落在[0,s]中的随机值r,然后用r -= D(x),直到其<=0,此时的点就是下一个聚类中心。

直观理解:

把集合D中的每个元素D(x)想象为一根线L,线的长度就是元素的值。将这些线依次按照L(1)、L(2)、…、L(n)的顺序连接起来,组成长线L。L(1)、L(2)、…、L(n)称为L的子线。根据概率的相关知识,如果我们在L上随机选择一个点,那么这个点所在的子线很有可能是比较长的子线,而这个子线对应的数据点就可以作为聚类中心。

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值