无监督学习:基于密度的聚类-DBSCAN原理及代码实现

什么是无监督学习?

  • 无监督学习也是相对于有监督学习来说的,因为现实中遇到的大部分数据都是未标记的样本,要想通过有监督的学习就需要事先人为标注好样本标签,这个成本消耗、过程用时都很巨大,所以无监督学习就是使用无标签的样本找寻数据规律的一种方法

  • 聚类算法就归属于机器学习领域下的无监督学习方法。


聚类算法主要包括哪些算法?

主要包括:K-means、DBSCAN、Density Peaks聚类(局部密度聚类)、层次聚类、谱聚类。


若按照聚类的方式可划分成三类:第一类是类似于K-means、DBSCAN、Density Peaks聚类(局部密度聚类)的依据密度的聚类方式; 第二种是类似于层次聚类的依据树状结构的聚类方式;第三种是类似于谱聚类的依据图谱结构的聚类方式。 


一、DBSCAN聚类

定义:DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,DBSCAN算法将“簇”定义为密度相连的点的最大集合

1、DBSCAN中依照密度,对样本点的划分

  • 核心点:在半径r区域内,含有超过MinPts数目(最小数目)的点,称为核心点;

  • 边界点:在半径r区域内,点的数量小于MinPts数目,但是是核心点的直接邻居;

  • 噪声点:既不是核心点也不是边界点的点

依照上图以及三种点的定义,可以得到:噪声点是不会被聚类纳入的点,边界点与核心点组成聚类的“簇”。

2.基本概念

  • 直接密度可达:在给定一个对象集合D,如果p在q的r领域内,且q是一个核心点对象,则称对象p从对象q出发时是直接密度可达的

  • 密度可达:在给定对象集合D中,如果存在一个对象链q–>e–>a–>k–>l–>p,任意相邻两个对象间都是直接密度可达的,则称对象p是对象q关于r邻域内、MinPts数目下,是密度可达的;

  • 密度相连:如果在对象集合D中存在一个对象O,使得对象p和q都是从O关于r邻域内、MinPts数目下,是密度相连的。

核心点能够连通(密度可达),它们构成的以r为半径的圆形邻域相互连接或重叠,这些连通的核心点及其所处的邻域内的全部点构成一个簇。

DBSCAN聚类算法效果展示如下图: 




3、DBSCAN聚类算法优缺点


优点:基于密度定义,可以对抗噪声,能处理任意形状和大小的簇

缺点:当簇的密度变化太大时候,聚类得到的结果会不理想;对于高维问题,密度定义也是一个比较麻烦的问题。


展开阅读全文

没有更多推荐了,返回首页