ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

聚类

2022-05-29 11:31:27  阅读:173  来源: 互联网

标签:right sum boldsymbol 样本 聚类 left


聚类

clustering

形式化地说,假定样本集 \(D=\left\{\boldsymbol{x}_{1},\boldsymbol{x}_{2},\ldots,\boldsymbol{x}_{m}\right\}\) 包含 \(m\) 个无标记样本,每个样本 \(\boldsymbol{x}_{i}=\left(x_{i 1} ; x_{i 2} ; \ldots ; x_{i n}\right)\) 是一个 \(n\) 维特征向量,则聚类算法将样本集 \(D\) 划分为 \(k\) 个不相交的簇 \(\left\{C_{l} \mid l=1,2 ; \ldots,k\right\}\),其中 \(C_{l^{\prime}} \bigcap_{l^{\prime} \neq l} C_{l}=\varnothing\) 且 \(D=\bigcup_{l=1}^{k} C_{l}\)。相应地,我们用 \(\lambda_{j} \in\{1,2,\ldots,k\}\) 表示样本 \(\boldsymbol{x}_{j}\) 的 “簇标 记" (cluster label),即 \(\boldsymbol{x}_{j} \in C_{\lambda_{j}}\)。于是,聚类的结果可用包含 \(m\) 个元素的簇标 记向量 \(\boldsymbol{\lambda}=\left(\lambda_{1} ; \lambda_{2} ; \ldots ; \lambda_{m}\right)\) 表示.

性能度量

聚类性能度量亦称聚类“有效性指标”(validity index)。与监督学习中的性能度量作用相似,对聚类结果,我们需通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。

聚类是将样本集D划分为若干互不相交的子集,即样本簇。那么,什么样的聚类结果比较好呢?直观上看,我们希望“物以类聚”,即同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同。换言之,聚类结果的“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(inter-cluster similarity)低。

聚类性能度量大致有两类。一类是将聚类结果与某个“参考模型”(reference model)进行比较,称为“外部指标”(external index);另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internalindex)。

书上给出了

外部指标:

  • Jaccard 系数
  • FM 指数
  • Rand 知识

内部指标:

  • DB 指数
  • Dunn 指数

距离计算

距离函数需要满足的基本性质:

  • 非负性
  • 同一性
  • 对称性
  • 直递性

最常用的是 “闵可夫斯基距离”(Minkowski distance)

其特殊情况,p=2 为欧氏距离

p=1 为曼哈顿距离

有序与无序

用于无序属性的 VDM 距离

原型聚类

“原型”是指样本空间中具有代表性的点

原型聚类亦称“基于原型的聚类”(prototype-based clustering),此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示、不同的求解方式,将产生不同的算法。下面介绍几种著名的原型聚类算法.

k 均值聚类

给定样本集 \(D=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right\}, " k\) 均值” \((k\)-means) \()\) 算法针对聚类所得簇划分 \(\mathcal{C}=\left\{C_{1}, C_{2}, \ldots, C_{k}\right\}\) 最小化平方误差

\[E=\sum_{i=1}^{k} \sum_{\boldsymbol{x} \in C_{i}}\left\|\boldsymbol{x}-\boldsymbol{\mu}_{i}\right\|_{2}^{2}, \tag{9.24} \]

其中 \(\mu_{i}=\frac{1}{\left|C_{i}\right|} \sum_{\boldsymbol{x} \in C_{i}} \boldsymbol{x}\) 是簇 \(C_{i}\) 的均值向量。直观来看,式(9.24) 在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度, \(E\) 值越小则笶内样本相似度越高。

最小化式(9.24)并不容易,找到它的最优解需考察样本集 \(D\) 所有可能的簇划分,这是一个 NP 难问题[Aloise et al., 2009]。因此, \(k\) 均值算法采用了贪心策略,通过迭代优化来近似求解式 (9.24)。

image

为避免运行时间过长,通常设置一个最大运行轮数或最小调整幅度阈值,若达到最大轮数或调整幅度小于阈值,则停止运行.

学习向量量化

与 \(k\) 均值算法类似, “学习向量量化” (Learning Vector Quantization,简 称 LVQ)也是试图找到一组原型向量来刻画聚类结构,但与一般聚类算法不同的是,LVQ 假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类。

给定样本集 \(D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\}\),每个样本 \(\boldsymbol{x}_{j}\) 是由 \(n\) 个 属性描述的特征向量 \(\left(x_{j 1} ; x_{j 2} ; \ldots ; x_{j n}\right), y_{j} \in \mathcal{Y}\) 是样本 \(\boldsymbol{x}_{j}\) 的类别标记。LVQ 的 目标是学得一组 \(n\) 维原型向量 \(\left\{\boldsymbol{p}_{1}, \boldsymbol{p}_{2}, \ldots, \boldsymbol{p}_{q}\right\}\),每个原型向量代表一个聚类簇,簇标记 \(t_{i} \in \mathcal{Y}\).

