【机器学习算法】8、聚类算法之DBSCAN(一)

简介: 【机器学习算法】8、聚类算法之DBSCAN(一)

简介


   K-Means算法、K-Means++算法和Mean Shift算法都是基于距离的聚类算法,基于距离的聚类算法的聚类结果是球状的簇,当数据集中的聚类结果是非球状结构时,基于距离的聚类算法的聚类效果并不好,然而,基于密度的聚类算法能够较好地处理非球状结构的数据。与基于距离的聚类算法不同的是,基于密度的聚类算法可以发现任意形状的聚类。


   在基于密度的聚类算法中,通过在数据集中寻找被低密度区域分离的高密度区域,将分离出的高密度区域作为一个独立的类别。DBSCAN(Density-Based Spatial Clustering of Application with Noise)是一种典型的基于密度的聚类算法。


基于距离的聚类算法存在的问题


   K-Means算法,K-Means++算法和Mean Shift算法都是基于距离的聚类算法,当数据集中的聚类结果是球状结构时,基于距离的聚类算法能够得到比较好的结果,球状结构的聚类结果下图所示。

   其中,Sh指的是一个半径为h的高维球区域,如图中所示圆形区域。Sh的定义为:

   利用K-Means++聚类算法对图2中的数据进行聚类, 设置聚类中心的个数为2, 得到如图3所示的聚类结果。

8335f9035559c218702b254f86f314b8.jpg

   在图2中,“+”表示的是最终的两个聚类中心,由图2可知,对于图中的非球状结构的聚类数据,基于距离的KMeans++算法并不能得到正确的聚类结果。

   利用Mean Shift聚类算法对图2中的数据进行聚类,设置高斯核函数中的h=1时,得到如图4所示的聚类结果。

886fd3894ba05eb3650f884595eef878.jpg

   在图4中,“+”表示最终的聚类中心,与K-Means++算法类似,基于距离的Mean Shift算法对图中的非球状聚类结构的数据也不能得到正确的聚类结果。


基于密度的聚类


   从图2中,我们可以看出,数据点在图中呈现上下两个弧形,同时,分别在两个弧形中,数据点之间较为密集, 而两个弧形彼此之间较为稀疏。由这样的现象,我们猜测是否存在一种方法能够利用样本之间的紧密程度对数据进行聚类?基于密度的聚类(Density-Based Clustering)便是这样一种利用数据之间的紧密程度来对样本进行聚类的算法。


1、DBSCAN算法相关的基本概念

   DBSCAN(Density-Based Spatial Clustering of Application with Noise)是一种典型的基于密度的聚类算法,在DBSCAN算法中,有两个最基本的邻域参数,分别为ε邻域和MinPts。其中ε邻域表示的是在数据集D中与样本点xi的距离不大于ε的样本,即:

5a272eafc735d13b98e3f3168d904637.png

样本点xi的ε邻域如图5所示:

77a64d61da4113b50d292ae4bafb0bd4.png

   在图5中,样本点x不在样本点xi的ε邻域内。xi的密度可由xi的ε邻域内的点的数量来估计。MinPts表示的是在样本点xi的ε邻域内的最少样本点的数目。基于邻域参数ε邻域和MinPts,在DBSCAN算法中将数据点分为以下三类:

c5af31a32bbaa4f534a09a86d9aa5ace.png

• 核心点(Core Points):若样本xi的ε邻域内至少包含了MinPts个样本,即则称样本点xi为核心点。

• 边界点(Border Points):若样本xi的ε邻域内包含的样本数目小于MinPts,但是它在其他核心点的邻域内,则称样本点xi为边界点。

• 噪音点(Noise):指的是既不是核心点也不是边界点的点。


核心点、边界点和噪音点如图6所示:

050f92a0fdaaa55593fa0c0b4022ca17.jpg

   在图6中,设置MinPts的值为9,对应的样本点x1的ε邻域内包含11个样本点,大于MinPts,则样本点x1为核心点。样本点的x2在样本点x1的ε邻域内,且样本点x2的ε邻域内只包含8个样本点,小于MinPts,则样本点x2为边界点。样本点x3为噪音点。


在DBSCAN算法中,还定义了如下的一些概念:

• 直接密度可达(directly density-reachable):若样本点xj在核心点xi的ε邻域内,则称样本点xj从样本点xi直接密度可达。

• 密度可达(density-reachable):若在样本点xi,1和样本点xi,n之间存在序列xi,2,…,xi,n-1,且xi,j+1从xi,j直接密度可达,则称xi,n 从xi,1密度可达。由密度可达的定义可知,样本点xi,1,xi,2,…,xi,n-1均为核心点,直接密度可达是密度可达的特殊情况。

• 密度连接(density-connected):对于样本点xi和样本点xj,若存在样本点xk,使得xi和x j都从xk密度可达,则称xi和xj密度相连。


直接密度可达、 密度可达如图7所示:

82112dcf93f287fe00c7e23276d778f2.jpg

   在图7中,设置MinPts的值为9,则样本点x1和样本点x2为核心点,样本点x3为边界点。样本点x2在核心点x1的ε邻域内,则样本点x2从样本点x1直接密度可达;样本点x3在核心点x2的ε邻域内,则样本点x3从核心点x2直接密度可达;在样本点x1和x3之间存在样本点x2,且样本点x2从样本点x1直接密度可达,则样本点x3从样本点x1密度可达。


2、DBSCAN算法原理

  基于密度的聚类算法通过寻找被低密度区域分离的高密度区域,并将高密度区域作为一个聚类“簇”。在DBSCAN算法中,聚类“簇”定义为:由密度可达关系导出的最大的密度连接样本的集合。


   若x为核心对象,由x密度可达的所有样本组成的集合记为:

2aa4b9faca8f4da70ce8387d778a3fbe.png

则X满足连接性和最大性的簇。

相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
124 4
|
2天前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
31 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
18天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
41 2
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
52 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
43 0
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
41 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
108 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
3月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)