(《机器学习》完整版系列)第9章 聚类——9.5 密度聚类与层次聚类(DBSCAN算法、AGNES算法)

DBSCAN是一种基于密度的聚类算法,使用邻域参数(ε,MinPts)来识别数据集中的紧密区域。核心对象是满足特定密度条件的样本,它们之间的密度可达关系定义了簇的结构。AGNES算法则是层次聚类方法,自底向上合并距离最近的簇。两种算法对簇的定义和构建方式有所不同,但都依赖于特定的距离度量标准。
摘要由CSDN通过智能技术生成

DBSCAN以邻域参数 ( ϵ , M i n P t s ) (\epsilon ,\mathrm{MinPts}) (ϵ,MinPts)来刻画分布的紧密程度。
AGNES算法找距离最近的两簇进行合并。

密度聚类

高斯混合聚类是从样本 x \boldsymbol{x } x的分布密度入手建立概率模型,这里仍从分布密度入手,但考察样本之间的连接性。 DBSCAN以邻域参数 ( ϵ , M i n P t s ) (\epsilon ,\mathrm{MinPts}) (ϵ,MinPts)来刻画分布的紧密程度。 对数据集 D = { x i } i = 1 m D=\{\boldsymbol{x }_i\}_{i=1}^m D={xi}i=1m,设定一个稠密标准,样本周围达到这个标准,则称该样本为核心对象,通俗地讲:核心样本就是以该样本为球心,半径为 ϵ \epsilon ϵ的球内及球上(称为 ϵ \epsilon ϵ-邻域)至少包含 M i n P t s \mathrm{MinPts} MinPts个样本。

显然,一个样本能否称为核心对象与两参数 ( ϵ , M i n P t s ) (\epsilon ,\mathrm{MinPts}) (ϵ,MinPts)有关,故将这两参数作为认定密度标准。 一旦确定了该标准就可以对数据集 D D D进行考察。

核心对象 x i \boldsymbol{x }_i xi到达其邻域内的点 x j \boldsymbol{x }_j xj称为密度直达。 可以设想核心为巴士总站,它到其邻域内每一站点都有一直达巴士但是单向的。 用有向线段表示密度直达: ( x i → x j ) (\boldsymbol{x }_i\rightarrow \boldsymbol{x }_j) (xixj),若 x j \boldsymbol{x }_j xj也是核心对象,才有回程直达 ( x j → x i ) (\boldsymbol{x }_j\rightarrow \boldsymbol{x }_i) (xjxi)

密度可达可以理解为可换乘到达:通过一系列的核心对象站点换乘上述单向直达巴士从 x i \boldsymbol{x }_i xi到达 x j \boldsymbol{x }_j xj。 若两个人从同一点分别向两个不同方向出发,按密度可达方式各自到达一个站点,则这两个站点称为密度相连。 密度可达当然是密度相连,因为其中一人坐了0站。 【西瓜书图9.8】给出了概念的图示。

有了上述概念,就可以定义簇:若 x i \boldsymbol{x }_i xi x j \boldsymbol{x }_j xj密度相连,则 x i \boldsymbol{x }_i xi x j \boldsymbol{x }_j xj属于同一簇。 与前述聚类不同的是,这里没有指定簇的个数,而是指定簇的标准,即超参数为 ( ϵ , M i n P t s ) (\epsilon ,\mathrm{MinPts}) (ϵ,MinPts),它隐式地决定了簇的个数,如【西瓜书图9.10】示例,由 ( ϵ = 0.11 , M i n P t s = 5 ) (\epsilon=0.11 ,\mathrm{MinPts}=5) (ϵ=0.11,MinPts=5)在数据集上划分的簇数为4。

【西瓜书图9.9】DBSCAN算法分为两部分:

(1)找出所有核心对象 Ω \Omega Ω,第2-7句。

(2)依超参数 ( ϵ , M i n P t s ) (\epsilon ,\mathrm{MinPts}) (ϵ,MinPts)指定的标准,依次找出簇 C 1 , C 2 , ⋯   , C n C_1,C_2,\cdots,C_n C1,C2,,Cn,第10-24句。

