数据仓库与数据挖掘——DBSCAN

  一、基本介绍

        DBSCAN算法是基于一组邻域参数(ε,MinPts)来描述样本分布的紧密程度,相比于基于划分的聚类方法和层次聚类方法,DBSCAN算法将簇定义为密度相连的样本的最大集合,能够将密度足够高的区域划分为簇,不需要给定簇的数量,并且可以在存在噪声的空间数据集中发现任意形状的簇。

二、核心思想

        DBSCAN的簇里面可以有一个或者多个核心对象。如果只有一个核心对象,则簇里其他的非核心对象样本都在这个核心对象的ϵ-邻域里;如果有多个核心对象,则簇里的任意一个核心对象的ϵ-邻域中一定有一个其他的核心对象,否则这两个核心对象无法密度可达。这些核心对象的ϵ-邻域里所有的样本的集合组成的一个DBSCAN聚类簇。

三、原理演示

数据仓库与数据挖掘——DBSCAN_第1张图片

        给出样本点和邻域参数(ε,MinPts)

数据仓库与数据挖掘——DBSCAN_第2张图片

        选出核心对象

数据仓库与数据挖掘——DBSCAN_第3张图片

        将每个核心点与其直接密度可达点聚成一类

数据仓库与数据挖掘——DBSCAN_第4张图片

 数据仓库与数据挖掘——DBSCAN_第5张图片

数据仓库与数据挖掘——DBSCAN_第6张图片数据仓库与数据挖掘——DBSCAN_第7张图片数据仓库与数据挖掘——DBSCAN_第8张图片

        最后进行簇合并,直到不产生新的簇

四、算法流程图

数据仓库与数据挖掘——DBSCAN_第9张图片

五、关键源码展示

1、导入数据

数据仓库与数据挖掘——DBSCAN_第10张图片

2、生成核心对象以及每个核心对象一次直接密度可达点形成的簇

3、簇合并

数据仓库与数据挖掘——DBSCAN_第11张图片

4、输出聚类情况,绘制散点图

数据仓库与数据挖掘——DBSCAN_第12张图片

数据仓库与数据挖掘——DBSCAN_第13张图片

六、拓展实验

数据仓库与数据挖掘——DBSCAN_第14张图片

你可能感兴趣的:(算法,python,算法)