可看作通过聚类来形成类别“子类”结构,每个子类对应一个聚类簇.

image

在学得一组原型向量 ${\bold{p}_1,\bold{p}_2,..,\bold{p}_q}$后,即可实现对样本空间 \(\chi\) 的簇划分。对任意样本 \(\boldsymbol{x}\),它将被划入与其距离最近的原型向量所代表的簇中;换言之,每个原型向量 \(\boldsymbol{p}_{i}\) 定义了与之相关的一个区域 \(R_{i}\),该区域中每个样本与 \(\boldsymbol{p}_{i}\) 的距离不大于它与其他原型向量 \(\boldsymbol{p}_{i^{\prime}}\left(i^{\prime} \neq i\right)\) 的距离,即

\[R_{i}=\left\{\boldsymbol{x} \in \mathcal{X} \mid\left\|\boldsymbol{x}-\boldsymbol{p}_{i}\right\|_{2} \leqslant\left\|\boldsymbol{x}-\boldsymbol{p}_{i^{\prime}}\right\|_{2}, i^{\prime} \neq i\right\} \tag{9.27} \]

由此形成了对样本空间 \(\mathcal{X}\) 的簇划分 \(\left\{R_{1}, R_{2}, \ldots, R_{q}\right\}\), 该划分通常称为 "Voronoi剖分" (Voronoi tessellation).

若将 \(R_i\)中样本全用原型向量 \(\bold{p}_i\) 表示,则可实现数据的“有损压缩”(lossy compression),这称为“向量量化”(vectorquantization); LVQ由此而得名.

高斯混合聚类

与k均值、LVQ用原型向量来刻画聚类结构不同,高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型。

我们先简单回顾一下(多元)高斯分布的定义。对n维样本空间X中的随机向量a,若α服从高斯分布,其概率密度函数为

\[p(\bold{x}) = \frac{1}{(2 \pi)^{\frac{n}{2}}|\sum|^{\frac{1}{2}}} e^{-\frac{1}{2}(\bold{x}-\bold{\mu})^T \sum^{-1}(\bold{x}-\bold{\mu})}\tag{9.28} \]

其中 \(\mu\) 是 n 维均值向量,\(\sum\)是 \(n \times n\) 的协方差矩阵。由式(9.28)可看出,高斯分布完全由均值向量 \(\mu\) 和协方差矩阵习这两个参数确定。为了明确显示高斯分布与相应参数的依赖关系,将概率密度函数记为 \(p(\bold{x}|\bold{\mu}, \sum)\)。

我们可定义高斯混合分布

\[p_{M}(\bold{x})=\sum^{k}_{i=1}a_i p(\bold{x}|\bold{\mu}_i, \sum_i) \tag{9.29} \]

p_{M}(·) 也是概率密度函数,\(\int p_M(x)dx=1\)

该分布共由k个混合成分组成,每个混合成分对应一个高斯分布.其中\(\mu_i\)与\(\sum_i\)是第i个高斯混合成分的参数,而 \(a_i > 0\) 为相应的“混合系数”(mixturecoefficient),\(\sum^k_{t=1}a_i=1\)。

若训练集 \(D=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right\}\) 由上述过程生成,令随机变量 \(z_{j} \in\{1 , 2, \ldots, k\}\) 表示生成样本 \(\boldsymbol{x}_{j}\) 的高斯混合成分,其取值末知。显然, \(z_{j}\) 的先验概率 \(P\left(z_{j}=i\right)\) 对应于 \(\alpha_{i}(i=1,2, \ldots, k)\)。根据贝叶斯定理,\(z_{j}\) 的后验分布对应于

\[\begin{aligned} p_{\mathcal{M}}\left(z_{j}=i \mid \boldsymbol{x}_{j}\right) &=\frac{P\left(z_{j}=i\right) \cdot p_{\mathcal{M}}\left(\boldsymbol{x}_{j} \mid z_{j}=i\right)}{p_{\mathcal{M}}\left(\boldsymbol{x}_{j}\right)} \\ &=\frac{\alpha_{i} \cdot p\left(\boldsymbol{x}_{j} \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} \mid \boldsymbol{\mu}_{l}, \boldsymbol{\Sigma}_{l}\right)} \end{aligned} \tag{9.30} \]

