logo

聚类算法概览

wangzf / 2022-07-19


目录

聚类算法

聚类是从数据集中挖掘相似观测值集合的方法。聚类试图将数据集中的样本划分为若干个通常是不相交的子集, 每个子集称为一个"簇"(cluster)。通过这样的划分,每个簇可能对应于一些潜在的概念(类别)。 聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者自己来把握。 聚类既能作为一个单独的过程用于寻找数据内在的分布结构,也可以作为分类等其他学习任务的前驱过程

角度 I:

聚类算法比较:

方法 参数 可扩展性 用例 几何
K-Means
Affinity propagation
Mean-shift
Spectral clustering
Ward hierarchical
Agglomerative clustering
DBSCAN
OPTICS
Gaussian
BIRCH
Bisecting K-Means

基于原型的聚类

基于原型的聚类(Prototype-based Clustering) 假设聚类结构能通过一组原形刻画。 通常情况下,算法先对原型进行初始化,然后对原型进行迭代更新求解, 采用不同的原型表示,不同的求解方式,将产生不同的算法

常见的基于原型的聚类有:

基于密度的聚类

基于密度的聚类(Density-based Clustering) 假设聚类结构能通过样本分布的紧密程度确定。 密度聚类算法从样本密度的角度来考察样本之间的可连续性,并基于可连续样本不断扩展聚类簇以获得最终的聚类结果

常见的基于密度的聚类有:

层次聚类算法

层次聚类(Hierarchical Clustering) 也称为基于连通性的聚类。 这种算法试图在不同层次对数据进行划分,从而形成树形的聚类结构

数据集的划分采用不同的策略会生成不同的层次聚类算法:

基于模型的聚类

其他聚类算法

聚类数据

假定样本集 D 包含 n 个无标记样本:

D={x1,x2,,xn}

每个样本是一个 p 维特征向量:

xi=(xi1;xi2;;xip),i=1,2,,n

聚类算法将样本集 D 划分为 k 个不相交的簇:

{Cl|l=1,2,,k}

其中:

相应的, 用

λi{1,2,,k}

表示样本 xi 的"簇标记”(cluster label),即

xiCλi

于是,聚类的结果可用包含 n 个元素的簇标记向量表示

λ=(λ1,λ2,,λn)

聚类性能度量

聚类距离计算

距离度量(distance measure)函数 dist(,) 需满足的基本性质:

变量特征:

闵可夫斯基距离

Minkowski distance

样本:

{xi=(xi1,xi2,,xip),i=1,2,,nxj=(xj1,xj2,,xjp),i=1,2,,n

distmk(xi,xj)=||xixj||q=(u=1p|xiuxju|q)1q

distman(xi,xj)=xixj1=u=1p|xiuxju|

disted(xi,xj)=xixj2=u=1p|xiuxju|2

VDM

VDM,Value Difference Metric,值差异指标

mu,a 表示在特征 u 上取值为 a 的样本数, mu,a,i 表示在第 i 个样本簇中在特征 u 上取值为 a 的样本数, k 为样本簇数,则特征 u 上两个离散值 ab 之间的 VDM 距离为:

VDMq(a,b)=i=1k|mu,a,imu,amu,b,imu,b|q

闵可夫斯基距离与 VDM 混合距离

假设有 pc 个有序特征,ppc 个无序特征,有序特征排列在无序特征之前:

MinkovDMq(xi,xj)=(u=1pc|xi,uxj,u|q+u=pc+1pVDMq(xi,u,xj,u))1q

加权闵可夫斯基距离

当样本在空间中不同特征的重要性不同时:

distwmk(xi,xj)=(w1|xi1xj1|q+w2|xi2xj2|q++wn|xinxjn|q)1q

其中:

聚类算法库

参考