基于密度的聚类算法

本文介绍了基于密度的聚类算法,包括DBSCAN和OPTICS。DBSCAN无需预设类别数量,能识别任意形状的聚类及噪声点,但对参数敏感。OPTICS算法克服了DBSCAN对参数的依赖,生成簇排序以揭示密度结构。通过实例展示了这两种算法的原理和应用场景。
摘要由CSDN通过智能技术生成

基于密度的聚类方法

摘要:我们生活在数据大爆炸时代,每时每刻都在产生海量的数据如视频,文本,图像和等。由于数据的类型和大小已经超出了人们传统手工处理的能力范围,聚类,作为一种最常见的无监督学习技术,可以帮助人们给数据自动打标签,已经获得了广泛应用。基于密度的聚类是根据样本的密度分布来进行聚类。通常情况下,密度聚类从样本密度的角度出来,来考查样本之间的可连接性,并基于可连接样本不断扩展聚类簇,以获得最终的聚类结果。其中最著名的算法就是 DBSCAN 算法。本文将对基于密度的聚类算法做简单的介绍。

关键词:聚类算法  基于密度  DBSCAN算法  OPTICS算法

1、关于聚类的总体介绍

1.1 聚类算法的来源

俗话说:“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。所谓类,通俗地说,就是指相似元素的集合。

聚类分析起源于分类学,在古老的分类学中,人们主要依靠经验和专业知识来实现分类,很少利用数学工具进行定量的分类。随着人类科学技术的发展,对分类的要求越来越高,以致有时仅凭经验和专业知识难以确切地进行分类,于是人们逐渐地把数学工具引用到了分类学中,形成了数值分类学,之后又将多元分析的技术引入到数值分类学形成了聚类分析。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

1.2 聚类算法的用途

聚类的用途是很广泛的。在文本分析处理上,聚类可以帮助新闻工作者把最新的微博,按照话题相似度进行分类,而快速得出热点新闻和关注对象。在生物医学上,可以根据对相似表达谱的基因进行聚类,从而知道未知基因的功能。在商业上,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体来,并且概括出每一类消费者的消费模式或者说习惯。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层的信息,并且概括出每一类的特点,或者把注意力放在某一个特定的类上以作进一步的分析;并且,聚类分析也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。

聚类的目的就是把不同的数据点,按照它们的相似与相异度分割成不同的簇(注意:簇,就是把数据划分后的子集),确保每个簇中的数据都是尽可能相似,使不同簇的数据尽可能的相异。从模式识别的角度来讲,聚类就是在发现数据中潜在的模式,帮助人们进行分组归类以达到更好理解数据的分布规律。由于聚类是无监督学习方法,不同的聚类方法基于不同的假设和数据类型,由于数据通常可以以不同的角度进行归类,因此没有万能的通用聚类算法,并且每一种聚类算法都有其局限性和偏见性。也就是说某种聚类算法可能在市场数据上效果很棒,但是在基因数据上就无能为力了。

1.3 聚类算法的分类

   聚类是机器学习中一种重要的无监督算法,它可以将数据点归结为一系列特定的组合。理论上归为一类的数据点具有相同的特性,而不同类别的数据点则具有各不相同的属性。在数据科学中聚类会从数据中发掘出很多分析和理解的视角,让我们更深入的把握数据资源的价值、并据此指导生产生活。以下是五种常用的聚类算法。

1.3.1 K均值聚类

这一最著名的聚类算法主要基于数据点之间的均值和与聚类中心的聚类迭代而成。它主要的优点是十分的高效,由于只需要计算数据点与剧类中心的距离,其计算复杂度只有O(n)。其工作原理主要分为以下四步:

1.首先我们需要预先给定聚类的数目同时随机初始化聚类中心。我们可以初略的观察数据并给出较为准确的聚类数目;

2.每一个数据点通过计算与聚类中心的距离了来分类到最邻近的一类中;

3.根据分类结果,利用分类后的数据点重新计算聚类中心;

4.重复步骤二三直到聚类中心不再变化。(可以随机初始化不同的聚类中心以选取最好的结果)

这种方法在理解和实现上都十分简单,但缺点却也十分明显,十分依赖于初始给定的聚类数目;同时随机初始化可能会生成不同的聚类效果,所以它缺乏重复性和连续性。和K均值类似的K中值算法,在计算过程中利用中值来计算聚类中心,使得局外点对它的影响大大减弱;但每一次循环计算中值矢量带来了计算速度的大大下降。

1.3.2均值漂移算法

这是一种基于滑动窗口的均值算法,用于寻找数据点中密度最大的区域。其目标是找出每一个类的中心点,并通过计算滑窗内点的均值更新滑窗的中心点。最终消除临近重复值的影响并形成中心点,找到其对应的类别。

1.首先以随机选取的点为圆心r为半径做一个圆形的滑窗。其目标是找出数据点中密度最高点并作为中心;

2.在每个迭代后滑动窗口的中心将为想着较高密度的方向移动;

3.连续移动,直到任何方向的移动都不能增加滑窗中点的数量,此时滑窗收敛;

4.将上述步骤在多个滑窗上进行以覆盖所有的点。当过个滑窗收敛重叠时,其经过的点将会通过其滑窗聚类为一个类;

与K均值相比最大的优点是我们无需指定聚类数目,聚类中心处于最高密度处也是符合直觉认知的结果。但其最大的缺点在于滑窗大小r的选取,对于结果有着很大的影响。

1.3.3基于密度的聚类算法(DBSCAN)

DBSCAN同样是基于密度的聚类算法,但其原理却与均值漂移大不相同:

1.首先从没有被遍历的任一点开始,利用邻域距离epsilon来获取周围点;

2.如果邻域内点的数量满足阈值则此点成为核心点并以此开始新一类的聚类。(如果不是则标记为噪声);

3.其邻域内的所有点也属于同一类,将所有的邻域内点以epsilon为半径进行步骤二的计算;

4.重复步骤二、三直到变量完所有核心点的邻域点;

5.此类聚类完成,同时又从任意未遍历点开始步骤一到四直到所有数据点都被处理;最终每个数据点都有自己的归属类别或者属于噪声。

这种方法最大的优点在于无需定义类的数量,其次可以识别出局外点和噪声点、并且可以对任意形状的数据进行聚类。

但也存在不可回避的缺点,当数据密度变化剧烈时,不同类别的密度阈值点和领域半径会产生很大的变化。同时在高维空间中准确估计领域半径也是不小的挑战。

1.3.4利用高斯混合模型进行最大期望估计

对于较为复杂的分布K均值将会产生如下图般较为离谱的聚类结果。而高斯混合模型却具有更高的灵活性。通过假设数据点符合均值和标准差描述的高斯混合模型来实现的。下图以二维情况下为例描述了如何利用最大期望优化算法来获取分布参数的过程:

1.首先确定聚类的数量,并随机初始化每一个聚类的高斯分布参数;

2.通过计算每一个点属于高斯分布的概率来进行聚类。与高斯中心越近的点越有可能属于这个类;

3.基于上一步数据点的概率权重,通过最大似然估计的方法计算出每一类数据点最有可能属于这一聚类的高斯参数;

4.基于新的高斯参数,重新估计每一点归属各类的概率,重复并充分2,3步骤直到参数不再变化收敛为止。

在使用高斯混合模型时有两个关键的地方,首先高斯混合模型十分灵活,可以拟合任意形状的椭圆;其次这是一种基于概率的算法,每个点可以拥有属

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值