【Estimation of the Number of Clusters】Dip-means in NIPS 2012 个人理解

一、简介

题目: Dip-means: an incremental clustering method for estimating the number of clusters
会议: NIPS 2012
任务: 估计无标签数据的类别数量 k k k并聚类。
Idea: 基于单个簇服从单峰分布(unimodal distribution)的假设。首先,根据初始 k k k,进行 k k k-means聚类。然后,通过Hartigans’ dip test对每个聚类簇进行单峰检验(并不是直接对样本点进行检验,而是对各样本点与同簇所有样本的距离向量进行检验),根据检验结果给每个簇一个评分,若评分均为0,则当前 k k k已合适程序终止,否则,将评分最高的簇一分为二并继续聚类、检验、评分、判断。
Code: GitHub
Note: 该方法与X-meansG-means一样都是基于 k k k-means的。

Dip-means
如图,为Dip-means的算法流程,下节做详细介绍。

二、详情

1. 算法步骤

输入:无标签数据 X = { x i } i = 1 N \pmb X=\{\pmb x_i\}_{i=1}^{N} X={xi}i=1N,初始簇数量 k i n i t k_{init} kinit,置信度 α \alpha α,条件阈值 v t h d v_{thd} vthd
输出:预测的类别数量 k k k和聚类结果 { C , M } \{\pmb C,\pmb M\} {C,M}
(1)初始化 k = k i n i t k=k_{init} k=kinit,执行 k k k-means,得到标签 C C C和各簇质心 M M M
(2)针对簇 c j , j = 1 , ⋯   , k c_j,j=1,\cdots,k cj,j=1,,k,计算簇内样本两两之间的距离形成距离矩阵;
(3)针对簇 c j , j = 1 , ⋯   , k c_j,j=1,\cdots,k cj,j=1,,k,根据距离矩阵计算簇内各样本的dip统计量(距离矩阵的一行对应一个样本);
(4)针对簇 c j , j = 1 , ⋯   , k c_j,j=1,\cdots,k cj,j=1,,k,根据dip统计量计算簇内各样本的检验 p p p值,如果 p p p值大于 α \alpha α,则接受该簇符合单峰分布,否则,拒绝。记簇 c j c_j cj中接受假设的样本数为 ∣ ν j ∣ |\nu_j| νj
(5)针对 c j , j = 1 , ⋯   , k c_j,j=1,\cdots,k cj,j=1,,k,若 ∣ ν j ∣ n j ≥ v t h d \frac{|\nu_j|}{n_j}\geq v_{thd} njνjvthd,取簇内接受假设的样本的dip统计量的均值作为该簇的得分 s c o r e j score_j scorej,否则, s c o r e j = 0 score_j=0 scorej=0
(6)若有 s c o r e j > 0 , j = 1 , ⋯   , k score_j>0,j=1,\cdots,k scorej>0,j=1,,k,将 s c o r e j score_j scorej最大的簇一分为二,簇质心 m m m { m L , m R } ← { x , m − ( x − m ) } \{m_L,m_R\}\leftarrow\{x,m-(x-m)\} {mL,mR}{x,m(xm)}替换, x x x是簇内随机选取的样本(两个质心与原 m m m距离相当方向相反),否则,算法终止。
(7)令 k = k + 1 k=k+1 k=k+1,去掉 m m m其余旧簇质心 M − m M-m Mm保留与新簇质心 m L , m R m_L,m_R mL,mR合并初始化 k k k-means质心,并在原样本上再次执行 k k k-means得到新的标签 C C C和各簇质心 M M M,之后转(2)。

2. 步骤拆解

步骤(2)-(3) 中,为了提升检验有效性,dip统计量是针对距离向量计算的,而不是原数据,因为维度越高检验能力越差。

不同样本的距离向量不同,dip统计量便不同, p p p值也就不同,与 α \alpha α的关系也就不同,检验通过情况也就不同。

在这里插入图片描述

如图,(a)、(d)、(g)均为一个均匀球和一个椭圆高斯分布,差别在于两个簇的距离不同。 × \color{blue}\times ×为接受簇为单峰分布的点, × \color{red}\times ×为拒绝接受簇为单峰分布的点(即接受一分为二的点), ◯ \small\bigcirc □ \Box × \color{red}\times ×中dip统计量最大和最小的点,后两列的图为距离向量的概率密度柱状图。

从图中第一列可以看出,随着两个簇逐渐接近,接受将两个簇一分为二的点在减少。从后两列可以看出,最强的分割视图(其实视图就是某个样本点)的距离向量能够很好地展示数据整体是否为单峰分布,最弱的则不行。鉴于不同样本的不同表现和强视图不易寻找,作者在步骤(2)-(4) 是对所有样本都进行距离向量、dip统计量、 p p p值的计算并在步骤(5) 以占比判断是否应该将簇一分为二并分配评估分数,公式如下:

步骤(6) 中,为了避免分出过多的簇(overestimation),作者仅对得分最高的簇进行分割。

步骤(6)-(7) 中,为了加速 k k k-means收敛,作者将旧的质心保留并取方向相反的两个新质心作为初始质心。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fulin_Gao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值