参考资料 《机器学习》——周志华
1. 聚类任务
(1)目的 聚类试图将样本划分为若干通常不相交的子集。
(2)符号描述
- 假定样本集
D
=
{
x
1
,
x
2
,
?
?
,
x
m
}
D=\{x_1,x_2,\cdots,x_m\}
D={x1?,x2?,?,xm?}包含m个样本。
- 每个样本
x
i
=
{
x
i
1
,
x
i
,
2
,
?
?
,
x
i
,
n
}
x_i=\{x_{i1},x_{i,2},\cdots,x_{i,n}\}
xi?={xi1?,xi,2?,?,xi,n?}是一个n维特征向量。
- 样本被划分为k个不相交的簇
{
C
l
∣
l
=
1
,
2
,
?
?
,
k
}
\{C_l|l=1,2,\cdots,k\}
{Cl?∣l=1,2,?,k}。我们用
λ
j
∈
{
1
,
2
,
?
?
,
k
}
\lambda_j \in \{1,2,\cdots,k\}
λj?∈{1,2,?,k}表示样本
x
j
x_j
xj?的簇标记。
因此:
x
j
∈
C
λ
j
x_j \in C_{\lambda_j}
xj?∈Cλj?? - 聚类结果可以用m个元素的簇标记向量
λ
=
{
λ
1
,
λ
2
,
?
?
,
λ
m
}
\lambda = \{\lambda_1,\lambda_2,\cdots,\lambda_m\}
λ={λ1?,λ2?,?,λm?}表示
2. 性能度量
(1)目的
- 正如其名,性能度量能够评估聚类效果的好坏。簇内相似度高、簇间相似度低。
- 可以将使用的性能度量作为聚类过程的优化目标。
根据是否需要参考模型,可以将指标分为外部指标(external index)和内部指标(internal index)。
2.1 外部指标
标准: 准确率(贴合情况)
对数据集
D
=
{
x
1
,
x
2
,
?
?
,
x
m
}
D=\{x_1,x_2,\cdots,x_m\}
D={x1?,x2?,?,xm?}通过聚类给回的簇划分为
C
=
{
C
1
,
C
2
,
?
?
,
C
k
}
C=\{C_1,C_2,\cdots,C_k\}
C={C1?,C2?,?,Ck?},参考模型给出的簇划分为
C
?
=
{
C
1
?
,
C
2
?
,
?
?
,
C
s
?
}
C^*=\{C^*_1,C^*_2,\cdots,C^*_s\}
C?={C1??,C2??,?,Cs??}。令
λ
,
λ
?
\lambda,\lambda^*
λ,λ?为对应的样本簇标记向量。 理解:
- a 和 d 表示满足两个样本在
C
C
C获得的簇标签相同(不相同),在
C
?
C^*
C?获得的簇标签也相同(不相同)的数量。
- b 和 c 表示满足两个样本在
C
C
C获得的簇标签相同(不相同),在
C
?
C^*
C?获得的簇标签不相同(相同)的数量。
-
a
+
b
+
c
+
d
=
C
2
m
=
m
(
m
?
1
)
2
a+b+c+d=C_2^m=\frac{m(m-1)}{2}
a+b+c+d=C2m?=2m(m?1)?
(1)Jaccard系数
J
C
=
a
a
+
b
+
c
JC= \frac{a}{a+b+c}
JC=a+b+ca?
(2)FM指数
F
M
I
=
a
a
+
b
×
a
a
+
c
FMI=\sqrt{\frac{a}{a+b} \times \frac{a}{a+c}}
FMI=a+ba?×a+ca?
?
(3)Rand指数
R
I
=
2
(
a
+
d
)
m
(
m
?
1
)
RI=\frac{2(a+d)}{m(m-1)}
RI=m(m?1)2(a+d)?
- 上述三种指数可以表示在
C
,
C
?
C,C^*
C,C?均划分为相同簇的样本对的数量的总量占比。
- 取值范围为
[
0
,
1
]
[0,1]
[0,1],值越大越好。值越大表示聚类越贴合实际情况,划分正确率越高。
2.2 内部指标
标准: 簇内相似度高、簇间相似度低 定义四个簇划分指标,再利用指标度量内部指标。
-
簇内样本的平均距离
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 \leq j \leq |C|}dist(x_i,x_j)
avg(C)=∣C∣(∣C?1∣)2?1≤i≤j≤∣C∣∑?dist(xi?,xj?) -
簇内样本的最远距离
d
i
a
m
(
C
)
=
max
?
1
≤
i
≤
j
≤
∣
C
∣
d
i
s
t
(
x
i
,
x
j
)
diam(C) = \max_{1 \leq i \leq j \leq |C|} dist(x_i,x_j)
diam(C)=1≤i≤j≤∣C∣max?dist(xi?,xj?) -
簇间样本的最短距离
d
m
i
n
(
C
i
,
C
j
)
=
min
?
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?)=xi?∈Ci?,xj?∈Cj?min?dist(xi?,xj?) -
簇间中心点的距离
d
c
e
n
(
C
i
,
C
j
)
=
d
i
s
t
(
μ
i
,
μ
j
)
d_{cen}(C_i,C_j) = dist(\mu_i,\mu_j)
dcen?(Ci?,Cj?)=dist(μi?,μj?)
(1)DB指数(DBI)
D
B
I
=
1
k
∑
i
=
1
k
max
?
j
≠
i
a
v
g
(
C
i
)
+
a
v
g
(
C
j
)
d
c
e
n
(
C
i
,
C
j
)
DBI=\frac{1}{k} \sum_{i=1}^k \max_{j \neq i} \frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)}
DBI=k1?i=1∑k?j?=imax?dcen?(Ci?,Cj?)avg(Ci?)+avg(Cj?)?
(2)Dunn指数(DI)
D
I
=
min
?
1
≤
i
≤
k
{
min
?
j
≠
i
(
d
m
i
n
(
C
i
,
C
j
)
max
?
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=1≤i≤kmin?{j?=imin?(max1≤l≤k?diam(Cl?)dmin?(Ci?,Cj?)?)}
3. 距离计算
我们通过距离来定义相似度度量。 (1)基本性质
3.1 有序属性
举例:{1, 2, 3}中1与2比1与3接近。可以根据次序进行距离度量 (1)闵可夫斯基距离
-
当P=1时,变成曼哈顿距离
d
i
s
t
(
x
i
,
x
j
)
=
∑
u
=
1
n
∣
x
i
u
?
x
j
u
∣
dist(x_i,x_j) = \sum_{u=1}^n |x_{iu}-x_{ju}|
dist(xi?,xj?)=u=1∑n?∣xiu??xju?∣ -
当P=2时,变成欧氏距离
d
i
s
t
(
x
i
,
x
j
)
=
∑
u
=
1
n
∣
x
i
u
?
x
j
u
∣
2
dist(x_i,x_j) =\sqrt{ \sum_{u=1}^n |x_{iu}-x_{ju}|^2}
dist(xi?,xj?)=u=1∑n?∣xiu??xju?∣2
?
3.2 无序属性
举例:{飞机,火车,轮船}中没办法按照次序进行距离度量。 (1)VDM 令
m
u
,
a
m_{u,a}
mu,a?表示属性u上取值为a的样本数,
m
u
,
a
,
i
m_{u,a,i}
mu,a,i?表示在第i个簇中属性u上取值为a的样本数。则a,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
∣
p
VDM_p(a,b) = \sum_{i=1}^k |\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}|^p
VDMp?(a,b)=i=1∑k?∣mu,a?mu,a,i???mu,b?mu,b,i??∣p
理解:无序属性距离的计算需要提前知道簇划分吗?
3.3 混合属性
假设前
n
c
n_c
nc?个为有序属性,后面为无需属性。
4. 原型聚类
4.1 k-means
(1)优化目标 解决上述目标为NP难问题,因此通过迭代优化近似求解。
(2)算法
- 随机选择k个样本作为中心
- 根据样本与选择中心点的距离,划分样本的类别
- 计算簇内均值向量,当向量改变时将新的均值向量作为新簇的中心。当不在更新或到达最大轮数或最小调整阈值时退出循环。
理解: 通过最小化簇内均值选择聚合中心位置。
4.2 学习向量量化(LVQ)
- 需要预知标签类型,用监督信息辅助聚类。
- 原型向量、拉近远离
(1)优化目标 对于任意样本x,它将被划入距离最近的原形向量所代表的簇中。需要使标记相同的靠拢,标记不同的远离。
p
′
=
p
i
?
+
η
×
(
x
j
?
p
i
?
)
?
靠
近
p
′
=
p
i
?
?
η
×
(
x
j
?
p
i
?
)
?
远
离
p
i
?
=
p
′
p'=p_{i^*} + \eta \times (x_j-p_{i^*}) \ 靠近 \\ p'=p_{i^*} - \eta \times (x_j-p_{i^*}) \ 远离 \\ p_{i^*} = p'
p′=pi??+η×(xj??pi??)?靠近p′=pi???η×(xj??pi??)?远离pi??=p′
(2)算法
理解: 使原型向量靠拢相同标记样本,原理不同标记样本,实现聚类。
4.3 密度聚类(DBSCAN)
此类算法假设聚类结构能通过样本分布的紧密程度确定。 (1)定义 DBSCAN基于一组邻域参数
(
?
,
M
i
n
P
t
s
)
(\epsilon,MinPts)
(?,MinPts)刻画样本分布的紧密程度。给定数据集定义一下概念:
(2)算法
- 任选一个核心对象作为种子
- 以该核心对象作为出发点,找出其密度可达的样本生成聚类簇。更新核心对象和未访问对象。
- 循环1、2步骤知道所有核心对象都被访问。
4.4 层次聚类(AGNES)
AGNES是一种自底向上聚合策略的层次聚类算法。它的核心思想是找到距离最近的两个簇合并,知道达到预设的聚类数目。 (1)类别 根据如何计算两个簇间的距离(集合间的距离),可以划分为三种类别:
- 单链接(single-linkage):采用最小距离
- 全链接(complete-linkage):采用最大距离
- 均链接(average-linkage):采用平均距离
(2)算法
- 将每个样本初始化为一个簇
- 计算簇间距
M
k
×
k
M_{k \times k}
Mk×k?
- 选择距离最近的两个簇合并为新的簇,并更新样本标签和簇间距。
- 循环2、3步骤直到达到预设的聚类数目。
4.5 高斯混合聚类
先验知识: 贝叶斯分类,后续更新。
|