【Estimation of the Number of Clusters】X-means in ICML 2000 个人理解

X-means算法是K-means的一种扩展,主要用于自动估计无标签数据的类别数量。它通过在现有簇上应用K-means并比较分割前后的BIC(贝叶斯信息准则)分数来决定是否继续分割。算法从预设的最小类别数开始,不断尝试分割簇,直到BIC分数不再增加或达到预设的最大类别数。BIC用于平衡模型复杂度和拟合优度,帮助确定最佳的簇数量。
摘要由CSDN通过智能技术生成

一、简介

题目: X-means: Extending K-means with Efficient Estimation of the Number of Clusters
会议: ICML 2000
任务: 估计无标签数据的类别数量并聚类。
Idea: 给定预估的类别数上下界,从下界开始做一次 k k k-means,再对每个簇进行 k k k-means( k = 2 k=2 k=2),之后通过贝叶斯信息准则(Bayesian Information Criterion, BIC)判断 k k k应该等于2还是1,如此往复直至 k k k不再增加或到达上界。

二、详情

x-means
如图,X-means通过将现有簇一分为二并对比前后BIC分数来确定当前簇是否应该被分割。

1. 算法步骤

输入:无标签数据 D D D,预估类别数上下界限 K max ⁡ K_{\max} Kmax K min ⁡ K_{\min} Kmin
输出:预测的类别数量和聚类结果。
(1)初始化 k n e w = K min ⁡ k_{new}=K_{\min} knew=Kmin
(2)设定 k = k n e w k=k_{new} k=knew,执行一次 k k k-means,形成 k n e w k_{new} knew个簇;
(3)对于每个簇,计算它们当前的BIC值(计算方法见下一节);
(4)在每个簇上,设定 k = 2 k=2 k=2,执行 k k k-means,每个簇都被分割为2个新簇;
(5)对于每个新簇对(一对新簇是指分割自同一簇的两个新簇),计算它们的BIC值;
(6)比较(3)和(5)得到的BIC值,对于一个簇来说,如果后者BIC值更大,则应该对其进行分割,于是 k n e w = k n e w + 1 k_{new}=k_{new}+1 knew=knew+1
(7)如果(6)中 k n e w k_{new} knew没有增加或 k n e w ≥ K max ⁡ k_{new}\geq K_{\max} knewKmax则算法终止;否则,转(2)。

2. BIC评分

BIC_notes中指出原文BIC计算公式存在错误,因此,我们仅对BIC_notes中的公式进行介绍,公式如下:

其中, ϕ \phi ϕ为簇的分割状态, p ϕ p_{\phi} pϕ为该状态下的模型参数量, R R R为样本总数, l ^ ϕ ( D ) \hat{l}_{\phi}(D) l^ϕ(D)公式如下:

其中, K K K为当前簇的数量, R n R_n Rn为第 n n n个簇的样本数, M M M为样本长度, σ ^ 2 \hat{\sigma}^2 σ^2公式如下:

其中, x i x_i xi为第 i i i个样本, μ ( i ) \mu_{(i)} μ(i) x i x_i xi所在簇的样本中心。

经过整理,去除与簇的分配无关的参数可知实际BIC得分对比公式如下:

其中, ϕ 1 \phi_1 ϕ1 ϕ 2 \phi_2 ϕ2为分割前后簇的状态。可知,第一项对比的是各簇的样本数量是否平均,第二项对比的是簇的数量,第三项对比的是各簇的样本方差,第四项对比的是参数量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fulin_Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值