机器学习:聚类

本文主要内容摘自:周志华,《机器学习》,清华大学出版社。

1、聚类任务

  聚类试图将数据集中的样本划分为若干个通常是不相交的子集。形式化来说,假定样本集 D = { x 1 , x 2 , , x m } { \mathcal D}=\{{\bf x}_1,{\bf x}_2,\ldots,{\bf x}_m\} 包含 m m 个无标记样本,每个样本 x i = ( x i 1 ; x i 2 ; , x i n ; ) {\bf x}_i=(x_{i1};x_{i2};\ldots,x_{in};) 是一个 n n 维向量,则聚类算法将样本集 D \mathcal D 划分为 k k 个不相交的簇 { C l l = 1 , 2 , , k } \{{ C}_l| l=1,2,\ldots,k\} ,其中 C l l = ̸ l C l = Φ C_{l'}\cap_{l' =\not l}C_l=\Phi D = l = 1 k C l D=\cup_{l=1}^{k}C_l 。相应地,我们用 λ j { 1 , 2 , , k } \lambda_j\in \{1,2,\ldots,k\} 表示样本 x j {\bf x}_j 的簇标记(cluster label),即 x j C λ j {\bf x}_j\in C_{\lambda_j} 。于是,聚类的结果可用包含 m m 个元素的簇标记向量 λ = ( λ 1 , λ 2 , , λ m ) {\bm \lambda}=(\lambda_1,\lambda_2,\ldots,\lambda_m) 来表示。
  下面先来讨论聚类算法涉及的两个基本问题–性能度量和距离计算。

2、性能度量

  直观来说,聚类算法应该是簇内相似度(intra-cluster similarity)高,且簇间相似度(inter-cluster similarity)低。
  聚类性能度量大致来说分为两类。第一类是将聚类结果与某个参考模型(reference model)进行比较,因而称为外部指标(external index);另一类是直接考查聚类结果而不利用任何参考模型,称为内部指标(internal index)。

2.1 外部指标

  对数据集 D = { x i , x 2 , , x m } D=\{{\bf x}_i, {\bf x}_2,\ldots,{\bf x}_m\} ,假定经过聚类给出的簇划分为 C = { C 1 , C 2 , , C k } {\mathcal C}=\{ C_1, C_2,\ldots,C_k\} ,参考模型给出的簇划分为 C = { C 1 , C 2 , , C s } {\mathcal C}^*=\{C_1^*,C_2^*,\ldots,C_s^*\} 。相应地,令 λ \bm \lambda λ \bm \lambda^* 分别表示 C \mathcal C C \mathcal C^* 对应的簇标记向量。我们将样本两两配对考虑,定义
a = S S S S = { ( x i , x j ) λ i = λ j , λ i = λ j , i j } , b = S D S D = { ( x i , x j ) λ i = λ j , λ i = ̸ λ j , i j } , c = D S D S = { ( x i , x j ) λ i = ̸ λ j , λ i = λ j , i j } , d = D D D D = { ( x i , x j ) λ i = ̸ λ j , λ i = ̸ λ j , i j } , a=|{\mathcal SS}|,{\mathcal SS}=\{({\bf x}_i,{\bf x}_j)|\lambda_i=\lambda_j,\lambda_i^*=\lambda_j^*,i\le j\},\\ b=|{\mathcal SD}|,{\mathcal SD}=\{({\bf x}_i,{\bf x}_j)|\lambda_i=\lambda_j,\lambda_i^*=\not\lambda_j^*,i\le j\},\\ c=|{\mathcal DS}|,{\mathcal DS}=\{({\bf x}_i,{\bf x}_j)|\lambda_i=\not \lambda_j,\lambda_i^*=\lambda_j^*,i\le j\},\\ d=|{\mathcal DD}|,{\mathcal DD}=\{({\bf x}_i,{\bf x}_j)|\lambda_i=\not\lambda_j,\lambda_i^*=\not\lambda_j^*,i\le j\},\\ 其中,集合 S S \mathcal SS 包含了在 C \mathcal C 中隶属于相同簇,在 C \mathcal C^* 中也隶属于相同簇的样本对;集合 S D \mathcal SD 包含了在 C \mathcal C 中隶属于相同簇,但在 C \mathcal C^* 中隶属于不同簇的样本对;集合 D S \mathcal DS 包含了在 C \mathcal C 中隶属于不同簇,在 C \mathcal C^* 中隶属于相同簇的样本对;集合 D D \mathcal DD 包含了在 C \mathcal C 中和 C \mathcal C^* 中都隶属于不同簇的样本对。由于每个样本对 ( x i , x j ) ( i j ) ({\bf x}_i,{\bf x}_j)(i\le j) 都只能出现在一个集合中,因此有 a + b + c + d = C m 2 = m ( m 1 ) 2 a+b+c+d=C_m^2=\frac{m(m-1)}{2}
  常用聚类性能度量外部指标包括:

  • Jaccard系数(Jaccard Coefficient, JC)
    J C = a b + c + d . {\rm JC}=\frac{a}{b+c+d}.
  • FM指数(Fowlkes and Mallows Index, FM)
    F M I = a a + b a a + c {\rm FMI}=\sqrt{\frac{a}{a+b}\cdot \frac{a}{a+c}}
  • Rand指数(Rand Index,RI)
    R I = 2 ( a + d ) m ( m 1 ) . {\rm RI}=\frac{2(a+d)}{m(m-1)}.
    显然,上述性能度量的结果都在[0,1]区间,值越大越好。

