聚类算法的性能度量
聚类算法的性能度量
聚类算法就是根据数据中样本与样本之间的距离或相似度,将样本划分为若干组/类/簇,其划分的原则:簇内样本相似、簇间样本不相似,聚类的结果是产生一个簇的集合。
其划分方式主要分为两种,
- 嵌套类型
- 非嵌套类型
其中簇往往分为三种情况
- 基于中心的簇:簇内的点和其“中心”较为相近(或相似),和其他簇的“中心”较远,这样的一组样本形成的簇
- 基于邻接的簇:相比其他任何簇的点,每个点都至少和所属簇的某一个点更近
- 基于密度的簇:簇是由高密度的区域形成的,簇之间是一些低密度的区域
簇的相似性与距离度量
若采用距离为度量
闵可夫斯基距离:
d
i
s
t
(
x
i
,
x
j
)
=
(
∑
d
=
1
D
∣
x
i
,
d
?
x
j
,
d
∣
p
)
1
/
p
dist(x^i,x^j)=\left(\sum_{d=1}^D|x_{i,d}-x_{j,d}|^p\right)^{1/p}
dist(xi,xj)=(∑d=1D?∣xi,d??xj,d?∣p)1/p
当
p
=
2
p=2
p=2时,为欧氏距离
:
d
i
s
t
(
x
i
,
x
j
)
=
∑
d
=
1
D
(
x
i
,
d
?
x
j
,
d
)
2
:dist(x^i,x^j)=\sqrt{\sum_{d=1}^D\left(x_{i,d}-x_{j,d}\right)^2}
:dist(xi,xj)=∑d=1D?(xi,d??xj,d?)2?
当
p
=
1
p=1
p=1时,为曼哈顿距离:
d
i
s
t
(
x
i
,
x
j
)
=
∑
d
=
1
D
∣
x
i
,
d
?
x
j
,
d
∣
dist(x^i,x^j)=\sum_{d=1}^D\left|x_{i,d}-x_{j,d}\right|
dist(xi,xj)=∑d=1D?∣xi,d??xj,d?∣
这类距离函数对特征的旋转和平移变换不敏感,对数值尺度敏感
若采用余弦相似度量
两变量
x
i
,
x
j
x^i,x^j
xi,xj,看作D维空间的两个向量,这两个向量间的夹角余弦可用下式进行计算
s
(
x
i
,
x
j
)
=
∑
d
=
1
D
x
i
,
d
x
j
,
d
∑
d
=
1
D
x
i
,
d
2
∑
d
=
1
D
x
j
,
d
2
=
(
x
i
)
T
x
j
∥
x
i
∥
∥
x
j
∥
s(x^i,x^j)=\frac{\sum_{d=1}^Dx_{i,d}x_{j,d}}{\sqrt{\sum_{d=1}^Dx_{i,d}^2}\sqrt{\sum_{d=1}^Dx_{j,d}^2}}=\frac{(x^i)^Tx^j}{\|x^i\|\|x^j\|}
s(xi,xj)=∑d=1D?xi,d2??∑d=1D?xj,d2??∑d=1D?xi,d?xj,d??=∥xi∥∥xj∥(xi)Txj?
若采用相关系数
r
(
x
i
,
x
j
)
=
c
o
v
(
x
i
,
x
j
)
σ
x
i
σ
x
j
=
E
[
(
x
i
?
μ
i
)
(
x
j
?
μ
j
)
]
σ
x
i
σ
x
j
=
∑
d
=
1
D
(
x
i
,
d
?
μ
i
,
d
)
(
x
j
,
d
?
μ
j
,
d
)
∑
d
=
1
D
(
x
i
,
d
?
μ
i
,
d
)
2
∑
d
=
1
D
(
x
j
,
d
?
μ
j
,
d
)
2
\begin{gathered} r(x^i,x^j)=\frac{cov(x^i,x^j)}{\sigma_{x_i}\sigma_{x_j}}=\frac{\mathbb{E}[(x^i-\mu^i)(x^j-\mu^j)]}{\sigma_{x_i}\sigma_{x_j}} \\ \begin{aligned}=\frac{\sum_{d=1}^D(x_{i,d}-\mu_{i,d})(x_{j,d}-\mu_{j,d})}{\sqrt{\sum_{d=1}^D\left(x_{i,d}-\mu_{i,d}\right)^2\sum_{d=1}^D\left(x_{j,d}-\mu_{j,d}\right)^2}}\end{aligned} \end{gathered}
r(xi,xj)=σxi??σxj??cov(xi,xj)?=σxi??σxj??E[(xi?μi)(xj?μj)]?=∑d=1D?(xi,d??μi,d?)2∑d=1D?(xj,d??μj,d?)2?∑d=1D?(xi,d??μi,d?)(xj,d??μj,d?)???
当数据采用中心化处理后
μ
i
=
μ
j
=
0
\mu_i=\mu_j=0
μi?=μj?=0,相关系数等于余弦相似度
对聚类算法的性能评价指标
参考模型
设存在数据集 D = { x 1 , x 2 , . . . x N } D=\{x^1,x^2,...x^N\} D={x1,x2,...xN},聚类结果 : C = { C 1 , C 2 , . . . C K } :C=\{\mathcal{C}_1,\mathcal{C}_2,...\mathcal{C}_K\} :C={C1?,C2?,...CK?},其中 C k \mathcal{C}_k Ck?表示属于类别 k k k的样本的集合,其中参考模型的分类结果为 C ? = { C 1 ? , . . . , C K ? } \mathcal{C}^*=\{\mathcal{C}_1^*,...,\mathcal{C}_K^*\} C?={C1??,...,CK??}, λ \lambda λ 和 λ ? \lambda^* λ? 分别为 c c c和 c ? c^* c? 的标记向量
其中聚类结果有4种情况
a
=
{
(
x
i
,
x
j
)
∣
x
i
,
x
j
∈
C
k
;
x
i
,
x
j
∈
C
l
?
}
在两种聚类结果中,两个样本的所属的簇相同
d
=
{
(
x
i
,
x
j
)
∣
x
i
∈
C
k
1
,
x
j
∈
C
k
2
;
?
x
i
∈
C
l
1
?
,
x
j
∈
C
l
2
?
}
在两种聚类结果中,两个样本的所属的簇不同
b
=
{
(
x
i
,
x
j
)
∣
x
i
,
x
j
∈
C
k
;
?
x
i
∈
C
l
1
?
,
x
j
∈
C
l
2
?
}
c
=
{
(
x
i
,
x
j
)
∣
x
i
∈
C
k
1
,
x
j
∈
C
k
2
;
?
x
i
,
x
j
∈
C
l
?
}
\begin{aligned} a=&\begin{Bmatrix}(x^i,x^j)|x^i,x^j\in\mathcal{C}_k;&x^i,x^j\in\mathcal{C}_l^*\end{Bmatrix}\\ &\text{在两种聚类结果中,两个样本的所属的簇相同}\\ d=&\{(x^i,x^j)|x^i\in\mathcal{C}_{k1},x^j\in\mathcal{C}_{k2};\:x^i\in\mathcal{C}_{l1}^*,x^j\in\mathcal{C}_{l2}^*\}\\ &\text{在两种聚类结果中,两个样本的所属的簇不同}\\ b=&\big\{(x^i,x^j)|x^i,x^j\in\mathcal{C}_k;\:x^i\in C_{l1}^*,x^j\in\mathcal{C}_{l2}^*\big\}\\ c=&\big\{(x^i,x^j)|x^i\in\mathcal{C}_{k1},x^j\in\mathcal{C}_{k2};\:x^i,x^j\in\mathcal{C}_l^*\big\} \end{aligned}
a=d=b=c=?{(xi,xj)∣xi,xj∈Ck?;?xi,xj∈Cl???}在两种聚类结果中,两个样本的所属的簇相同{(xi,xj)∣xi∈Ck1?,xj∈Ck2?;xi∈Cl1??,xj∈Cl2??}在两种聚类结果中,两个样本的所属的簇不同{(xi,xj)∣xi,xj∈Ck?;xi∈Cl1??,xj∈Cl2??}{(xi,xj)∣xi∈Ck1?,xj∈Ck2?;xi,xj∈Cl??}?
每个样本对
(
x
i
,
x
j
)
(
i
<
j
)
(x_i,x_j)(i<j)
(xi?,xj?)(i<j) 仅能出现在一个集合中,因此有
a
+
b
+
c
+
d
=
m
(
m
?
1
)
/
2
a+b+c+d=m(m-1)/2
a+b+c+d=m(m?1)/2 成立
Jaccard 系数(Jaccard Coefficient, 简称 JC)
JC
=
a
a
+
b
+
c
\text{JC}=\frac a{a+b+c}
JC=a+b+ca?
FM 指数(Fowlkes and Mallows Index, 简称 FMI)
F
M
I
=
a
a
+
b
?
a
a
+
c
\mathrm{FMI}=\sqrt{\frac a{a+b}\cdot\frac a{a+c}}
FMI=a+ba??a+ca??
Rand 指数(Rand Index, 简称 RI$) $
R
I
=
2
(
a
+
d
)
N
(
N
?
1
)
\mathrm{RI}=\frac{2(a+d)}{N(N-1)}
RI=N(N?1)2(a+d)?
上述性能度量的结果值均在 [0,1] 区间,值越大越好
无参考模型
其要求簇内相似度越大越好,簇间相似度越小越好
平均距离:
a
v
g
(
C
k
)
=
1
∣
C
k
∣
(
∣
C
k
∣
?
1
)
∑
x
i
,
x
j
∈
C
k
d
i
s
t
(
x
i
,
x
j
)
avg(\mathcal{C}_k)=\frac1{|\mathcal{C}_k|(|\mathcal{C}_k|-1)}\sum_{x^i,x^j\in\mathcal{C}_k}dist(x^i,x^j)
avg(Ck?)=∣Ck?∣(∣Ck?∣?1)1?xi,xj∈Ck?∑?dist(xi,xj)
最大距离:
d
i
a
m
(
C
k
)
=
max
?
x
i
,
x
j
∈
C
k
d
i
s
t
(
x
i
,
x
j
)
diam\left(\mathcal{C}_k\right)=\max_{x^i,x^j\in\mathcal{C}_k}dist(\boldsymbol{x}^i,\boldsymbol{x}^j)
diam(Ck?)=xi,xj∈Ck?max?dist(xi,xj)
簇的半径:
d
i
a
m
(
C
k
)
=
1
∣
C
k
∣
∑
x
i
∈
C
k
(
d
i
s
t
(
x
i
,
μ
k
)
)
2
diam(\mathcal{C}_k)=\sqrt{\frac1{|C_k|}\sum_{x^i\in\mathcal{C}_k}(dist(x^i,\mu^k))^2}
diam(Ck?)=∣Ck?∣1?xi∈Ck?∑?(dist(xi,μk))2?
其中
μ
k
=
1
∣
C
k
∣
∑
x
i
∈
C
k
x
i
\mu^{k}=\frac{1}{|\mathcal{C}_{k}|}\sum_{x^{i}\in\mathcal{C}_{k}}\boldsymbol{x}^{i}
μk=∣Ck?∣1?∑xi∈Ck??xi
最小距离:
d
m
i
n
(
C
k
,
C
l
)
=
min
?
x
i
∈
C
k
,
x
j
∈
C
l
d
i
s
t
(
x
i
,
x
j
)
d_{min}(\mathcal{C}_k,\mathcal{C}_l)=\min_{x^i\in\mathcal{C}_k,x^j\in\mathcal{C}_l}dist(x^i,x^j)
dmin?(Ck?,Cl?)=xi∈Ck?,xj∈Cl?min?dist(xi,xj)
类中心的距离:
d
c
e
n
(
C
k
,
C
l
)
=
d
i
s
t
(
μ
k
,
μ
l
)
,
d_{cen}(\mathcal{C}_k,\mathcal{C}_l)=dist(\mathbf{\mu}^k,\mathbf{\mu}^l),
dcen?(Ck?,Cl?)=dist(μk,μl),
DB指数(DBI)【簇内距离/簇间距离】:
D
B
I
=
1
K
∑
k
=
1
K
max
?
k
≠
l
arg
?
(
C
k
)
+
a
v
g
(
C
l
)
d
c
e
n
(
C
k
,
C
l
)
DBI=\frac1K\sum_{k=1}^K\max_{k\neq l}\frac{\arg(\mathcal{C}_k)+avg(\mathcal{C}_l)}{d_{cen}(\mathcal{C}_k,\mathcal{C}_l)}
DBI=K1?k=1∑K?k=lmax?dcen?(Ck?,Cl?)arg(Ck?)+avg(Cl?)?
其中DBI越小越好,即簇越小越远
Dunn 指数(DI)【最小簇间距离/最大簇的半径】:
D
I
=
min
?
1
≤
k
<
l
≤
K
d
m
i
n
(
C
k
,
C
l
)
max
?
1
≤
k
≤
K
d
i
a
m
(
C
k
)
DI=\min_{1\leq k<l\leq K}\frac{d_{min}(\mathcal{C}_k,\mathcal{C}_l)}{\max_{1\leq k\leq K}diam(\mathcal{C}_k)}
DI=1≤k<l≤Kmin?max1≤k≤K?diam(Ck?)dmin?(Ck?,Cl?)?
其中DI越大越好
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!