聚类算法的评价指标
聚类是什么?
通俗来讲,就是把凌乱的样本按照其相似度,进行划分的过程。
举个例子,将人按性格划分,将用户按群体划分。
-
聚类与分类的区别:聚类是一种无监督学习,所用样本为无标记样本,即无法通过算法输出与实际结果的比较进行评价
-
数学定义:
- 样本集: X = { x ( 1 ) , . . . , x ( N ) ) } X=\{x^{(1)},...,x^{(N))}\} X={x(1),...,x(N))} ,含 N 个无标记样本
- x ( n ) x^{(n)} x(n):D维特征向量, [ x 1 ( n ) , . . . , x D ( n ) ) ] T [x^{(n)}_1,...,x^{(n))}_D]^T [x1(n),...,xD(n))]T
- 不相交簇: { C l ∣ l = 1 , . . . , k } \{C_l|l=1,...,k\} {Cl∣l=1,...,k} ,其中 C l ′ ⋂ l ′ ≠ l C l = ∅ C_{l'}\bigcap_{l'\neq l}C_l=\emptyset Cl′⋂l′=lCl=∅
- 样本集 X 的划分:寻找若干 X 子集 C l C_l Cl ,使 X = ⋃ l = 1 k C l X=\bigcup^k_{l=1}C_l X=⋃l=1kCl
- 聚类:把样本集划分为不相交簇的过程,此时的不相交簇,被称为 “样本簇”
- 簇标记: λ n ∈ { 1 , . . . , k } \lambda_n\in\{1,...,k\} λn∈{1,...,k} ,用于表示样本 x ( n ) x_{(n)} x(n) 的簇标记(cluster label)
- 簇标记向量: λ ⃗ = [ λ 1 , . . . λ N ] \vec{\lambda}=[\lambda_1,...\lambda_N] λ=[λ1,...λN]
-
聚类算法的性能度量:
掌握算法的性能度量,我们才能评估聚类结果的好坏;设定合适的性能度量作为我们的优化目标,用于判定是否已经达到要求,以期达到“簇内相似度高”,“簇间相似度低”的聚类效果。
方案一 具有参考模型,可将聚类结果与参考模型比较
聚类算法簇划分: C = { C 1 , . . . , C K } C=\{C_1,...,C_K\} C={C1,...,CK} ,标记向量 λ ⃗ \vec\lambda λ
参考模型簇划分: C ∗ = { C 1 ∗ , . . . , C K ∗ } C^*=\{C_1^*,...,C_K^*\} C∗={C1∗,...,CK∗} ,标记向量 λ ⃗ ∗ \vec\lambda^* λ∗
定义:
a = ∣ S S ∣ , S S = { ( x ( i ) , x ( j ) ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } a=|SS|,SS=\{(x^{(i)},x^{(j)})|\lambda_i=\lambda_j,\lambda_i^*=\lambda_j^*,i<j\} a=∣SS∣,SS={(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 } b=|SD|,SD=\{(x^{(i)},x^{(j)})|\lambda_i=\lambda_j,\lambda_i^*\neq\lambda_j^*,i<j\} b=∣SD∣,SD={(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 } c=|DS|,DS=\{(x^{(i)},x^{(j)})|\lambda_i\neq\lambda_j,\lambda_i^*=\lambda_j^*,i<j\} c=∣DS∣,DS={(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 } d=|DD|,DD=\{(x^{(i)},x^{(j)})|\lambda_i\neq\lambda_j,\lambda_i^*\neq\lambda_j^*,i<j\} d=∣DD∣,DD={(x(i),x(j))∣λi=λj,λi∗=λj∗,i<j}
由排列组合知识可得: a + b + c + d = C N 2 = N ( N − 1 ) / 2 a+b+c+d=C^2_N=N(N-1)/2 a+b+c+d=CN2=N(N−1)/2
Jaccard 系数: J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca
FM 指数: F M I = a a + b ⋅ a a + c FMI=\sqrt{\frac{a}{a+b}\cdot\frac{a}{a+c}} FMI=a+ba⋅a+ca
Rand 指数: R I = 2 ( a + d ) N ( N − 1 ) RI=\frac{2(a+d)}{N(N-1)} RI=N(N−1)2(a+d)
以上性能度量结果均在 [0,1] 内,且越大越好
方案二 无参考模型,依据距离来衡量聚类性能
定义:
a v g ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ≤ i < j ≤ ∣ C ∣ d i s t ( x ( i ) , x ( j ) ) avg(C)=\frac{2}{|C|(|C|-1)}\sum_{1\leq i< j \leq|C|}dist(x^{(i)},x^{(j)}) avg(C)=∣C∣(∣C∣−1)2∑1≤i<j≤∣C∣dist(x(i),x(j))
d i a m ( C ) = m a x 1 ≤ i < j ≤ ∣ C ∣ d i s t ( x ( i ) , x ( j ) ) diam(C)=max_{1\leq i< j \leq|C|}dist(x^{(i)},x^{(j)}) diam(C)=max1≤i<j≤∣C∣dist(x(i),x(j))
d m i n ( C i , C j ) = m i n x ( i ) ∈ C i , x ( j ) ∈ C j d i s t ( x ( i ) , x ( j ) ) d_{min}(C_i,C_j)=min_{x^{(i)}\in C_i,x^{(j)}\in C_j}dist(x^{(i)},x^{(j)}) dmin(Ci,Cj)=minx(i)∈Ci,x(j)∈Cjdist(x(i),x(j))
d c e n ( C i , C j ) = d i s t ( x ˉ ( i ) , x ˉ ( j ) ) d_{cen}(C_i,C_j)=dist(\bar x^{(i)},\bar x^{(j)}) dcen(Ci,Cj)=dist(xˉ(i),xˉ(j))
符号说明:
dist(),表示两样本间的距离
avg(C),簇 C 内样本间的平均距离
diam(C),簇 C 内样本间的最远距离
d m i n d_{min} dmin, C i , C j C_i,C_j Ci,Cj 最近样本间的距离
d c e n d_{cen} dcen, C i , C j C_i,C_j Ci,Cj 中心点间的距离
|C|,C 中元素个数
DB 指数: D B I = 1 k ∑ i = 1 k m a x j ≠ i ( a v g ( C i ) + a v g ( C j ) d e n ( x ˉ ( i ) , x ( j ) ) ) DBI=\frac{1}{k}\sum^k_{i=1}max_{j\neq i}(\frac{avg(C_i)_+avg(C_j)}{den(\bar x^{(i)},x^{(j)})}) DBI=k1∑i=1kmaxj=i(den(xˉ(i),x(j))avg(Ci)+avg(Cj))
Dunn 指数: D I = m i n 1 ≤ i ≤ k { m i n j ≠ i ( d m i n ( C i , C j ) m a x 1 ≤ l ≤ k d i a m ( C l ) ) } DI=min_{1\leq i\leq k}\{min_{j\neq i}(\frac{d_{min}(C_i,C_j)}{max_{1\leq l\leq k}diam(C_l)})\} DI=min1≤i≤k{minj=i(max1≤l≤kdiam(Cl)dmin(Ci,Cj))}
DBI 越小越好,DI 越大越好。
-
聚类算法中的距离计算
距离的性质:
-
非负性
-
同一性,距离为0,样本相同
-
对称性, d i s t ( x ( i ) , x ( j ) ) = d i s t ( x ( j ) , x ( i ) ) dist(x^{(i)},x^{(j)})=dist(x^{(j)},x^{(i)}) dist(x(i),x(j))=dist(x(j),x(i))
-
直递性, d i s t ( x ( i ) , x ( j ) ) = d i s t ( x ( i ) , x ( k ) ) + d i s t ( x ( k ) , x ( j ) ) dist(x^{(i)},x^{(j)})=dist(x^{(i)},x^{(k)})+dist(x^{(k)},x^{(j)}) dist(x(i),x(j))=dist(x(i),x(k))+dist(x(k),x(j))
经典距离的定义:
-
闵可夫斯基距离: d i s t m k ( x ( i ) , x ( j ) ) = ( ∑ d = 1 D ∣ x d ( i ) − x d ( j ) ∣ ) 1 / p dist_{mk}(x^{(i)},x^{(j)})=(\sum^D_{d=1}|x_d^{(i)}-x_d^{(j)}|)^{1/p} distmk(x(i),x(j))=(∑d=1D∣xd(i)−xd(j)∣)1/p
-
曼哈顿距离:令上式 p=1
-
加权距离:由于样本空间中不同属性的重要性不同,一般会使用加权距离,如加权闵可夫斯基距离,如下
d i s t w m k ( x ( i ) , x ( j ) ) = ( w 1 ∣ x d ( i ) − x d ( j ) ∣ p + . . . + w D ∣ x d ( i ) − x d ( j ) ∣ p ) 1 / p dist_{wmk}(x^{(i)},x^{(j)})=(w_1|x_d^{(i)}-x_d^{(j)}|^p+...+w_D|x_d^{(i)}-x_d^{(j)}|^p)^{1/p} distwmk(x(i),x(j))=(w1∣xd(i)−xd(j)∣p+...+wD∣xd(i)−xd(j)∣p)1/p 其中 ∑ d = 1 D w d = 1 \sum^D_{d=1}w_d=1 ∑d=1Dwd=1
距离是相似度的度量,一般距离越小,相似度越高。
在用于度量相似度时,距离定义的直递性往往不重要。
数据样本复杂多变,往往需要根据数据样本的情况重新选择合适的距离公式,可通过距离学习来实现。
-