内容摘要
基于密度的噪声应用空间聚类法(DBSCAN)是聚类分析的必知必会算法,它能够发现外点,识别非球形的数据集。DBSCAN采用基于点密度区域的方式确定集群标签,实现数据点的分组,而密度则是由某个半径范围之内点的数量决定的。
文章编号:AI-0034-V1.1
所属类别:人工智能
文章正文
基于密度的噪声应用空间聚类法(DBSCAN)是聚类分析中必须涵盖的算法,DBSCAN既不像K均值那样假设集群是球形的,也无需使用手动切除点的手段将数据集切分为若干层。
从DBSCAN的名字就能够直观感受到,基于密度的聚类分析法采用了基于点密度区域的方式确定集群标签,在DBSCAN中,密度是由某个半径范围之内点的数量决定的。
DBSCAN算法采用如下标准为样本(数据点)指定专门的标签:
#核心点:至少指定数量的邻接点落入指定半径范围内。
#边界点:几乎没有邻居点,但是它也在核心点半径范围之内。
#噪音点:既不是核心点,又不是边界点。
DBSCAN算法实现步骤如下:
1、为每个核心点各自构建一个集群或者相互连接的组。
2、将每个边界点指定到对应的核心点所属的集群。
使用DBSCAN算法的主要优点是它无需像K均值算法那样假设集群具有圆球形数据集合。
此外,DBSCAN不同于K均值和层次聚类,它无需为每个点指定集群,但却可以排除噪音点。
下面我们创建一个形状为半月形的数据集,对比K均值、层次聚类、DBSCAN三者的不同点,如下图所示:
从上图可以看出,100个样本(数据点)的数据集呈现为半月形。
下面以上述数据集为基础,采用K均值算法和分层合并聚类算法,查看两者的聚类效果,如下图所示:
从上图可以看出,K均值算法和分层合并聚类算法都无法将每个半月形作为一个单独的集群识别出来。
下面再看看DBSCAN算法在同样的数据集的表现,分析结果如下图所示:
从上图可以看出,DBSCAN算法能够非常好地检测半圆形数据集。
然而,DBSCAN并非完美,随着特征个数的增加,“维度灾难”的负面性也愈发明显,如果使用欧拉距离指标,“维度灾难”问题则表现的更为突出。
为了产生好的聚类效果,DBSCAN算法的两个超参都需要优化,如果数据集的密度差异相对较大,那么找到两个超参的最佳组合可能会很难。
需要说明的是,在现实应用中,针对特定的数据集到底哪个聚类算法表现的最好并没有那么明显,特别是如果数据来自于多个维度,那么实现聚类的效果会更差。
此外,必须认识到,好的聚类算法不仅仅依赖于算法选取和超参调优,选择恰当的距离指标,对行业领域知识的运用能力,等等因素,对于聚类分析的成功实施都是非常重要的。
内容总结
聚类算法DBSCAN基于局部密度实现数据点的分组,能够发现外点,识别非球形的数据集。
至此,我们完成了无监督学习的3个算法:K均值、分层合并聚类算法以及DBSCAN的介绍,下面开始介绍有监督机器学习算法:多层神经网络。
近年来,神经网络再次成为机器学习研究中的热门话题,深度学习算法、神经网络被看做解决复杂任务的最佳手段,比如图像识别、语音识别,“数智萤火虫”将会在人工智能的第二大主题,也就是“深度学习”部分进行深入介绍。
名词术语
density-based spatial clustering of applications with noise(DBSCAN):基于密度聚类