聚类

聚类任务

什么是聚类

属于无监督学习。
通过对无标记训练样本的学习来解释数据的内在性质和规律。
目标:将数据集中的样本划分为若干个互不相交的子集(簇,cluster),子集内部具有相似性,子集之间具有差异性。
注意:聚类任务即可以作为一个单独的过程,也可以作为分类等其他学习任务的前驱过程。

数学描述

已有:
样本集 D = { x 1 , x 2 , . . . , x m } D=\{x_1,x_2,...,x_m\} D={x1,x2,...,xm}
其中,每个样本 x i = ( x i 1 , x i 2 , . . . , x i m ) x_i=(x_{i1},x_{i2},...,x_{im}) xi=(xi1,xi2,...,xim)
簇标记 λ = { λ 1 , λ 2 , . . . , λ m } \lambda=\{\lambda_1,\lambda_2,...,\lambda_m\} λ={λ1,λ2,...,λm}
目标:
划分为k个不相交的簇 { C l ∣ l = 1 , 2 , . . . , k } \{C_l|l=1,2,...,k\} {Cll=1,2,...,k}
其中,簇与簇之间并不相交。

性能度量

聚类任务的期望“簇内相似度”高,“簇间相似度”低。
那么我们如何评估这两点呢?

第一类:外部指标

将聚类结果与某个“参考模型”进行比较。
假定聚类得到的簇划分为 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}
我们研究的对象是样本对之间的聚类情况。
我们将其簇两两配对,给出四种定义:
两个模型分类一致的样本集合。都为同一类。
a = ∣ S S ∣ , S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } a=|SS|,SS=\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda_i^*=\lambda_j^*,i\lt j\} a=SS,SS={(xi,xj)λi=λj,λi=λj,i<j}
两个模型分类不一致的样本集合。前者为一类,后者不为一类。
b = ∣ S D ∣ , S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } b=|SD|,SD=\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda_i^*\not=\lambda_j^*,i\lt j\} b=SD,SD={(xi,xj)λi=λj,λi=λj,i<j}
两个模型分类不一致的样本集合。前者不为一类,后者为一类。
c = ∣ D S ∣ , D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } c=|DS|,DS=\{(x_i,x_j)|\lambda_i\not=\lambda_j,\lambda_i^*=\lambda_j^*,i\lt j\} c=DS,DS={(xi,xj)λi=λj,λi=λj,i<j}
两个模型分类一致的集合。都不为同一类。
c = ∣ D D ∣ , D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } c=|DD|,DD=\{(x_i,x_j)|\lambda_i\not=\lambda_j,\lambda_i^*\not=\lambda_j^*,i\lt j\} c=DD,DD={(xi,xj)λi=λj,λi=λj,i<j}

Jaccard系数

两个集合交集大小与并集大小之比。
用于评估两个集合之间的相似度。
集合A为,在训练模型中划分为同一类的样本对;
集合B为,在引入模型中划分为同一类的样本对。
两个模型同类划分一致的总数的比例。
J C = a a + b + c JC = \frac{a}{a+b+c} JC=a+b+ca

FMI指数

两个模型同类划分一致的总数与集合A大小之比;
两个模型同类划分一致的总数与集合B大小之比;
最后取集合平均。
F M I = a a + b a a + c FMI = \sqrt{\frac{a}{a+b}\frac{a}{a+c}} FMI=a+baa+ca

Rand指数

两者划分一致的比例。Jaccard和FMI之研究划分为一类且划分一致的占比。
R I = 2 ( a + d ) m ( m − 1 ) = 2 ( a + d a + b + c + d RI=\frac{2(a+d)}{m(m-1)}=\frac{2(a+d}{a+b+c+d} RI=m(m1)2(a+d)=a+b+c+d2(a+d
以上指标取值范围在0,1之间,且越大越好。

第二类:内部指标

无需借助外部指标。
我们的研究对象是样本对之间的距离。

簇内相似度距离

簇C内样本间的平均距离:
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\le i \le j \le |C|}dist(x_i,x_j) avg(C)=C(C1)21ijCdist(xi,xj)
簇C内样本间的最远距离:
d i a m ( C ) = max ⁡ 1 ≤ i ≤ j ≤ ∣ C ∣ d i s t ( x i , x j ) diam(C)=\max_{1\le i \le j \le |C|}dist(x_i,x_j) diam(C)=1ijCmaxdist(xi,xj)

簇间相似度距离

C i C_i Ci与簇 C j C_j Cj最近样本间的距离:
d m i n ( C i , C j ) = min ⁡ x i ∈ C i , x j   i n 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)=xiCi,xj inCjmindist(xi,xj)
C i C_i Ci与簇 C j C_j Cj中心点间的距离:
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)

指标化
DB指数(DBI)

越小越好在这里插入图片描述

Dunn指数(DI)

越大越好
在这里插入图片描述

距离计算

我们在性能度量方法的内部指标中定义了四个距离。显然,距离的计算是多种多样的,在此,我们会介绍几种距离。

