第九章 聚类

第九章 聚类

聚类任务

聚类(clustering)试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”(cluster)。通过这样的划分,每个簇可能对应与一些潜在的概念(类别)。这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构。聚类既能作为一个单独的过程,用于寻找数据内在的分布结构,也可作为分类等其它学习任务的前驱过程。

性能度量

聚类性能度量又称聚类“有效性指标”(validity index)。人们希望聚类结果的“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(iner-cluster similarity)低。
聚类性能度量大致分为两类:“外部指标”(exteral index)和“内部指标”(internal index).

  1. 常用的聚类性能度量外部指标如下:
    这里写图片描述
    这里写图片描述
    上述的性能度量的结果值均在[0,1]区间,值越大越好。

  2. 常用的聚类性能度量内部指标如下:
    这里写图片描述
    DBI值越小越好,而DI则值越大越好。

距离计算

函数dist(.,.)(计算两个样本之间的距离),若它是一个“距离度量”(distance measure)则需要满足一下性质:
这里写图片描述
这里写图片描述

闵科夫斯基距离(Minkowski distance)

这里写图片描述
当p=2时,闵科夫斯基距离即欧氏距离(Euclidean distance)
这里写图片描述
当p=1时,闵科夫斯基距离即曼哈顿距离(Manhattan distance)
这里写图片描述

连续属性与离散属性

连续属性在定义域上有无穷多个可能的取值。而离散属性在定义域上是有限个取值。这种划分是常见的划分。

有序属性与无序属性

有序属性可以直接在属性值上计算距离,而无序属性则不可以。
所以闵科夫斯基距离可以用于有序属性。而无序属性可以用VDM(Value Difference Metric),令 mu,a 表示在属性u上取值为a的样本数, mu,a,i 表示在第i个样本簇中在属性u上取值为a的样本数,k为样本簇数,则属性u上两个离散值a与b之间的VDM距离为
这里写图片描述

混合属性

将闵科夫斯基距离与VDM结合即可处理混合属性
假定有 nc 个有序属性, nnc 个无序属性,不失一般性,令有序属性排列在无需属性之前,则
这里写图片描述

具有不同重要性的属性

“加权距离”即可处理这些样本。例如:
这里写图片描述
其中权重 ωi0(i=1,2,...,n) 表征不同属性的重要性,通常 ni=1ωi=1

原型聚类

原型聚类亦称“基于原型的聚类”(prototype-based clustering),通常算法先对原型进行初始化,然后对原型进行迭代更新求解

k均值算法

给定样本集D={ x1,x2,...,xm },k均值(k-means)算法针对聚类所得的簇划分C={ C1,C2,...,CK }最小化平方误差
这里写图片描述
这里写图片描述
如图,第1行对均值向量进行初始化,在第4-8行与第9-16行依次对当前簇划分及均值向量迭代更新,若迭代更新后聚类结果不变,则将当前簇划分结果返回。

学习向量量化(LVQ)

学习向量量化也是试图找到一组原型向量来刻画聚类的结构,但与一般算法不同,LVQ假设数据样本带有标记,学习过程利用样本的这些监督信息来辅助聚类。
这里写图片描述
如图,算法第1行先对原型向量进行初始化,第2-12行对原型向量进行迭代优化。在每一轮迭代中,算法随机选取一个有标记的训练样本,找出与其距离最近的原型向量,并根据两者的类别标记是否一致来对原型向量进行相应的更新,最后若算法停止条件满足则返回最终结果。

高斯混合聚类

高斯混合聚类采用概率模型来表达聚类原型。
- EM算法
这里写图片描述这里写图片描述这里写图片描述
在每步迭代中,先根据当前的参数计算每个样本属于每个高斯成分的后验概率,再根据上述三个式子更新模型函数。
这里写图片描述

密度聚类

密度聚类亦称“基于密度的聚类”(density-based clustering),此类算法假设聚类结构通过样本分布的紧密程度确定。

DBSCAN算法

DBSCAN是一种著名的密度聚类算法,它基于一组“邻域”参数来刻画样本分布的紧密程度:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
如图,算法在第1-7行,先根据给定的邻域参数找出所有核心对象,然后在第10-24行中以任一核心对象为出发点,找出由其密度可达的样本生成聚类簇,直到所有核心对象均被访问为止。

层次聚类(hierarchical clustering)

层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略也可采用“自顶向下”的分拆策略。

AGNES算法

AGNES是一种采用自底向上聚合策略的层次聚类算法,它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。
这里写图片描述
如图,算法在第1-9行先对仅含一个样本的初始聚类簇和对应的距离矩阵进行初始化,然后在第11-23行,AGNES不断合并距离最近的聚类簇,并对合并得到的聚类簇的距离矩阵进行更新,直到达到预设的聚类簇数。

这些算法的代码实现还在研究,之后会补上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值