🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学!
⭐特别提醒:针对机器学习,特别开始专栏:机器学习python实战 欢迎订阅!本专栏针对机器学习基础专栏的理论知识,利用python代码进行实际展示,真正做到从基础到实战!
💡往期推荐:
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
【机器学习基础】一元线性回归(适合初学者的保姆级文章)
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
【机器学习基础】对数几率回归(logistic回归)
【机器学习基础】正则化
【机器学习基础】决策树(Decision Tree)
【机器学习基础】K-Means聚类算法
💡本期内容:紧接着上一篇介绍的K-Means聚类,本篇文章针对原型聚类的缺点,介绍了密度聚类DBSCAN,丰富了无监督学习的内容介绍。
文章目录
- 1 DBSCAN发展状况
- 2 DBSCAN算法的基本概念
- 3 DBSCAN参数设置
- 4 DBSCAN算法的核心思想
- 5 DBSCAN伪代码描述
- 6 DBSCAN的优缺点
1 DBSCAN发展状况
目前,人们提出的聚类算法主要分为五种类型:划分法、层次法、基于模型的算法、基于密度的算法和基于网格的算法。基于密度的聚类算法是以出格合适对不确定命据集举行聚类,不用计较各种各样的距离,而是基于密度,就可以迅速的完成样本集的聚类。基于密度的聚类方式在数据识别、数据分析、图象处置、网络安全等范畴有着普遍的利用,是以,关于基于密度聚类算法的钻研有着普遍的现实和现实意义。
基于密度的经典代表算法主要有两种:DBSCAN和OPTIC。针对这两种经典的算法,学术界展开了大量的讨论。DBSCAN于1996年由Ester等提出,DBSCAN算法它不仅可以对高密度区域进行聚类划分,还可以对低密度区域进行过滤,最终在噪声数据集中得到任意形状的簇。同时,DBSCAN也存在一些很明显的缺点,使用DBSCAN必须先确定Eps和MinPts这两种参数。因为DBSCAN算法对这两种参数感应较高,一旦取值不当就会影响聚集效果。OPTIC是1996年Ankerst等提出来的,是对DBSCAN算法的一大改进。
2 DBSCAN算法的基本概念
DBCSAN是密度聚类中最为经典的一种算法,这种算法不需要提前设置制定聚类数量,但是对于用户设置的eps和minpts参数的数值波动较大。能够有效地识别噪声点。对于样本集,它既可以应用于凸样本集,同样也可以被非凸样本集所利用。这类聚类算法是通过数据集密度的紧密程度来进行划分的,但当采样区域密度不均匀,组间距离相差很大时,算法组的效果会很差。同一类型的图案是紧密相连的,应在离类型外围不远的地方提供相同类型的样品。最后,将每一组紧密相连的样本分为不同的类别,产生聚类效应。
3 DBSCAN参数设置
DBSCAN涉及的参数和关系较多并且受参数设置的影响较大,有两个算法参数:邻域半径eps和最少点数目minpts,3种点的类别:核心点,边界点和噪声点,4种点的关系:密度直达,密度可达,密度相连,非密度相连。
- E邻域:对于给定一个对象,如果它与点的距离小于等于eps则称该邻域是是该对象的E邻域。E邻域是用户主观选择的,eps的值限制着核心点的搜索范围。
- 核心对象:对于给定的对象时,如果样品中的对象E邻域的附近的数目是大于或等于minpts值,称为核心目的是给定对象。
- 直接密度可达:在一个样本集里,如果一个对象点m是核心对象,另一个对象n点在该对象m的邻域半径里,那么则称样本点n从样本点m直接密度可达。
- 密度相连:对于对象m和对象n,如果有核心对象o,使得数据对象m和对象n均从o密度可达,那么则称对象m和对象n密度相连。
- 密度聚类簇:在一个给定数据集中,对于一个核心点与他密度可达的所有点组成一个密度聚类簇。
- 噪声:在一个数据集中,如果一个点在聚类结果上不属于任何一个聚类簇,那么则称该点为噪声。
- 核心点:如果一个边界点在某个核心对象的邻域内,并且该点不是核心对象那么该点是核心点。
在实验实际操作中, DBSCAN有三个输入数据:数据集、邻域半径eps、最少点数值minpts,DBSCAN受半径eps和最少点数值minpts数值波动较大,并且是用户根据实际操作情况认为设置的。
4 DBSCAN算法的核心思想
从以上的叙述中我们可以看出,其基本思想与广度优先搜索思想类似,主要受eps和minpts数值的影响。
-
它从一个随机的没有经过访问的一个对象点开始进行搜索,并检查对象点的E邻域是否含有至少minpts个对象,如果它附近点的数量少于minpts,那么该点将会暂时标记为噪声点,如果附近点的数目大于等于minpts,那么该对象点会创建一个新的簇,并将把该点和它的E邻域内的所有对象全部放入列为候选集合。
-
而后,这些核心对像会被该算法迭代的聚集,并把这些核心对想中直接必读可达的对象添加到新的簇中,随后检索被添加对象的e邻域是否包含minpts个对象,并重复上述操作,直到簇不能再扩展或者候选集合为空,输出,在这个过程中会牵扯密度可达簇的聚集。
-
在完成收集集群后,将DBSCAN然后从对象的其余部分选择随机对象尚未访问和聚类过程。直到所有的对象都已经分配。
DBSCAN还有一个特点,如果一个点不是一个簇的噪声并且该点的附近点少于minpts数值,那么该点被标记为不属于任何簇的噪声点。噪声点被识别为选择对象过程的一部分,如果特定的对象点没有足够的附近点,则将其标记为噪声点。
5 DBSCAN伪代码描述
6 DBSCAN的优缺点
- 优点:
- DBSCAN与k-means划分聚类算法相比,DBSCAN能够处理任何形态的类,而k-means只能处理凸型的类;DBSCAN不需要自己划分聚类簇的情况,k-means需要在算法执行前进行各种参数的设置。
- DBSCAN可以有效地识别和剔除噪声,并且可以在根据实验需要输入过滤噪声的参数。
- 对于样本集中的异常点不敏感。
- 缺点:
- 从DBSCAN运行的情况来看,主要确定邻域半径eps和邻域样本数阈值minpts,可以看出算法对eps和minpts这两个由用户确定的参数非常敏感,主要是由于带有很大的主观性。确定eps和minpts非常复杂,一旦取值不好,就会对聚类效果产生不好的影响,造成聚类质量下降甚至无法进行工作。
当minpts取值一定时,如果eps数值设置的较小,会产生大量的离群点,大部分数据都不能进行聚类,如果设置的数值较大,大部分数值和类都会聚类到同一个簇,在簇得中心会出现一个空洞;
当eps取值一定时,如果minpts的值太大,集群中的点会被标记为离群点,如果值太小,会导致产生大量的核心点。所以eps和minpts的取值搭配不同,就会产生不同的聚类效果。 - DBSCAN是基于密度聚类算法,从实验结果来看,当空间聚类的密度不均匀、聚类间隔差别很大时,数据集不能很好地产生簇,就会造成聚类效果质量下降。
- 当DBSCAN处理较大的数据库的时候,核心对象不断地添加同时没有被访问的对象就会停留在内存中,如果内存过小,就会造成内存的拥堵,这就需要大量的内存来支持程序的执行,来储存核心对象的信息,并且i/o消耗也很大;对于DBSCAN和整个样本集只采用了邻域半径eps和邻域样本数阈值minpts一组参数。如果样本集中存在不同密度的簇或者嵌套簇,那么DBSCAN 算法不能很好地处理这种情况
- DBSCAN算法可以有效地识别和剔除噪声,这既是它的一大优点,同时也是它的一大缺点,这就造成了DBSCAN不适用于网络安全等领域的问题。
- 由于算法邻域半径eps的选取需要用到距离公式的选取,在实际操作中经常用到k-距离曲线方法,对于DBSCAN处理高维度的数据,就会造成运算困难,存在“维度灾难”。