距离度量的性质

性质数学表示
非负性 d i s t ( x i . x j ) ≥ 0 dist(x_i.x_j)\ge 0 dist(xi.xj)0
同一性 d i s t ( x i , x j ) = 0      ⟺    x i = x j dist(x_i,x_j)=0 \ \iff x_i= x_j dist(xi,xj)=0 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)\le dist(x_i,x_k)+dist(x_k,x_j) dist(xi,xj)dist(xi,xk)+dist(xk,xj)

闵氏(闵可夫斯基)距离

$ d i s t ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 p dist(x_i,x_j)=(\sum_{u=1}^n|x_{iu}-x_{ju}|^p)^\frac{1}{p} dist(xi,xj)=(u=1nxiuxjup)p1
p = 2 : 闵氏距离
p = 1 : 曼哈顿距离

属性处理

属性分类
离散属性

在定义域上有有限个可能取值。
{1,2,3}:有序属性;
{火车,飞机,汽车}:无序属性;
闵氏距离对于无序属性是无法直接使用的。

VDM(Value Difference Metric)

用于度量无序属性之间的距离。
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=1kmu,amu,a,imu,bmu,b,ip
其中:
m u , a m_{u,a} mu,a表示属性u上取值为a的样本数
m u , a , i m_{u,a,i} mu,a,i表示第i个样本簇在属性u上取值为a的样本数
k为样本簇数
将VDM距离与闵氏距离结合可以度量两个样本之间的距离。

连续属性

距离选择

1.用于度量相似性的距离未必满足距离的所有基本性质,尤其是直递性,即“非度量距离”。
2.距离不一定是提前定义好的,可以根据数据样本进行动态学习,即“距离度量学习”。

聚类算法

原型聚类

过程:先对原型进行初始化,在对原型进行迭代更新求解。
典型:k-means、LVQ、GMM

K-means

在这里插入图片描述

特点
优点

1.原理简单,容易实现;
2.可解释度强。

缺点

1.K值很难确定;
2.可能陷入局部最优;
3.对噪音和异常点敏感;
4.聚类效果依赖于聚类中心的初始化;
5/对非凸数据集或类别规模太大的数据集效果不好。

高斯混合聚类

采用概率模型来表达聚类原型。
在这里插入图片描述
高斯分布完全是由均值向量和协方差矩阵构成。
在这里插入图片描述
在这里插入图片描述
我们假设了数据满足了高斯分布。
1.将其带入混合高斯分布函数,计算其对每个簇的后验概率P(簇|特征);
2.更新参数;
3.循环至达到迭代次数或者似然函数增长很少或不再增长。
4.输出类别。
模型本身的指标评估(辅助建模)函数为似然函数,采用的方法为极大似然法。
这有点类似于朴素贝叶斯分类器。

密度聚类(DBSCAN)

原型聚类:假设聚类结构能够通过一组原型刻画。比如K-means中的点,GMM中的混合高斯分布函数,对单个样本逐个进行处理。
密度聚类:
1.此类算法假设聚类结构能通过样本分布的紧密程度确定。
2.密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇来获得最终的聚类结果。

那么我们的问题是:
1.如何刻画样本分布的紧密程度;
2.如何扩展样本。

和性能度量一样,我们给出一系列定义:
D为数据集。我们用 ( ϵ , M i n P t s ) (\epsilon,MinPts) (ϵ,MinPts)来刻画样本分布的紧密程度。
在这里插入图片描述
领域–>核心对象–>密度直达–>密度可达–>密度相连。
在这里插入图片描述

由密度可达关系导出的最大密度相连样本集合称之为"簇";
我们给定领域参数,簇是满足以下性质的非空样本子集:
连接性:
x i ∈ C , x j ∈ C → x i 与 x j 密 度 相 连 x_i \in C,x_j\in C \rightarrow x_i 与x_j密度相连 xiC,xjCxixj
最大性:
x i ∈ C , x i 与 x j 密 度 可 达 → x j ∈ C x_i \in C,x_i与x_j密度可达 \rightarrow x_j \in C xiC,xixjxjC
也就是说由核心对象x密度可达的所有样本组成的集合就是满足连接性与最大性的簇。
在这里插入图片描述
while:
1.找出样本中的所有核心对象;
end while
2.初始化簇数以及未访问的样本集合,也就是所有样本;
while:
3.挑出一个核心对象;
while:
4.挑出核心对象中的一个样本,开始感染样本;
5.感染完成,从未访问样本中剔除感染样本;
end while
6.簇数增加,从核心对象集中剔除感染样本。
end while
共包含一个单循环,和一个嵌套循环。

层次聚类(AGENS)

思想:将样本中的每一个样本看作一个初始聚类簇,然后在算法的每一步找出距离最近的两个聚类簇进行合并,该过程不断重复,直到达到预设的聚类簇个数。
关于聚类簇的距离,给出了三种度量方式(除去 d m i n ( x i , x j ) d_min(x_i,x_j) dmin(xi,xj)又给了两种):
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值