1、前言
聚类事针对给定的样本,依据他们的特征和相似度或距离,将其归并到若干个类或簇的数据分析问题。聚类属于无监督学习。
2、聚类的基本概念
2.1相似度或距离
聚类的核心概念是相似度或距离。
①闵可夫斯基距离
距离越大,相似度越小,距离越小,相似度越大。
d
i
j
=
(
∑
k
=
1
m
∣
x
k
i
−
x
k
j
∣
p
)
1
/
p
d_{ij}=(\sum_{k=1}^m{|x_{ki}-x_{kj}|^p})^{1/p}
dij=(k=1∑m∣xki−xkj∣p)1/p
当p=2时,称作欧氏距离
d
i
j
=
(
∑
k
=
1
m
∣
x
k
i
−
x
k
j
∣
2
)
1
/
2
d_{ij}=(\sum_{k=1}^m{|x_{ki}-x_{kj}|^2})^{1/2}
dij=(k=1∑m∣xki−xkj∣2)1/2
当p=1时,称作曼哈顿距离
d
i
j
=
(
∑
k
=
1
m
∣
x
k
i
−
x
k
j
∣
)
d_{ij}=(\sum_{k=1}^m{|x_{ki}-x_{kj}|})
dij=(k=1∑m∣xki−xkj∣)
②马哈拉诺比斯距离
简称马氏距离,考虑各个分量之间的相关性并与各个分量的尺度无关。距离越大,相似度越小,距离越小,相似度越大。
d
i
j
=
[
(
x
i
−
x
j
)
T
S
−
1
(
x
i
−
x
j
)
]
1
/
2
d_{ij}=[(x_i-x_j)^TS^{-1}(x_i-x_j)]^{1/2}
dij=[(xi−xj)TS−1(xi−xj)]1/2
当S为单位矩阵时,马氏距离就是欧氏距离
③相关系数
相关系数的绝对值越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
r
i
j
=
∑
k
=
1
m
(
x
k
i
−
x
i
)
(
x
k
j
−
x
j
)
[
∑
k
=
1
m
(
x
k
i
−
x
i
)
2
∑
k
=
1
m
(
x
k
j
−
x
j
)
2
]
1
/
2
r_{ij}=\frac{\sum_{k=1}^m{(x_{ki}-x_i)(x_{kj}-x_j)}}{[\sum_{k=1}^m(x_{ki}-x_i)^2\sum_{k=1}^m(x_{kj}-x_j)^2]^{1/2}}
rij=[∑k=1m(xki−xi)2∑k=1m(xkj−xj)2]1/2∑k=1m(xki−xi)(xkj−xj)
其中
x
i
=
1
m
∑
k
=
1
m
x
k
i
,
x
j
=
1
m
∑
k
=
1
m
x
k
j
x_i=\frac{1}{m}\sum_{k=1}^m{x_{ki}},x_j=\frac{1}{m}\sum_{k=1}^m{x_{kj}}
xi=m1k=1∑mxki,xj=m1k=1∑mxkj
④夹角余弦
夹角余弦越接近于1,表示样本越相近;越接近0,表示样本越不相似。
s
i
j
=
∑
k
=
1
m
x
k
i
x
k
j
[
∑
k
=
1
m
x
k
i
2
∑
k
=
1
m
x
k
j
2
]
1
/
2
s_{ij}=\frac{\sum_{k=1}^m{x_{ki}x_{kj}}}{[\sum_{k=1}^m{x_{ki}^2\sum_{k=1}^m{x_{kj}^2}}]^{1/2}}
sij=[∑k=1mxki2∑k=1mxkj2]1/2∑k=1mxkixkj
不同相似度度量得到的结果并不一定一致。
2.2类或簇
通过聚类得到的类或簇,本质是样本的子集。如果一个聚类方法假定一个样本只能属于一个类,或类的交集为空集,那么该方法称为硬聚类方法。否则称为软聚类。
设T为给定的正数,若集合G中任意两个样本xi,xj有
d
i
j
<
=
T
d_{ij}<=T
dij<=T则称G为一个类或簇。
类的常用特征有下面三种
①类的均值xG,又称为类的中心
x
G
=
1
n
G
∑
i
=
1
n
G
x
i
x_G=\frac{1}{n_G}\sum_{i=1}^{n_G}{x_i}
xG=nG1i=1∑nGxi
分母是类的样本个数。
②类的直径DG
类的直径是类中任意两个样本之间的最大距离
D
G
=
m
a
x
d
i
j
D_G=maxd_{ij}
DG=maxdij
③类的样本散布矩阵AG,样本协方差矩阵SG
A
G
=
∑
i
=
1
n
G
(
x
i
−
x
G
)
(
x
i
−
x
G
)
T
A_G=\sum_{i=1}^{n_G}{(x_i-x_G)(x_i-x_G)^T}
AG=i=1∑nG(xi−xG)(xi−xG)T
S
G
=
1
m
−
1
A
G
S_G=\frac{1}{m-1}A_G
SG=m−11AG
其中m是样本的维数。
2.3类与类之间的距离
①最短距离或者单连接
定义为两类样本之间的最短距离
②最长距离或完全连接
定义为两类样本间最长的距离
③中心距离
定义为两类中心点之间的距离
④平均距离
定义为两类任意两个样本之间的距离的平均值
3、层次聚类
层次聚类有聚合或自下而上聚类、分裂或自上而下聚类两种方法。
层次聚类属于硬聚类。
预先确定三要素:
(1)距离或相似度
(2)合并规则
(3)停止条件
算法:
输入:n个样本组成的样本集合及样本之间的距离
输出:对样本集合的一个层次化聚类
(1)计算n个样本两两之间的欧氏距离记作矩阵D
(2)构造n个类,每个类包含一个样本
(3)合并类间距离最小的两个类,其中最短距离为类间距离,构建一个新类。
(4)计算新类与当前类之间的距离。若类为1,终止计算,否则回到3
时间复杂度为O(n^3m),m是样本维数,n是样本个数。
4、K均值聚类
K均值聚类是基于样本集合划分的聚类算法。属于硬聚类。
模型:K均值聚类的模型是一个从样本到类的函数。
策略:通过损失函数最小化划分。
采用欧氏距离平方作为样本之间的距离,定义样本与所属类中心之间的距离总和为损失函数
W
(
C
)
=
∑
l
=
1
k
∑
C
(
i
)
=
l
∣
∣
x
i
−
x
l
∣
∣
2
W(C)=\sum_{l=1}^k\sum_{C(i)=l}{||x_i-x_l||^2}
W(C)=l=1∑kC(i)=l∑∣∣xi−xl∣∣2
算法:
输入:n个样本集合X
输出:样本集合聚类C
(1)初始化。随机选择k个样本点作为初始聚类中心。
(2)对样本进行聚类,计算每个样本到类中心距离,指派到与其距离最近的中心类中
(3)计算新的类中心
(4)若收敛或者符合条件,停止。否则返回(2)
算法特性:
收敛性:不能保证收敛到全局最优,出市中心的选择会直接影响聚类结果。