本文主要内容摘自:周志华,《机器学习》,清华大学出版社。
聚类试图将数据集中的样本划分为若干个通常是不相交的子集。形式化来说,假定样本集 D = { x 1 , x 2 , … , x m } { \mathcal D}=\{{\bf x}_1,{\bf x}_2,\ldots,{\bf x}_m\} D={x1,x2,…,xm}包含 m m m个无标记样本,每个样本 x i = ( x i 1 ; x i 2 ; … , x i n ; ) {\bf x}_i=(x_{i1};x_{i2};\ldots,x_{in};) xi=(xi1;xi2;…,xin;)是一个 n n n维向量,则聚类算法将样本集 D \mathcal D D划分为 k k k个不相交的簇 { C l ∣ l = 1 , 2 , … , k } \{{ C}_l| l=1,2,\ldots,k\} {Cl∣l=1,2,…,k},其中 C l ′ ∩ l ′ = ̸ l C l = Φ C_{l'}\cap_{l' =\not l}C_l=\Phi Cl′∩l′≠lCl=Φ且 D = ∪ l = 1 k C l D=\cup_{l=1}^{k}C_l D=∪l=1kCl。相应地,我们用 λ j ∈ { 1 , 2 , … , k } \lambda_j\in \{1,2,\ldots,k\} λj∈{1,2,…,k}表示样本 x j {\bf x}_j xj的簇标记(cluster label),即 x j ∈ C λ j {\bf x}_j\in C_{\lambda_j} xj∈Cλj。于是,聚类的结果可用包含 m m m个元素的簇标记向量 λ = ( λ 1 , λ 2 , … , λ m ) {\bm \lambda}=(\lambda_1,\lambda_2,\ldots,\lambda_m) λ=(λ1,λ2,…,λm)来表示。
下面先来讨论聚类算法涉及的两个基本问题–性能度量和距离计算。
直观来说,聚类算法应该是簇内相似度(intra-cluster similarity)高,且簇间相似度(inter-cluster similarity)低。
聚类性能度量大致来说分为两类。第一类是将聚类结果与某个参考模型(reference model)进行比较,因而称为外部指标(external index);另一类是直接考查聚类结果而不利用任何参考模型,称为内部指标(internal index)。
对数据集 D = { x i , x 2 , … , x m } D=\{{\bf x}_i, {\bf x}_2,\ldots,{\bf x}_m\} D={xi,x2,…,xm},假定经过聚类给出的簇划分为 C = { C 1 , C 2 , … , C k } {\mathcal C}=\{ C_1, C_2,\ldots,C_k\} C={C1,C2,…,Ck},参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , … , C s ∗ } {\mathcal C}^*=\{C_1^*,C_2^*,\ldots,C_s^*\} C∗={C1∗,C2∗,…,Cs∗}。相应地,令 λ \bm \lambda λ和 λ ∗ \bm \lambda^* λ∗分别表示 C \mathcal C C和 C ∗ \mathcal C^* 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\},\\ a=∣SS∣,SS={(xi,xj)∣λi=λj,λi∗=λj∗,i≤j},b=∣SD∣,SD={(xi,xj)∣λi=λj,λi∗≠λj∗,i≤j},c=∣DS∣,DS={(xi,xj)∣λi≠λj,λi∗=λj∗,i≤j},d=∣DD∣,DD={(xi,xj)∣λi≠λj,λi∗≠λj∗,i≤j},其中,集合 S S \mathcal SS SS包含了在 C \mathcal C C中隶属于相同簇,在 C ∗ \mathcal C^* C∗中也隶属于相同簇的样本对;集合 S D \mathcal SD SD包含了在 C \mathcal C C中隶属于相同簇,但在 C ∗ \mathcal C^* C∗中隶属于不同簇的样本对;集合 D S \mathcal DS DS包含了在 C \mathcal C C中隶属于不同簇,在 C ∗ \mathcal C^* C∗中隶属于相同簇的样本对;集合 D D \mathcal DD DD包含了在 C \mathcal C C中和 C ∗ \mathcal C^* C∗中都隶属于不同簇的样本对。由于每个样本对 ( x i , x j ) ( i ≤ j ) ({\bf x}_i,{\bf x}_j)(i\le j) (xi,xj)(i≤j)都只能出现在一个集合中,因此有 a + b + c + d = C m 2 = m ( m − 1 ) 2 a+b+c+d=C_m^2=\frac{m(m-1)}{2} a+b+c+d=Cm2=2m(m−1)。
常用聚类性能度量外部指标包括:
对于簇划分${\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} avg(C)diam(C)dmin(Ci,Cj)dcen(Ci,Cj)=∣C∣(∣C∣−1)21≤i<j≤∣C∣∑dist(xi,xj),=1≤i<j≤∣C∣maxdist(xi,xj),=xi∈Ci,xj∈Cjmindist(xi,xj),=dist(μi,μj),其中, d i s t ( ⋅ , ⋅ ) {\rm dist}(\cdot,\cdot) dist(⋅,⋅)用于计算两个样本之间的距离; μ {\bm \mu} μ代表簇 C \mathcal C C的中心点 μ = 1 ∣ C ∣ ∑ 1 ≤ i ≤ ∣ C ∣ x i {\bm \mu}=\frac{1}{|{\mathcal C}|}\sum_{1\le i\le |{\mathcal C}|}{\bf x}_i μ=∣C∣1∑1≤i≤∣C∣xi。显然, a v g ( C ) {\rm avg}(\mathcal C) avg(C)对应于簇C内样本间的平均距离; d i a m ( C ) {\rm diam}(\mathcal C) diam(C)对应于簇C内样本间的最远距离; d min ( C i , C j ) d_{\min}({\mathcal C}_i,{\mathcal C}_j) dmin(Ci,Cj)对应于簇 C i {\mathcal C}_i Ci与 C j {\mathcal C}_j Cj最近样本间的距离 d c e n ( C i , C j ) d_{\rm cen}({\mathcal C}_i,{\mathcal C}_j) dcen(Ci,Cj)对应于簇 C i {\mathcal C}_i Ci与 C j {\mathcal C}_j Cj中心点间的距离。
常用聚类性能度量内部指标包括: