聚类
聚类,就是将样本划分为若干子集的过程,这些子集一般是不相交的。
分类
聚类方法可大致分为原型聚类、密度聚类、层次聚类。
- 原型聚类:原型聚类是指聚类结构能通过一组原型刻画,原型是指样本空间中具有代表性的点。通常情况下,算法先对原型进行初始化,然后对原型进行迭代更新求解。
- 密度聚类:从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终结果。它可以在有噪音的数据中发现各种形状和各种大小的簇。
- 层次聚类:从不同层次对数据集进行划分,从而形成树形聚类结构。数据集的划分可采用“自底向上”或“自顶向下”的方式
Kmeans
kmeans,是原型聚类的一种,反应的是簇内样本围绕中心向量的紧密程度。
损失函数为最小化平方误差。
E
=
∑
i
=
1
k
∑
x
∈
C
i
∥
x
−
μ
i
∥
2
2
E= \sum_{i=1}^{k}\sum_{x\in C_{i}}\left \| x-\mu_{i} \right \|_{2}^{2}
E=i=1∑kx∈Ci∑∥x−μi∥22
过程:
- 设定K类,随机选取K个聚类中心。
- 计算样本点到聚类中心的位置。某样本到哪个聚类中心的距离最短则选择归为哪一类。
- 全部归类后计算每一类的新的均值,更新类中心。
- 循环2、3步,至到聚类中心不在变化,或变化很小,或迭代次数达到上限为止。
LVQ(Learning Vector Quantization)
LVQ,是原型聚类的一种,与其他聚类算法不同的是,LVQ聚类方法是有监督的学习方法,它需要有样本标签来辅助寻找聚类中心。
过程:
- 初始化一组聚类中心P ={p1,p2,p3…pq}
- 随机选取样本x
- 找出与x距离最近的聚类中心pi
- 若pi与x为同类,则更新pi靠近x,如式1;若pi与x为异类,则更新pi远离x,如式2。
p i , = p i + η ∗ ( x − p i ) p^{,}_{i}=p_{i}+\eta *\left ( x-p_{i} \right ) pi,=pi+η∗(x−pi)
p i , = p i − η ∗ ( x − p i ) p^{,}_{i}=p_{i}-\eta *\left ( x-p_{i} \right ) pi,=pi−η∗(x−pi)
高斯混合聚类
高斯混合聚类是原型聚类的一种,与前两种聚类的不同点是,它是用概率模型来表达聚类原型。
模型参数为:
- 混合系数 α \alpha α;
- 均值 μ \mu μ;
- 协方差矩阵 ∑ \sum ∑
后验概率计算公式
p
m
(
z
j
=
i
∣
x
j
)
=
P
(
z
j
=
i
∗
p
m
(
x
i
∣
z
j
=
i
)
)
p
m
(
x
j
)
=
α
∗
p
(
x
j
∣
μ
i
,
ϵ
i
)
∑
l
=
1
k
α
∗
p
(
x
j
∣
μ
l
,
ϵ
i
)
p_{m}(z_{j}=i| x_{j})=\frac{P(z_{j}=i*p_{m}(x_{i}|z_{j}=i))}{p_{m}(x_{j})}=\frac{\alpha *p(x_{j}|\mu_{i},\epsilon _{i})}{\sum_{l=1}^{k}\alpha *p(x_{j}|\mu_{l},\epsilon _{i}) }
pm(zj=i∣xj)=pm(xj)P(zj=i∗pm(xi∣zj=i))=∑l=1kα∗p(xj∣μl,ϵi)α∗p(xj∣μi,ϵi)
过程:
- 初始化高斯混合分布的模型参数k组;
- 某样本x,利用后验概率公式计算x与每组参数的后验概率
- 更新参数 (更新参数公式太长,偷个懒,有兴趣可疑百度)
- 循环2、3步,至到达到最大迭代次数或参数不再更新或参数更新很慢
- 最后计算测试样本的后验概率,最大后验概率为对应类型
DBSCAN
DBSCAN,是一种经典的密度聚类算法,它是基于一组邻域参数来刻画模型。DBSCAN所定义的簇为密度可达关系导出的最大的密度相连样本集合。
AGNES
AGNES,是一种自底向上的层次聚类方法。它先将数据集中的每个样本看作一个初始聚类簇,然后再运算的每一步找出距离最近的两个聚类簇进行合并,该过程不断重复,至到达到预设的聚类簇数为止。
DIANA
参考地址
DIANA,是一种自顶向下的聚类方式。首先将所有的对象初始化到一个簇中,然后根据一些原则(比如最邻近的最大欧式距离),将该簇分类。直到到达用户指定的簇数目或者两个簇之间的距离超过了某个阈值。
各聚类方法的相同点与不同点
- Kmeans与LVQ的相同点是都需要指定聚类个数
- Kmeans可看做是高斯混合模型,混合成分的方差均相等,每个样本仅包含一个混合成分的特例
性能度量
聚类性能度量可以通过外部指标和内部指标两个角度
外部指标
用来评定每个类的聚类结果
- a=|SS|, SS={ ( x i , x j ) (x_{i},x_{j}) (xi,xj)| λ i = λ j , λ i ∗ = λ j ∗ , i < j \lambda_{i}=\lambda_{j},\lambda^{*}_{i}=\lambda^{*}_{j},i<j λi=λj,λi∗=λj∗,i<j}
- b=|SD|, SD= ( x i , x j ) (x_{i},x_{j}) (xi,xj)| λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j \lambda_{i}=\lambda_{j},\lambda^{*}_{i}\neq\lambda^{*}_{j},i<j λi=λj,λi∗̸=λj∗,i<j}
- c=|DS|, DS= { ( x i , x j ) (x_{i},x_{j}) (xi,xj)| λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j \lambda_{i}\neq\lambda_{j},\lambda^{*}_{i}=\lambda^{*}_{j},i<j λi̸=λj,λi∗=λj∗,i<j}
- d=|DD|, DD={ ( x i , x j ) (x_{i},x_{j}) (xi,xj)| λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j \lambda_{i}\neq\lambda_{j},\lambda^{*}_{i}\neq\lambda^{*}_{j},i<j λi̸=λj,λi∗̸=λj∗,i<j}
SS,表示的是在聚类结果中属于相同簇,在参考模型中也属于相同簇的样本对
……
-
Jaccard系数(JC系数)
J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca -
FM指数(FMI)
F M = a a + b ∗ a a + c FM=\sqrt{\frac{a}{a+b}*\frac{a}{a+c}} FM=a+ba∗a+ca -
Rand指数
R I = 2 ( a + d ) m ( m − 1 ) RI=\frac{2(a+d)}{m(m-1)} RI=m(m−1)2(a+d)
结果越大越好
内部指标
- 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<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 ) = m a x 1 ≤ i < j ≤ < ∣ C ∣ diam(C)=max_{1\leq i<j\leq<|C|} diam(C)=max1≤i<j≤<∣C∣
- d m i n ( C i , C j ) = m i n x i ∈ C i , x j ∈ C j d_{min}(C_{i},C_{j})=min_{x_{i} \in C_{i},x_{j} \in C_{j}} dmin(Ci,Cj)=minxi∈Ci,xj∈Cj
- d c e m ( C i , C j ) = d i s t ( μ i , μ j ) d_{cem}(C_{i},C_{j})=dist(\mu_{i} ,\mu_{j}) dcem(Ci,Cj)=dist(μi,μj)
以上四个,分别代表簇内样本间的平均距离;簇内样本间的最远距离;两簇间的最小距离;两簇的中心距离
- DB系数 值越小越好
D B I = 1 k ∑ i = 1 k m a x j ≠ i ( a v g ( C i ) + a v g ( C j ) d c e n ( μ i , μ j ) ) DBI=\frac{1}{k}\sum_{i=1}^{k}max_{j\neq i}(\frac{avg(C_{i})+avg(C_{j})}{d_{cen}(\mu_{i},\mu{j})}) DBI=k1i=1∑kmaxj̸=i(dcen(μi,μj)avg(Ci)+avg(Cj)) - Dunn指数(DI) 值越大越好
D I = m i n 1 ≤ i ≤ k { m i n j ≠ i ( d m i n ( C i , C j ) m a x 1 ≤ l ≤ k d i a m ( C l ) ) } DI=min_{1\leq i\leq k}\left \{ min_{j\neq i}(\frac{d_{min}(C_{i},C_{j})}{max_{1\leq l\leq k}diam(C_{l})})\right \} DI=min1≤i≤k{minj̸=i(max1≤l≤kdiam(Cl)dmin(Ci,Cj))}
距离计算
对于样本距离的计算可以分为对连续特征距离的计算和对离散特征距离的计算
连续特征距离
- Minkowski 距离
- 欧式距离(Minkowski 距离,p=2)
- 曼哈顿距离(Minkowski 距离,p=1)
离散特征距离计算
VDM距离
当样本向量中即有类别型也有数值型时,可以将连续特征距离与离散特征距离联合使用来计算两个样本的距离。