机器学习算法笔记之8:聚类算法

一、聚类任务

在“无监督学习”(unsupervisedlearning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质和规律,最常用的就是“聚类”(clustering)。

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”(cluster)。聚类过程只能自动形成簇结构,簇对应的概念语义需由使用者来把握和命名。

聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。

二、性能度量

聚类性能度量亦称聚类“有效性指标”(validityindex)。对聚类结果,我们需要通过某种性能度量来评估其好坏;另一方面,若明确了性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。聚类的结果应该是“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(inter-clustersimilarity)低。

聚类性能度量大致有两类:一类是将聚类结果与某个“参考模型”进行比较,称为“外部指标”;另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”。

三、距离计算

对函数dist(·,·),若它是一个“距离度量”(distancemeasure),则需要满足以下性质:非负性、同一性、对称性、直递性。

直递性:《机器学习算法笔记之8:聚类算法》

给定样本《机器学习算法笔记之8:聚类算法》,最常用的是“闵可夫斯基距离”(Minkowski distance)

《机器学习算法笔记之8:聚类算法》

上式显然满足距离度量的基本性质。

p=2时,即为欧式距离;p=1时,即为曼哈顿距离。

我们常将属性划分为“连续属性”和“离散属性”,前者在定义域上有无穷多个可能的取值,后者在定义域上是有限个取值。再进行距离计算时,属性上是否定义了“序”关系更为重要。例如{1,2,3}能直接在属性值上计算距离,这样的属性称为“有序属性”;而{飞机,火车,轮船}这样的离散属性不能直接在属性值上计算距离,称为“无序属性”。闵可夫斯基距离可用于有序属性,对于无序属性可采用VDM(Value Difference Metric)。当样本空间中不同属性的重要性不同时,可使用“加权距离”(weigted distance),通常各权重之和为1。

基于某种形式的距离来定义的“相似度度量”(similaritymeasure),距离越大,相似度越小。用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性,这样的距离称为“非度量距离”(non-metric distance)。

《机器学习算法笔记之8:聚类算法》

四、原型聚类

原型聚类亦称“基于原型的聚类”(prototype-basedclustering),此类算法假设聚类结果能够通过一组原型刻画,在现实聚类任务中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。

1. k均值算法

给定样本集《机器学习算法笔记之8:聚类算法》,“k均值”(k-means)算法要针对聚类所得簇划分《机器学习算法笔记之8:聚类算法》最小化平方误差《机器学习算法笔记之8:聚类算法》,μ是簇Ci的均值向量。上式在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。

《机器学习算法笔记之8:聚类算法》

为避免运行时间过长,通常设置一个最大运行轮数或最小调整幅度阈值,若达到最大轮数或调整幅度小于阈值,则停止运行。

2. 学习向量量化

与k均值算法类似,“学习向量量化”(Learning Vector Quantization,LVQ)也是试图找到一组原型向量来刻画聚类结构,不同的是LVQ假设数据样本带有类别标记,学习过程中利用样本的这些监督信息来辅助聚类。

《机器学习算法笔记之8:聚类算法》

五、密度聚类

密度聚类亦称“基于密度的聚类”(density-basedclustering),此类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。

DBSCAN是一种著名的密度聚类算法,它基于一组“邻域”参数《机器学习算法笔记之8:聚类算法》来刻画样本分布的紧密程度。给定数据集《机器学习算法笔记之8:聚类算法》,定义下面几个概念:

《机器学习算法笔记之8:聚类算法》-邻域:对《机器学习算法笔记之8:聚类算法》,其《机器学习算法笔记之8:聚类算法》-邻域包含样本D中与xj的距离不大于的样本,即《机器学习算法笔记之8:聚类算法》;(dist(·,·)默认情况下设为欧式距离)

核心对象:若xj的《机器学习算法笔记之8:聚类算法》-邻域至少包含MinPts个样本,即《机器学习算法笔记之8:聚类算法》,则xj是一个核心对象;

密度直达:若xj位于xi的《机器学习算法笔记之8:聚类算法》-邻域中,且xi是核心对象,则称xj有xi密度直达;

密度可达:对xi与xj,若存在样本序列p1,p2,…,pn,其中p1=xi,pn=xj且pi+1由pi密度直达,则称xj由xi密度可达;

密度相连:对xi与xj,若存在xk使得xi与xj均有xk密度可达,则称xi与xj密度相连。

《机器学习算法笔记之8:聚类算法》

基于这些概念,DBSCAN将“簇”定义为:由密度可达关系导出的最大的密度相连样本集合。形式化的说,给定邻域参数《机器学习算法笔记之8:聚类算法》,簇《机器学习算法笔记之8:聚类算法》是满足以下性质的非空样本子集:连接性,《机器学习算法笔记之8:聚类算法》xi与xj密度相连;最大性,xi属于C,xj由xi密度可达推出xj属于C。

《机器学习算法笔记之8:聚类算法》

六、层次聚类

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

AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法进行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。应用过程中只需要给定一个计算聚类簇之间距离的计算方法即可。

    原文作者:聚类算法
    原文地址: https://blog.csdn.net/marsjhao/article/details/70543862
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