Fast and Provably Good Seedings for k-means

本文探讨了K-means++算法及其两种改进方法Fast and Provably Good Seedings for k-means与Approximate K-means++ in Sublinear Time。介绍了算法通过D2-sampling提升初始化效果,并讨论了k-MC^2及AFK-MC^2如何进一步优化时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍关于k-means++改进相关的两篇文章:
1. Fast and Provably Good Seedings for k-means
2. Approximate K-menas++ in Sublinear Time

k-means++ 相对于 k-menas的算法改进主要在于聚类中心的初始化阶段。

这里写图片描述

如图所示,左边是原始k-means 算法的初始化阶段,原始算随机选择 k 个点作为聚类中心。这种算法一个潜在弊端是选择的初始节点可能落在同一个聚类里面,这是我们不希望看到的。理想的初始化结果是,每个聚类里都有一个初始化的种子节点。

k-means++ 算法就是为了改变原始 k-means 算法的这种缺点。这种算法的核心思想是选取的 k 个种子节点应该尽可能的相互远,如上图右所示。这种想法直觉上比较好(有相应的证明)。

实现上述思想的过程如下:

p(x)=d(x,C)2xXd(x,C)2

这个过程称为 D2sampling , 将候选点到已知种子节点之间的距离作为这个候选节点被选中的概率。距离已知种子节点越远的候选点被选中的概率就越大。

这种算法的时间复杂度为 O(nkd) ,其中 n 是在求 p(x) 分母时,需要遍历整个数据集造成的。

kMC2 就是为了降低 *k-*means 算法的时间复杂度的改进算法。
具体做法就是使用MCMC采样来近似 D2sampling 这个过程。在选取候选种子节点时,构造一个长度为m的马尔科夫链,使得马尔科夫链的平稳分布为 p(x) ,从而马尔科夫链达到平稳状态后的那些状态就可以看作是以 p(x) 进行采样的样本点。

k-MC^2 算法有一个缺点,如下:
这里写图片描述

由于在MCMC过程中,算法使用的提案分布 q(x) 为均匀分布,这导致了潜在的缺点,就是那些样本数较小的聚类中可能不会被选中为候选节点。

为了改进这个缺点,作者又提出了 AFK-MC^2 。这个算法较k-MC^2 的改进在于改变了提案分布 q(x) ,将原来的均匀分布改变为:

q(x)=12d(x,c1)2xXd(x,C)2+12n

这样修改给人的感觉就是给原来的算法加入了一些先验分布信息,从而在选择候选节点时更为准确。从而整个算法的鲁棒性更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值