2.2 内部指标

  对于簇划分${\mathcal C}={C_1,C_2,\ldots,C_k},定义
a v g ( C ) = 2 C ( C 1 ) 1 i < j C d i s t ( x i , x j ) , d i a m ( C ) = max 1 i < j C d i s t ( x i , x j ) , d min ( C i , C j ) = min x i C i , x j C j d i s t ( x i , x j ) , d c e n ( C i , C j ) = d i s t ( μ i , μ j ) , \begin{aligned} {\rm avg}({\mathcal C})&=\frac{2}{|{\mathcal C}|(|{\mathcal C}|-1)}\sum_{1\le i<j \le |{\mathcal C}|}{\rm dist}({\bf x}_i,{\bf x}_j),\\ {\rm diam}({\mathcal C})&=\max_{{1\le i<j \le |{\mathcal C}|}}{\rm dist}({\bf x}_i,{\bf x}_j),\\ d_{\min}({\mathcal C}_i,{\mathcal C}_j)&=\min_{{\bf x}_i\in {\mathcal C}_i,{\bf x}_j\in {\mathcal C}_j}{\rm dist}({\bf x}_i,{\bf x}_j),\\ d_{\rm cen}({\mathcal C}_i,{\mathcal C}_j)&={\rm dist}({\bm \mu}_i,{\bm \mu}_j), \end{aligned} 其中, d i s t ( , ) {\rm dist}(\cdot,\cdot) 用于计算两个样本之间的距离; μ {\bm \mu} 代表簇 C \mathcal C 的中心点 μ = 1 C 1 i C x i {\bm \mu}=\frac{1}{|{\mathcal C}|}\sum_{1\le i\le |{\mathcal C}|}{\bf x}_i 。显然, a v g ( C ) {\rm avg}(\mathcal C) 对应于簇C内样本间的平均距离; d i a m ( C ) {\rm diam}(\mathcal C) 对应于簇C内样本间的最远距离; d min ( C i , C j ) d_{\min}({\mathcal C}_i,{\mathcal C}_j) 对应于簇 C i {\mathcal C}_i C j {\mathcal C}_j 最近样本间的距离 d c e n ( C i , C j ) d_{\rm cen}({\mathcal C}_i,{\mathcal C}_j) 对应于簇 C i {\mathcal C}_i C j {\mathcal C}_j 中心点间的距离。
  常用聚类性能度量内部指标包括:

  • DB指数(Davies-Bouldin Index, DBI)
    D B I = 1 k i = 1 k max j = ̸ i [ a v g ( C i ) + a v g ( C j ) d c e n ( C i , C j ) ] . {\rm DBI}=\frac{1}{k}\sum_{i=1}^{k}\max_{j=\not i}{\Large[} \frac{{\rm avg}({\mathcal C}_i)+{\rm avg}({\mathcal C}_j)}{d_{\rm cen}({\mathcal C}_i,{\mathcal C}_j)}\Large].
  • Dunn指数(Dunn Index, DI)
    D I = min 1 i k { } {\rm DI}=\min_{1\le i\le k}{\Large \{} {\Large \}}
    显然,DBI的值越小越好,而DI则相反,值越大越好。

3、距离计算

  

  

  

猜你喜欢

转载自blog.csdn.net/tanghonghanhaoli/article/details/89500670
今日推荐