聚类方法主要是依据某种相似度判别标准,将给定的未标注的数据集依据相似度自动的将其划分为若干个类或簇中。聚类方法的目的是通过算法的聚类,对未标注数据集进行一定程度的划分,以便于发现潜在的关系,但是聚类方法的效果严重依赖于所选的相似度判别标准。
相似度的判别主要是通过一定的标准来说明所给的实例之间的相似程度,常见的有基于距离的标准,基于相关系数的标准;针对字符串或文本还有基于编辑距离,基于词向量等的标准。针对要解决的问题选择合适的相似度判别标准是聚类方法最基础也是最核心的步骤。
定义:给定样本集合 X X X, X X X是 m m m维实数向量空间 R m R^m Rm中点的集合,其中 x i , x j ∈ X , x j = ( x j 1 , x j 2 , . . . , x j m ) , x i = ( x i 1 , x i 2 , . . . , x i m ) x_i,x_j \in X,x_j=(x_{j1},x_{j2},...,x_{jm}),x_i=(x_{i1},x_{i2},...,x_{im}) xi,xj∈X,xj=(xj1,xj2,...,xjm),xi=(xi1,xi2,...,xim), x i m x_{im} xim表示第 i i i个样本的第 m m m维特征,样本 x i , x j x_i,x_j xi,xj的闵可夫斯基距离定义为 d i j = ( ∑ k = 1 m ∣ x i k − x j k ∣ p ) 1 p , p ≥ 1 d_{ij}=(\sum_{k=1}^{m}|x_{ik}-x_{jk}|^p)^{\frac{1}{p}},p\geq 1 dij=(k=1∑m∣xik−xjk∣p)p1,p≥1
- 欧式距离:
当 p = 2 p=2 p=2时就是我们常见的欧氏距离, d i j = ( ∑ k = 1 m ∣ x i k − x j k ∣ 2 ) 1 2 d_{ij}=(\sum_{k=1}^{m}|x_{ik}-x_{jk}|^2)^{\frac{1}{2}} dij=(∑k=1m∣xik−xjk∣2)21
- 曼哈顿距离:
当 p = 1 p=1 p=1时称为曼哈顿距离, d i j = ( ∑ k = 1 m ∣ x i k − x j k ∣ ) d_{ij}=(\sum_{k=1}^{m}|x_{ik}-x_{jk}|) dij=(∑k=1m∣xik−xjk∣)
- 切比雪夫距离:
当 p = ∞ p=\infty p=∞时称为切比雪夫距离, d i j = ( max k ∣ x i k − x j k ∣ ) d_{ij}=(\max_k|x_{ik}-x_{jk}|) dij=(maxk∣xik−xjk∣)注:这里的各种距离其实和矩阵论中的各类范数对应
马哈拉诺比斯距离简称马氏距离,它考虑了样本各个分量(不同特征)之间的相关性,并且同各个分量的尺度无关(不受不同分量尺度不同的影响)
定义:给定一个样本集合 X , X = ( x i j ) n × m X,X=(x_{ij})n\times m X,X=(xij)n×m样本集合各分量间的协方差矩阵记作 X X X。样本 x i x_i xi与样本 x j x_j xj之间的马氏距离定义为 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)]^{\frac{1}{2}} dij=[(xi−xj)TS−1(xi−xj)]21其中 x i = ( x i 1 , x i 2 , . . . , x i m ) , x j = ( x j 1 , x j 2 , . . . , x j m ) x_i=(x_{i1},x_{i2},...,x_{im}),x_j=(x_{j1},x_{j2},...,x_{jm}) xi=(xi1,xi2,...,xim),xj=(xj1,xj2,...,xjm)
参考自:
欧氏距离与马氏距离的优缺点是什么?
马氏距离(Mahalanobis Distance)
相关系数其实是对协方差的一种标准化。对于两个随机变量 X , Y X,Y X,Y他们的协方差定义为: C o v ( X , Y ) = E [ ( X − μ x ) ( Y − μ y ) ] Cov(X,Y)=E[(X-\mu_x)(Y-\mu_y)] Cov(X,Y)=E[(X−μx)(Y−μy)]协方差表示了两个随机变量的协同变化情况。当协方差为正时说明两个随机变量是同向变化的(一个增大另一个也增大,一个减小另一个也减小)。对于多个随机变量而言,求解任意两个变量的协方差并按照矩阵的形式记录下来得到的就是协方差矩阵。
相关系数其实可以理解成是对协方差进行了标准化,消除了协方差中量纲的影响,只是单纯的反应两个变量单位变化量时的相似程度。对于两个随机变量 X , Y X,Y X,Y他们的相关系数定义为 ρ X Y = C o v ( X , Y ) D ( X ) D ( Y ) \rho_{XY}=\frac{Cov(X,Y)}{\sqrt{D(X)}\sqrt{D(Y)}} ρXY=D(X)D(Y)Cov(X,Y)其中 D ( X ) , D ( Y ) D(X),D(Y) D(X),D(Y)表示对应随机变量的方差
参考自:
如何通俗易懂地解释「协方差」与「相关系数」的概念?
层次聚类假设类别之间存在上下位的层次关系,按照聚合方向可以按照从上至下(分裂)聚类和从下到上(聚合)聚类
K均值聚类是将样本集合划分为K个子集,将样本集合中的样本划分到K个子集中,使得每个样本距离所属类的中心的距离最短。
输入: N个样本的集合
输出:样本集合的聚类
(1) 初始化:随机选取K个初始样本作为类中心
(2) 聚类: 根据当前的类中心,计算剩余样本距离每个类中心的距离,并将其归入最近的一类中得到新的类集合
(3) 更新类中心:对于新得到的类集合,计算集合中样本的均值,得到新的类中心
(4) 迭代(2)(3)步直到满足聚类停止条件,得到聚类结果
K均值聚类的优点是计算速度较快,通俗易懂,但缺点是算法效果和初始类中心的选择,K值选择有很大关系。
如何正确选择聚类算法?