换言之, \(p_{\mathcal{M}}\left(z_{j}=i \mid \boldsymbol{x}_{j}\right)\) 给出了样本 \(\boldsymbol{x}_{j}\) 由第 i 个高斯混合成分生成的后验概率。为方便叙述,将其简记为 \(\gamma_{j i}(i=1,2, \ldots, k)\) 。
当高斯混合分布 (9.29) 已知时, 高斯混合聚类将把样本集 D 划分为 k 个簇 \(\mathcal{C}=\left\{C_{1}, C_{2}, \ldots, C_{k}\right\}\) , 每个样本 $\boldsymbol{x}_{j} $ 的簇标记 \(\lambda_{j}\) 如下确定:

\[\lambda_{j}=\underset{i \in\{1,2, \ldots, k\}}{\arg \max } \gamma_{j i} .\tag{9.31} \]

因此,从原型聚类的角度来看,高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应后验概率确定。

那么, 对于式 (9.29),模型参数 \(\left\{\left(\alpha_{i}, \boldsymbol{\mu}_{i},\boldsymbol{\Sigma}_{i}\right) \mid 1 \leqslant i \leqslant k\right\}\) 如何求解呢?显然,给定样本集 D ,可采用极大似然估计,即最大化(对数)似然

\[\begin{aligned} L L(D) &=\ln \left(\prod_{j=1}^{m} p_{\mathcal{M}}\left(\boldsymbol{x}_{j}\right)\right) \\ &=\sum_{j=1}^{m} \ln \left(\sum_{i=1}^{k} \alpha_{i} \cdot p\left(\boldsymbol{x}_{j} \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)\right) \end{aligned} \tag{9.32} \]

常采用 EM 算法进行迭代优化求解。推导看书P209 《周志华-机器学习》

推导过程就是现 最大化:让 LL(D) 分别对 \(\sum_i\) \(\mu_i\) 求导使导数为0求新的\(\sum_i\) \(\mu_i\)的值,对于 \(a_i\)由于要满足 \(a_i \geq 0, \sum^k_{i=1}a_i=1\) 所以需要用 LL(D)的格拉朗日形式:

\[LL(D) +\lambda (\sum^k_{i=1}a_i-1) \tag{9.36} \]

由上述推导即可获得高斯混合模型的EM 算法:在每步迭代中,先根据当前参数来计算每个样本属于每个高斯成分的后验概率 \(\gamma_{ji}\) (E步),再根据式上面所说的极大似然估计更新模型参数\(\{(a_i, \mu_i,\sum_i)|1≤i≤k\}\)(M步).

算法流程如下:

image

密度聚类

密度聚类亦称 “基于密度的聚类” (density-based clustering), 此类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。

全称“Density-Based s-patial Clustering of Appli-cations with Noise” .

DBSCAN 是一种著名的密度聚类算法,它基于一组 “邻域” (neighborhood) 参数 \((\epsilon , MinPts )\) 来刻画样本分布的紧密程度。给定数据集 \(D=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right\}\) ,定义下面这几个概念:

  • \(\epsilon\) -邻域: 对 \(x_{j} \in D\) , 其 \(\epsilon\) -邻域包含样本集 D 中与 \(\boldsymbol{x}_{j}\) 的距离不大于 \(\epsilon\) 的样本, 即 \(N_{\epsilon}\left(\boldsymbol{x}_{j}\right)=\left\{\boldsymbol{x}_{i} \in D \mid \operatorname{dist}\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) \leqslant \epsilon\right\}\) ;
  • 核心对象(core object):若 \(\boldsymbol{x}_{j}\) 的 \(\epsilon\) -邻域至少包含 \(MinPts\) 个样本,即 \(\left|N_{\epsilon}\left(\boldsymbol{x}_{j}\right)\right| \geqslant M i n P t s\) ,则 \(\boldsymbol{x}_{j}\) 是一个核心对象;
  • 密度直达(directly density-reachable):若 \(\boldsymbol{x}_{j}\) 位于 \(\boldsymbol{x}_{i}\) 的 \(\epsilon\) -邻域中,且 \(\boldsymbol{x}_{i}\) 是 核心对象,则称 \(\boldsymbol{x}_{j}\) 由 \(\boldsymbol{x}_{i}\) 密度直达;

密度直达关系通常不满足对称性.

  • 密度可达(density-reachable):对 \(\boldsymbol{x}_{i}\) 与 \(\boldsymbol{x}_{j}\) ,若存在样本序列 \(\boldsymbol{p}_{1}, \boldsymbol{p}_{2}, \ldots, \boldsymbol{p}_{n}\) ,其中 \(\boldsymbol{p}_{1}=\boldsymbol{x}_{i}, \boldsymbol{p}_{n}=\boldsymbol{x}_{j}\) 且 \(\boldsymbol{p}_{i+1}\) 由 \(\boldsymbol{p}_{i}\) 密度直达, 则称 \(\boldsymbol{x}_{j}\) 由 \(\boldsymbol{x}_{i}\) 密度可达;

