密度聚类DBSCAN详解附Python代码

如题所述

由于复制粘贴会损失图片dpi请移步公众号原文观看获得更好的观感效果

DBSCAN是一种密度聚类算法,能够将数据集中的样本点分成不同簇,同时识别噪声点。此算法无需预先指定簇的数量,而是通过数据点的密度来确定簇的形状和数量。

1. DBSCAN详解

1.1 DBSCAN原理

1.2 DBSCAN数据点类别

基于以上定义,DBSCAN将数据点分为三类:

1.3 DBSCAN优势

1.4 DBSCAN劣势

2. Python详解

2.1 数据生成

生成一个环形数据集并在左上角添加更多数据,为DBSCAN算法做铺垫

2.2 DBSCAN实现

根据可视化可知,数据集被聚类为4个簇,其中一类为噪声点。这也是DBSCAN的另一个作用——异常值检验。DBSCAN将那些不属于任何聚类簇的数据点视为噪声点,这些噪声点就是异常值,因为它们不符合在高密度区域中形成聚类的定义

2.3 删除噪声点可视化

2.4 K-means聚类

使用K-means聚类算法对同一个数据集进行聚类,聚为3个簇

2.5 K-means和DBSCAN聚类对比

可以发现两种算法的聚类结果存在显著性差异,这与两种算法的中心思想相关。K-means是一种基于质心的聚类算法,通过最小化簇内方差将数据分为球形簇;而DBSCAN是一种基于密度的聚类算法,通过发现高密度区域实现对不规则形状和不同密度的簇的聚类,并自然地识别噪声点。其中,K-means需要指定聚类簇数且为最重要参数,而DBSCAN不需要。DBSCAN最重要的参数为半径和最小样本点数目

3. 往期推荐

如果你对类似于这样的文章感兴趣。
温馨提示:答案为网友推荐,仅供参考
相似回答