L L L为未访问的样本的集合,这里的“访问”就是指前述坐单向巴士去,而 L o l d L_{\mathrm{old}} Lold L L L的备份。 第(2)部分包含两层循环:

第一层,基于核心对象集合 Ω \Omega Ω的循环,第10句。 循环体为:

  • 任意取出一核心对象 o o o,第12句。
  • 找出含核心对象 o o o的簇 C k C_k Ck,第22句。 找的过程留待第二层处理。
  • Ω \Omega Ω中剔除簇 C k C_k Ck中的核心对象,第23句。

第一层循环过程中 k k k递增,最后的 k k k即为簇数 n n n

第二层,基于工作队列(或集合) Q Q Q的循环,第14句。 Q Q Q的初始化为第一层选定的样本(核心对象 o o o),第12句。 循环体为:

  • Q Q Q中取出 q q q Q Q Q中减少一个元素 q q q,第15句。
  • q q q为核心对象(第16句)时,从 q q q出发乘巴士直达未去过的点,将其全部放入 Q Q Q,第17-18句。
  • 上述巴士“访问”过的点从 L L L中剔除,第13句和第19句。

第二层循环中形成访问链,即为通过 q q q出发能密度达到的样本,循环完后,说明所有的通过 q q q出发能访问(密度达到)的样本已全部从 L L L中剔除,因此,剔除的样本集( L o l d ∖ L L_{\mathrm{old}}\setminus L LoldL)即为由 o o o导出的簇 C k C_k Ck,第22句。

层次聚类

AGNES算法【西瓜书图9.11】是采用“自底向上”,原理比较简单。 其技巧在于建立一个二维表(或矩阵),元素为 M ( i , j ) = d ( C i , C j ) M(i,j)=d(Ci,Cj) M(i,j)=d(Ci,Cj),第4-8句所述。 由于距离的对称性,故实际只需考虑上三角形。

找出二维表中的最小值,设为 M ( i ∗ , j ∗ ) ,   ( i ∗ < j ∗ ) M(i^*,j^*),\ (i^*<j^*) M(i,j), (i<j),则进行合并(向编号小的合并):

  • C j ∗ C_{j^*} Cj并入 C i ∗ C_{i^*} Ci,第13句。
  • j ∗ + 1 {j^*+1} j+1簇及之后的簇编号向前递进一位(对应于表中的第 j ∗ {j^*} j后续列左移、行上移),第14-16句。
  • 矩阵中与 j ∗ j^* j相关的删除:去掉第 j ∗ j^* j行、第 j ∗ j^* j列,第17句。
  • 矩阵中与 i ∗ i^* i相关的重新计算 M M M,第18-21句。

反复执行上述操作,直到簇数 q q q降直设定的值 k k k

需要指出的是算法对“距离”的选用并没有作限制,即可取(7、有趣的距离与范数)中定义的集合间的距离,不同的距离对算法有不同的影响,
如图9.2所示,左图以簇间样本的最小距离作为簇间距离(虚线所示),右图以簇间样本的最大距离作为簇间距离(虚线所示)。

图9.2 簇间距离

图9.2 簇间距离

【西瓜书图9.11】AGNES算法中第12、13句找距离最近的两簇进行合并,当簇间距离依“最小距离”定义时,距离最近的两簇为 A A A B B B,即 A A A B B B合并;
当簇间距离依“最大距离”定义时,距离最近的两簇为 A A A C C C,即 A A A C C C合并。

如图9.2所示,左图中当 A A A的左端向左或 B B B的右端向右延伸,最小距离法并没有去限定,这时,最小距离法会使合并后的簇中样本间的方差变大。 即最小距离法没有考虑簇的“体量”,而最大距离法则考虑簇的“体量”,右图中当 A A A的左端向右或 B B B的右端向左压缩后,会使得 A A A B B B的距离变小,从而导致 A A A B B B合并。

在算法中若取 k = 1 k=1 k=1,则归并过程形成一个“树状图”【西瓜书图9.12】所示。 它可看作数据集的关于“距离”度量的结构图。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:9.4 高斯混合模型EM算法详细推导
下一篇:10.1 k近邻算法(你是住在穷人区还是富人区?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值