9.1聚类任务
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为"簇"。
假定样本集 D = x 1 , x 2 , . . . x m D={x_1,x_2,...x_m} D=x1,x2,...xm包含 m m m个无标记样本
每个样本 x i = ( x i 1 , x i 2 , . . . x i n ) x_i=(x_{i1},x_{i2},...x_{in}) xi=(xi1,xi2,...xin)是一个 n n n维向量
聚类将样本集 D D D划分维 k k k个不相交的簇 { C l ∣ l = 1 , 2 , . . k } \{C_l|l=1,2,..k\} {Cl∣l=1,2,..k}
9.2性能度量
亦称聚类“有效性指标”(validity index)
聚类结果与“簇内相似度”高且“簇间相似度”低
性能度量大致两类
{
与“参考模型”比,“外部指标”
直接考虑结果,“内部指标”
性能度量大致两类 \begin{cases} 与“参考模型”比,“外部指标” &\\ 直接考虑结果,“内部指标” & \\ \end{cases}
性能度量大致两类{与“参考模型”比,“外部指标”直接考虑结果,“内部指标”
对数据集 D = { x 1 , x 2 , . . . x m } D=\{x_1,x_2,...x_m\} D={x1,x2,...xm}
聚类给出的簇划分 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck}
参考模型给的簇划分 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C k ∗ } C^*=\{C_1^*,C_2^*,...,C_k^*\} C∗={C1∗,C2∗,...,Ck∗}
同时令
λ
\lambda
λ与
λ
∗
\lambda^*
λ∗分布表示
C
C
C与
C
∗
C^*
C∗对应的簇标记向量
其中, 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)
聚类性能度量外部指标:
9.3距离计算
对函数 d i s t ( ⋅ , ⋅ ) dist(\cdot,\cdot) dist(⋅,⋅),若它是一个“距离度量”(distance measure),则需满足一些基本性质:
- 非负性: d i s t ( x i , x j ) ≥ 0 ; dist(x_i,x_j)\geq0; dist(xi,xj)≥0;
- 同一性: d i s t ( x i , x j ) = 0 ; dist(x_i,x_j)=0; dist(xi,xj)=0;当且仅当 x i = x j ; x_i=x_j; xi=xj;
- 对称性: 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(xi,xj)=dist(xj,xi);
- 直递性: 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)\leq{dist(x_i,x_k)+dist(x_k,x_j)} dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)
给定样本
x
i
=
(
x
i
1
;
x
i
2
;
.
.
.
;
x
i
n
)
x_i=(x_{i1};x_{i2};...;x_{in})
xi=(xi1;xi2;...;xin)与
x
j
=
(
x
j
1
;
x
j
2
;
.
.
.
;
x
j
n
)
x_j=(x_{j1};x_{j2};...;x_{jn})
xj=(xj1;xj2;...;xjn),最常用的是“闵可夫斯基距离”(Minkoski distance)
d
i
s
t
m
k
(
x
i
,
x
j
)
=
(
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
p
)
1
p
\begin{equation} dist_{mk}(x_i,x_j)=(\sum_{u=1}^n|x_{iu}-x_{ju}|^p)^{\frac{1}{p}} \tag{9.18} \end{equation}
distmk(xi,xj)=(u=1∑n∣xiu−xju∣p)p1(9.18)
对
p
≥
1
p\geq1
p≥1,式(9.18)满足上面所有基本性质
p
=
2
p=2
p=2时,“闵可夫斯基距离”是欧氏距离(Euclidean distance)
d
i
s
t
e
d
(
x
i
,
x
j
)
=
∣
∣
x
i
−
x
j
∣
∣
2
=
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
2
\begin{equation} dist_{ed}(x_i,x_j)=||x_i-x_j||_2=\sqrt{\sum_{u=1}^{n}|x_{iu}-x_{ju}|^2} \tag{9.19} \end{equation}
disted(xi,xj)=∣∣xi−xj∣∣2=u=1∑n∣xiu−xju∣2(9.19)
p
=
1
p=1
p=1时,“闵可夫斯基距离”是曼哈顿距离
d
i
s
t
m
a
n
(
x
i
,
x
j
)
=
∣
∣
x
i
−
x
j
∣
∣
1
=
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
\begin{equation} dist_{man}(x_i,x_j)=||x_i-x_j||_1=\sum_{u=1}^{n}|x_{iu}-x_{ju}| \tag{9.20} \end{equation}
distman(xi,xj)=∣∣xi−xj∣∣1=u=1∑n∣xiu−xju∣(9.20)
属性划分
{
“连续属性”
“离散属性”
属性划分 \begin{cases} “连续属性” &\\ “离散属性” & \\ \end{cases}
属性划分{“连续属性”“离散属性”
属性划分
{
“有序属性”
1
,
2
,
3
闵可夫斯基距离可用
“无序属性”
飞机,火车,轮胎
闵可夫斯基距离不可用
属性划分 \begin{cases} “有序属性” &1,2,3 &闵可夫斯基距离可用\\ “无序属性” & 飞机,火车,轮胎 &闵可夫斯基距离不可用\\ \end{cases}
属性划分{“有序属性”“无序属性”1,2,3飞机,火车,轮胎闵可夫斯基距离可用闵可夫斯基距离不可用
对无需属性采用VDM
令 m u , a m_{u,a} mu,a表示属性 u u u上取值为 a a a的样本数
m u , a , i m_{u,a,i} mu,a,i表示第 i i i个样本簇中在属性 u u u上取值为 a a a的样本数。
属性
u
u
u上两个离散值
a
a
a与
b
b
b之间的VDM距离为:
V
D
M
p
(
a
,
b
)
=
∑
i
=
1
k
∣
m
u
,
a
,
i
m
u
,
a
−
m
u
,
b
,
i
m
u
,
b
∣
\begin{equation} VDM_p(a,b)=\sum_{i=1}^k|\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}| \tag{9.21} \end{equation}
VDMp(a,b)=i=1∑k∣mu,amu,a,i−mu,bmu,b,i∣(9.21)
将闵可夫斯基距离和VDM结合即可处理混合属性
n
c
n_c
nc个有序属性,
n
−
n
c
n-n_c
n−nc个无序属性,则:
M
i
n
k
o
v
D
M
p
(
x
i
,
x
j
)
=
(
∑
u
=
1
n
c
∣
x
i
,
u
−
x
j
,
u
∣
p
+
∑
u
=
n
c
+
1
n
V
D
M
p
(
x
i
u
,
x
j
u
)
)
1
p
\begin{equation} MinkovDM_p(x_i,x_j)=(\sum_{u=1}^{n_c}|x_{i,u}-x_{j,u}|^p+\sum_{u=n_c+1}^nVDM_p(x_{iu},x_ju))^{\frac{1}{p}} \tag{9.22} \end{equation}
MinkovDMp(xi,xj)=(u=1∑nc∣xi,u−xj,u∣p+u=nc+1∑nVDMp(xiu,xju))p1(9.22)
样本权重不同,“加权距离”
加权闵可夫斯基距离:
d
i
s
t
w
m
k
(
x
i
,
x
j
)
=
(
w
i
⋅
∣
x
i
1
−
x
j
1
∣
p
+
.
.
.
+
w
n
⋅
∣
x
i
n
−
x
j
n
∣
p
)
1
p
\begin{equation} dist_{wmk}(x_i,x_j)=(w_i\cdot|x_{i1}-x_{j1}|^p+...+w_n\cdot|x_{in}-x_{jn}|^p)^{\frac{1}{p}} \tag{9.23} \end{equation}
distwmk(xi,xj)=(wi⋅∣xi1−xj1∣p+...+wn⋅∣xin−xjn∣p)p1(9.23)
其中,权重
w
i
≥
0
(
i
=
1
,
2
,
.
.
.
,
n
)
w_i\geq0(i=1,2,...,n)
wi≥0(i=1,2,...,n)表征不同属性的重要性,通常
∑
i
=
1
n
w
i
=
1
\sum_{i=1}^nw_i=1
∑i=1nwi=1
9.4原型聚类
”基于原型的聚类“,通过一组原型刻画。
9.4.1 k均值算法
样本集
D
=
{
x
1
,
x
2
,
.
.
.
x
m
}
D=\{x_1,x_2,...x_m\}
D={x1,x2,...xm},k-means算法针对聚类所得簇划分
C
=
{
C
1
,
C
2
,
.
.
.
C
k
}
C=\{C_1,C_2,...C_k\}
C={C1,C2,...Ck}最小化平方误差
E
=
∑
i
=
1
k
∑
x
∈
C
i
∣
∣
x
−
u
i
∣
∣
2
2
\begin{equation} E=\sum_{i=1}^k\sum_{x\in{C_{i}}}||x-u_i||_2^2 \tag{9.24} \end{equation}
E=i=1∑kx∈Ci∑∣∣x−ui∣∣22(9.24)
其中
E
E
E越小,内部相似度越高,
u
i
=
1
∣
C
i
∣
∑
x
∈
C
i
x
u_i=\frac{1}{|C_i|}\sum_{x\in{C_i}}x
ui=∣Ci∣1∑x∈Cix是簇
C
i
C_i
Ci的均值向量
这是一个NP问题,采用贪心策略,通过迭代优化近似求解
算法
- 加入簇数 k = 3 k=3 k=3,随机选 3 3 3个样本做为中心 u 1 , u 2 , u 3 u_1,u_2,u_3 u1,u2,u3
- 对每一个样本,考虑与
u
1
,
u
2
,
u
3
u_1,u_2,u_3
u1,u2,u3距离分出
C 1 = x 5 , x 6 , . . . C_1={x_5,x_6,...} C1=x5,x6,...
C 2 = x 1 , x 1 1 , . . . C_2={x_1,x_11,...} C2=x1,x11,...
C 1 = x 1 8 , x 1 9 , . . . C_1={x_18,x_19,...} C1=x18,x19,... - 对 C 1 , C 2 , C 3 C_1,C_2,C_3 C1,C2,C3分别求新的均值向量 u 1 1 , u 2 2 , u 3 3 u_1^1,u_2^2,u_3^3 u11,u22,u33,不断重复迭代,得到最终划分
9.4.2学习向量化(Learning Vector Quantization,LVQ)
假设样本有类别标记,学习过程利用样本的监督信息来辅助聚类
给定样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),...(x_m,y_m)\} D={(x1,y1),(x2,y2),...(xm,ym)}
LVQ关键在于如何更新原型向量
对样本
x
j
x_j
xj,若最近的原型向量
P
i
∗
P_{i^*}
Pi∗与
x
j
x_j
xj类别标记相同,则令
P
i
∗
P_{i^*}
Pi∗向
x
j
x_j
xj的方向靠拢,此时新原型向量为
类似的,若 P i ∗ P_{i^*} Pi∗与 x j x_j xj的类别标记不同,则更新后的原型向量与 x j x_j xj之间的距离增大为 ( 1 + η ) ⋅ ∣ ∣ P i ∗ − x j ∣ ∣ 2 (1+\eta)\cdot||P_{i^*}-x_j||_2 (1+η)⋅∣∣Pi∗−xj∣∣2,从而更远离 x j x_j xj
学得一组原型向量 { P 1 , P 2 , . . . P q } \{P_1,P_2,...P_q\} {P1,P2,...Pq}后,可实现对样本空间 χ \chi χ的簇划分。任意样本 χ \chi χ,划入最近簇中;
每个
P
i
∗
P_{i^*}
Pi∗定义了与之相关的区域
R
i
R_i
Ri。区域中样本与
P
i
P_i
Pi距离不大于其他原型向量
P
i
,
P_{i^,}
Pi,的距离:
R
i
=
{
x
∈
χ
∣
∣
∣
x
−
p
i
∣
∣
2
≤
∣
∣
x
−
p
i
,
∣
∣
2
,
i
′
≠
i
}
\begin{equation} R_i=\{x\in\chi| \quad||x-p_i||_2\leq||x-p_{i^,}||_2,i^{'}\neq{i}\} \tag{9.27} \end{equation}
Ri={x∈χ∣∣∣x−pi∣∣2≤∣∣x−pi,∣∣2,i′=i}(9.27)
形成了对样本空间
χ
\chi
χ的簇划分
{
R
1
,
R
2
,
.
.
.
R
q
}
\{R_1,R_2,...R_q\}
{R1,R2,...Rq}称为”Voronoi剖分“
9.4.3高斯混合聚类
高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型
对
n
n
n维样本空间
X
X
X中的随机向量
x
x
x,若
X
X
X服从高斯分布,概率密度函数维:
样本生成过程:
根据 α 1 , α 2 , . . . α k \alpha_1,\alpha_2,...\alpha_k α1,α2,...αk定义的先验分布选择高斯混合成分, α i \alpha_i αi为第 i i i个成分概率
根据概率密度进行采样,生成相应的样本
生成训练集 D = { x 1 , x 2 , . . . x m } D=\{x_1,x_2,...x_m\} D={x1,x2,...xm}
令随机变量
z
j
∈
{
1
,
2
,
.
.
k
}
z_j\in\{1,2,..k\}
zj∈{1,2,..k}表示生成样本
x
j
x_j
xj的高斯混合成分,其取值未知。显然,
z
j
z_j
zj的先验概率
P
(
z
j
=
i
)
P(z_j=i)
P(zj=i)对应
α
i
(
i
=
1
,
2
,
.
.
.
,
k
)
\alpha_i(i=1,2,...,k)
αi(i=1,2,...,k).根据贝叶斯定理,
z
j
z_j
zj的后验分布对应于
9.5密度聚类
DBSCAN是基于一组”邻域“参数 ( ξ , M i n P t s ) (\xi,MinPt_s) (ξ,MinPts)来刻画样本分布的紧密程度。给定数据集 D = { x 1 , x 2 . . . x m } D=\{x_1,x_2...x_m\} D={x1,x2...xm}
- ξ − \xi- ξ−邻域:对 x j ∈ D x_j\in{D} xj∈D,其 ξ \xi ξ邻域包含样本集 D D D中与 x j x_j xj的距离不大于 ξ \xi ξ的样本,即 N ξ ( x j ) = { x i ∈ D ∣ d i s t ( x i , x j ) ≤ ξ } N_{\xi}(x_j)=\{x_i\in{D}|dist(x_i,x_j)\leq\xi\} Nξ(xj)={xi∈D∣dist(xi,xj)≤ξ}
- 核心对象(core object) : 若 x j x_j xj的 ξ \xi ξ邻域至少包含 M i n P t s MinPt_s MinPts个样本,即 ∣ N ξ ( x j ) ∣ ≥ M i n P t s |N_{\xi}(x_j)|\ge{MinPt_s} ∣Nξ(xj)∣≥MinPts,则 x j x_j xj是一个核心对象
- 密度直达(directly density-reachable) :若 x j x_j xj位于 x i x_i xi的 ξ \xi ξ邻域中,且 x i x_i xi是核心对象。称 x j x_j xj由 x i x_i xi密度直达。
- 密度可达(density-reachable) :对 x i x_i xi与 x j x_j xj,若存在样本序列 p 1 , p 2 , . . . , p n , p_1,p_2,...,p_n, p1,p2,...,pn,其中 p 1 = x i , p n = x j p_1=x_i,p_n=x_j p1=xi,pn=xj且 p i + 1 p_{i+1} pi+1由 p i p_i pi密度直达,则称 x j x_j xj由 x i x_i xi密度可达;
- 密度相连(density-connected) :对 x i x_i xi与 x j x_j xj,若存在 x k x_k xk使得 x i x_i xi与 x j x_j xj均由 x k x_k xk密度可达,则称 x i x_i xi与 x j x_j xj密度相连。
DBSCAN的簇定义为:给定邻域参数
(
ξ
,
M
i
n
P
t
s
)
(\xi,MinPt_s)
(ξ,MinPts),簇
C
⊆
D
C\subseteq{D}
C⊆D是满足以下性质的非空样本子集:
9.6层次聚类
最小距离:
d
m
i
n
(
C
i
,
C
j
)
=
m
i
n
x
∈
C
i
,
z
∈
C
j
d
i
s
t
(
x
,
z
)
\begin{equation} d_{min}(C_i,C_j)=\underset{x\in C_i,z\in C_j}{min}dist(x,z) \tag{9.41} \end{equation}
dmin(Ci,Cj)=x∈Ci,z∈Cjmindist(x,z)(9.41)
最大距离:
d
m
a
x
(
C
i
,
C
j
)
=
m
a
x
x
∈
C
i
,
z
∈
C
j
d
i
s
t
(
x
,
z
)
\begin{equation} d_{max}(C_i,C_j)=\underset{x\in C_i,z\in C_j}{max}dist(x,z) \tag{9.42} \end{equation}
dmax(Ci,Cj)=x∈Ci,z∈Cjmaxdist(x,z)(9.42)
平均距离:
d
a
v
g
(
C
i
,
C
j
)
=
1
∣
C
i
∣
∣
C
j
∣
∑
x
∈
C
i
∑
x
∈
C
j
d
i
s
t
(
x
,
z
)
\begin{equation} d_{avg}(C_i,C_j)=\frac{1}{|C_i||C_j|}\sum_{x\in{C_i}}\sum_{x\in{C_j}}dist(x,z) \tag{9.43} \end{equation}
davg(Ci,Cj)=∣Ci∣∣Cj∣1x∈Ci∑x∈Cj∑dist(x,z)(9.43)