密度可达关系满足直递性,但不满足对称性.

  • 密度相连 (density-connected):对 \(\boldsymbol{x}_{i}\) 与 \(\boldsymbol{x}_{j}\) , 若存在 \(\boldsymbol{x}_{k}\) 使得 \(\boldsymbol{x}_{i}\) 与 \(\boldsymbol{x}_{j}\) 均由 \(\boldsymbol{x}_{k}\) 密度可达,则称 \(\boldsymbol{x}_{i}\) 与 \(\boldsymbol{x}_{j}\) 密度相连.

密度相连关系满足对称性.

image

基于这些概念,DBSCAN 将 “簇” 定义为:由密度可达关系导出的最大的密度相连样本集合。形式化地说,给定邻域参数$ ( \epsilon , MinPts)$,簇 \(C \subseteq D\) 是满足 以下性质的非空样本子集:

  • 连接性(connectivity): \(\boldsymbol{x}_{i} \in C, \boldsymbol{x}_{j} \in C \Rightarrow \boldsymbol{x}_{i}\) 与 \(\boldsymbol{x}_{j}\) 密度相连
  • 最大性(maximality): \(\boldsymbol{x}_{i} \in C, \boldsymbol{x}_{j}\) 由 \(\boldsymbol{x}_{i}\) 密度可达 \(\Rightarrow \boldsymbol{x}_{j} \in C\)

那么, 如何从数据集 D 中找出满足以上性质的聚类簇呢? 实际上, 若 \(\boldsymbol{x}\) 为核心对象, 由 \(\boldsymbol{x}\) 密度可达的所有样本组成的集合记为 \(X=\left\{x^{\prime} \in D \mid\right. \boldsymbol{x}^{\prime} 由 \boldsymbol{x} 密度可达 \}\) , 则不难证明 \(X\) 即为满足连接性与最大性的簇.

D中不属于任何簇的样本被认为是噪声(noise)或异常(anomaly)样本.

于是, DBSCAN 算法先任选数据集中的一个核心对象为 “种子” (seed), 再由此出发确定相应的聚类簇, 算法描述如图 9.9 所示. 在第 \(1 \sim 7\) 行中, 算法 先根据给定的邻域参数\(( \epsilon , MinPts )\) 找出所有核心对象; 然后在第 \(10 \sim 24\) 行中, 以任一核心对象为出发点, 找出由其密度可达的样本生成聚类簇, 直到所有核心对象均被访问过为止.

image

层次聚类

层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。

AGNES是AGglomerative NESting的简写.

AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。这里的关键是如何计算聚类簇之间的距离。实际上,每个簇是一个样本集合,因此,只需采用关于集合的某种距离即可。例如,给定聚类簇\(C_i\)与\(C_j\),可通过下面的式子来计算距离:

  • 最小距离: \(d_{\min }\left(C_{i}, C_{j}\right)=\min _{\boldsymbol{x} \in C_{i}, \boldsymbol{z} \in C_{j}} \operatorname{dist}(\boldsymbol{x}, \boldsymbol{z})\) ,
  • 最大距离: \(d_{\max }\left(C_{i}, C_{j}\right)=\max _{\boldsymbol{x} \in C_{i}, \boldsymbol{z} \in C_{j}} \operatorname{dist}(\boldsymbol{x}, \boldsymbol{z})\) ,
  • 平均距离: \(d_{\text {avg }}\left(C_{i}, C_{j}\right)=\frac{1}{\left|C_{i}\right|\left|C_{j}\right|} \sum_{\boldsymbol{x} \in C_{i}} \sum_{\boldsymbol{z} \in C_{j}} \operatorname{dist}(\boldsymbol{x}, \boldsymbol{z})\) .

显然,最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,而平均距离则由两个簇的所有样本共同决定.当聚类簇距离由 \(d_{min}、d_{max}\) 或\(d_{avg}\) 计算时,AGNES算法被相应地称为 “单链接”(single-linkage)、“全链接”(complete-linkage)或“均链接”(average-linkage)算法.

集合间的距离计算常采用豪斯多夫距离(Haus-dorff distance). 在下面这个算法中主要还是常用以上三个距离:\(d_{min}、d_{max}\) 或\(d_{avg}\)

image

第12行 \(C_{i*}<C_{j*}\)

标签:right,sum,boldsymbol,样本,聚类,left
来源: https://www.cnblogs.com/eiyi/p/16321494.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有