赞
踩
作为机器学习领域的重要内容之一,聚类模型在许多方面能够发挥举足轻重的作用。所谓聚类,就是通过一定的技术方法将一堆数据样本依照其特性划分为不同的簇类,使得同一个簇内的样本有着更相近的属性。依不同的实现策略,聚类算法有很多种,如基于距离的k-means、基于密度的DBSCAN等。在聚类完成之后,其性能的评估是一个不可规避的问题,常见的评估方法依有无事先的标记性信息分为外部评估法和内部评估法。
一种常用的评估方式是外部评估,利用测试样本事先已有的标记信息来衡量模型的性能。常见的外部评估指标有纯度(Purity)、兰德指数(Rand Index, RI)、调整兰德指数(Adjusted Rand Index, ARI)、F值(F-score)、杰卡德系数(Jaccard, JC)、标准化互信息(NMI)等。
纯度是一种较直接的性能表征方式,计算的是正确聚类的样本数与总样本数的比值。在聚类完成之后,对每个簇内的样本,假设知晓其事先的标记性属性信息,每个簇中类别数量最多的样本即作为该簇的属性类别,给类别下的样本即纯性样本,各个簇的纯性样本数之和对总样本数的占比即纯度(Purity)。表达式为
P
u
r
i
t
y
=
1
N
∑
k
m
a
x
j
∣
w
k
∩
c
j
∣
Purity=\frac{1}{N}\sum_{k}{max_j\left| w_k\cap c_j \right|}
Purity=N1k∑maxj∣wk∩cj∣
其中,N为总的样本数,
Ω
=
{
w
1
,
w
2
,
.
.
.
,
w
K
}
\Omega=\left\{ w_1,w_2,...,w_K \right\}
Ω={w1,w2,...,wK}表示聚类簇的划分,
C
=
{
c
1
,
c
2
,
.
.
.
,
c
J
}
C=\left\{ c_1,c_2,...,c_J \right\}
C={c1,c2,...,cJ} 表示样本真实类别的划分。纯度的取值范围是[0,1],值越大,性能越好。
【示例】
现对一堆样本进行聚类操作,划分了三个簇,如下所示
在Cluster A中,三角形最多,因此该簇归属为三角形的簇,有效样本数为5;
在Cluster B中,圆形最多,因此该簇归属为圆形的簇,有效样本数为4;
在Cluster C中,正方形最多,因此该簇归属为正方形的簇,有效样本数为4。
纯度为有效样本数对总样本的占比
P
u
r
i
t
y
=
5
+
4
+
4
8
+
6
+
6
=
13
20
=
0.65
Purity=\frac{5+4+4}{8+6+6}=\frac{13}{20}=0.65
Purity=8+6+65+4+4=2013=0.65
对于已有了预先标记信息的情形,可以以与分类模型中相类似的方式进行衡定,明确下列几个概念
TP(True Positive):同类样本点被划分在同一个簇中的可能情形数;
FP(False Positive):非同类样本点被划分在同一个簇中的可能情形数;
TN(True Negative):非同类样本点分布在不同簇中的可能情形数;
FN(False Negative):同类样本点分布在不同簇中的可能情形数。
兰德指数就是指准确率,聚类后样本分布的整体准确率,定义为
R
I
=
T
P
+
T
N
T
P
+
F
P
+
T
N
+
F
N
RI=\frac{TP+TN}{TP+FP+TN+FN}
RI=TP+FP+TN+FNTP+TN
对于随机结果,兰德指数并不能保证值接近于零,这与直观上的意义不甚符合,为能够改善这种情况,调整的兰德指数(ARI)被提出。它的表达式为
A
R
I
=
R
I
−
E
(
R
I
)
m
a
x
(
R
I
)
−
E
(
R
I
)
ARI=\frac{RI-E(RI)}{max(RI)-E(RI)}
ARI=max(RI)−E(RI)RI−E(RI)
ARI取值范围为[-1,1],值越接近于1,性能越好;接近于0,相当于随机聚类;接近于-1,性能不如随机聚类。
这里同样首先借鉴了分类模型中精准度和召回率的概念,然后以F度量进行综合衡定。精准度(Precision)和召回率(Recall)定义为
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP+FP}
Precision=TP+FPTP
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP
F度量综合衡量精确度(查准率)和召回率(查全率), F β F_\beta Fβ是F1的一般形式,能让我们表达出对查准率/查全率的不同偏好,如F1分数认为召回率和精确度同等重要,F2分数认为召回率的重要程度是精确度的两倍,而F0.5分数认为召回率的重要程度是精确度的一半。
F 1 = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F_1=\frac{2\ast precision \ast recall}{precision+recall} F1=precision+recall2∗precision∗recall
F β = ( 1 + β 2 ) ∗ p r e c i s i o n ∗ r e c a l l β 2 ∗ p r e c i s i o n + r e c a l l F_\beta=\frac{(1+\beta^{2})\ast precision \ast recall}{\beta^2\ast precision + recall} Fβ=β2∗precision+recall(1+β2)∗precision∗recall
F度量的取值范围为[0,1],值越大性能越好。
杰卡德系数(Jaccard, JC)定义为聚类结果正确的样本数与聚簇结果或实际结果一致的比例,取值范围为0到1。表达式为
J
C
=
T
P
T
P
+
F
P
+
F
N
JC=\frac{TP}{TP+FP+FN}
JC=TP+FP+FNTP
杰卡德系数值越大,性能越好。
这里首先介绍一下互信息(Mutual Information)的概念,它反映了两个事件相互影响所产生的信息量。设两个随机变量(X,Y)的联合分布为p(x,y),边缘分布分别为p(x),p(y),互信息I(X; Y)是联合分布p(x,y)与边缘分布p(x)p(y)的相对熵,即
I
(
X
;
Y
)
=
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
x
)
p
(
y
)
I\left( X;Y \right)=\sum_{x\in X}{\sum_{y\in Y}{p\left( x,y \right)log\frac{p(x,y)}{p(x)p(y)}}}
I(X;Y)=x∈X∑y∈Y∑p(x,y)logp(x)p(y)p(x,y)
标准化互信息(Normalized Mutual Information, NMI)计算表达式为
N M I = I ( X , Y ) F ( H ( x ) , H ( y ) ) NMI=\frac{I\left( X,Y \right)}{F\left( H(x),H(y) \right)} NMI=F(H(x),H(y))I(X,Y)
其中F(x,y)可以为min/max函数、几何平均或算术平均,几何平均即
F
(
x
1
,
x
2
)
=
x
1
⋅
x
2
F\left( x_1,x_2 \right)=\sqrt{x_1\cdot x_2}
F(x1,x2)=x1⋅x2
,算术平均即
F
(
x
1
,
x
2
)
=
x
1
+
x
2
2
F\left( x_1,x_2 \right)=\frac{x_1+x_2}{2}
F(x1,x2)=2x1+x2,采用算术平均是比较常见的一种计算方式,此时NMI表达式可化为
N
M
I
=
2
⋅
I
(
X
,
Y
)
H
(
X
)
+
H
(
Y
)
NMI=\frac{2\cdot I\left( X,Y \right)}{H\left( X \right)+H\left( Y \right)}
NMI=H(X)+H(Y)2⋅I(X,Y)
其中,I(X,Y)为互信息,
H
(
X
)
=
−
∑
i
p
(
x
i
)
l
o
g
p
(
x
i
)
H\left( X \right)=-\sum_{i}{p(x_i)logp(x_i)}
H(X)=−∑ip(xi)logp(xi),
H
(
Y
)
=
−
∑
j
p
(
y
j
)
l
o
g
p
(
y
j
)
H\left( Y \right)=-\sum_{j}{p(y_j)logp(y_j)}
H(Y)=−∑jp(yj)logp(yj)为信息熵。
另一种常用的评估方式是内部评估,利用测试样本本身的信息衡量模型性能。常见的内部评估指标有紧密度(Compactness, CP)、间隔度(Separation, SP)、轮廓系数(Silhouette Coefficient, SC)、戴维森堡丁指数(Davies-Bouldin Index, DBI)、邓恩指数(Dunn Validity Index, DVI)等。
紧密度(Compactness, CP)是指簇内各点到聚类中心的平均距离,值越小说明簇内紧密度越高
C
P
=
1
n
∑
i
=
1
n
∣
x
i
−
μ
∣
CP=\frac{1}{n}\sum_{i=1}^{n}{\left| x_i-\mu \right|}
CP=n1i=1∑n∣xi−μ∣
间隔度(Separation, SP)指各个聚类中心之间的平均距离,值越高表明类间距离越大
S
P
=
1
k
2
∑
i
=
1
k
∑
j
=
1
k
∣
∣
μ
i
−
μ
j
∣
∣
2
SP=\frac{1}{k^2}\sum_{i=1}^{k}{\sum_{j=1}^{k}{\left| \left| \mu_i-\mu_j \right| \right|_2}}
SP=k21i=1∑kj=1∑k∣∣μi−μj∣∣2
对单个样本,设a是其与同簇中其他样本的平均距离,b是与它距离最近的不同簇类中样本的平均距离,轮廓系数为
s
=
b
−
a
m
a
x
(
a
,
b
)
s=\frac{b-a}{max\left( a,b \right)}
s=max(a,b)b−a
样本集合的轮廓系数是各样本轮廓系数的平均值
S
C
=
1
n
∑
i
=
1
n
s
i
SC=\frac{1}{n}\sum_{i=1}^{n}{s_i}
SC=n1i=1∑nsi
轮廓系数的取值范围是[-1,1],取值越接近1聚类性能越好,反之越差。
对于两个簇的样本而言,各自簇内平均距离之和除以两簇中心的距离,称为簇间相似度,簇间相似度越小说明簇内距离越小、簇间距离越大,效果越好。对所有的簇,分别找到与之聚类效果最差那个簇的簇间相似度,然后求平均值,即为戴维森堡丁指数(DBI)的定义。表达式为
D
B
I
=
1
N
∑
i
=
1
N
max
j
≠
i
[
σ
i
+
σ
j
d
(
c
i
,
c
j
)
]
DBI=\frac{1}{N}\sum_{i=1}^{N}{\max_{j\ne i}{\left[ \frac{\sigma_i+\sigma_j}{d\left( c_i,c_j \right)} \right]}}
DBI=N1i=1∑Nj=imax[d(ci,cj)σi+σj]
其中,
σ
i
=
1
n
i
∑
k
=
1
n
i
x
k
−
μ
i
\sigma_i=\frac{1}{n_i}\sum_{k=1}^{n_i}{x_k-\mu_i}
σi=ni1∑k=1nixk−μi,
σ
j
=
1
n
j
∑
k
=
1
n
j
x
k
−
μ
j
\sigma_j=\frac{1}{n_j}\sum_{k=1}^{n_j}{x_k-\mu_j}
σj=nj1∑k=1njxk−μj,
d
(
c
i
,
c
j
)
=
∣
∣
μ
i
−
μ
j
∣
∣
2
d\left( c_i,c_j \right)=\left| \left| \mu_i-\mu_j \right| \right|_2
d(ci,cj)=∣∣μi−μj∣∣2。
易知,DBI值越小,表明聚类效果越好,反之越差。
邓恩指数定义为两簇之间最小的那个簇间距离与各簇中最大的那个簇内距离的比值。表达式为
D V I = m i n 1 ≤ i ≠ j ≤ N d ( μ i , μ j ) m a x 1 ≤ k ≤ N d i n t r a ( k ) DVI=\frac{min_{1\leq i\ne j\leq N}d\left( \mu_i,\mu_j \right)}{max_{1\leq k \leq N} d_{intra}(k)} DVI=max1≤k≤Ndintra(k)min1≤i=j≤Nd(μi,μj)
其中,簇间距离指两个簇的质心之间的距离,对于维度为D的样本集有
d ( μ i , μ j ) = ∑ d = 1 D ( μ i ( d ) − μ j ( d ) ) 2 d\left( \mu_i,\mu_j \right)=\sqrt{\sum_{d=1}^{D}{\left( \mu_{i}^{(d)}-\mu_{j}^{(d)} \right)^2}} d(μi,μj)=d=1∑D(μi(d)−μj(d))2
簇内距离是簇内各样本到质心的平均距离,对于一个簇S,若质心为c,则它的簇内距离表达式为
d i n t r a = 1 ∣ S ∣ ∑ s = 1 ∣ S ∣ d ( x s , c ) d_{intra}=\frac{1}{|S|}\sum_{s=1}^{|S|}{d\left( x_s,c \right)} dintra=∣S∣1s=1∑∣S∣d(xs,c)
因簇间距离越大、簇内距离越小时聚类效果越好,所以邓恩指数越大,性能越好。
End.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。