当前位置:   article > 正文

不讲一点数学知识,步步图解条理清晰,手把手带你理解DBSCAN算法_dbscan算法流程

dbscan算法流程

不讲一点数学知识,步步图解条理清晰,手把手带你理解DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性基于密度的聚类算法,在机器学习领域也是占有一席之地。

他的基本思想就是根据数据的分布密度,按照我们给定的两个必要的参数,半径参数和最少点个数参数,来基于密度的分布遍历数据集中的所有点,为每个数据给出相应的类别。

一、算法流程

具体的算法流程首先要设定两个超参数

  • eps:搜索半径,算法会按照这个搜索半径搜索在该半径范围内的所有数据
  • minPts:在搜索半径内的数据的个数

算法会根据这两个参数,搜索分别在半径内的所有数据,如果数据的个数大于minPts,则认为是一类,否则不是,继续遍历下一个点

首先随机选择一个点作为起始点遍历
在这里插入图片描述

图中,所有的黑色点就是数据,然后随机选择一个进行遍历,遍历后的点会标记,然后记录搜索半径内的数据个数,看是否符合minPts,然后接着遍历下一个点
在这里插入图片描述

重复步骤2,直到所有的点都遍历完毕
在这里插入图片描述

直到所有的点遍历结束,DBSCAN算法执行完毕
在这里插入图片描述

点画的太多,坑害了自己,大家就觉得已经遍历完成了就好

在遍历完成之后那么应该怎么才能给定相应的类别呢??

二、类别划定

这个时候就要引入几个将为重要的概念

核心对象:就是作为圆心出现的数据

直接密度可达:圆内的点到圆心称为直接密度可达

密度可达:如果q到Q直接密度可达,Q到P直接密度可达,则q到p密度可达

密度相连:类似于密度可达,只是非核心点属于密度相连
在这里插入图片描述

数据点的类型分为三类:

核心点:当了圆的圆心

边界点:没有当圆心,但是在符合簇内

噪声点:不属于任何一类

如果设置minPts=4,那么下图的三个类型的数据如图
在这里插入图片描述

在划分簇的时候

将直接密度可达、密度可达、密度相连的数据划分为同一簇,就是同一个类型

DBSCAN中关键点

算法流程和数据类型以及数据关系都讲述完了,但是还有一个很容易忽视的点,就是半径参数eps设置完了之后,其数据间的距离该怎么计算???

距离计算

我们首先能想到的肯定就是初中所学的不知道叫什么的距离计算方式,给定两个点(x1,y1)和(x2,y2),它俩的距离就是开根号(x1-x2)2+(y1-y2)2。这个在我们初中的坐标系距离计算中经常用到,其实这个距离计算方式就是欧式距离

1、欧氏距离

用于两个数据点之间的直线距离

2、余弦距离

简单来说,余弦相似度,就是计算两个向量间的夹角的余弦值,余弦距离的取值范围是[0, 2]

3、Hausdorff距离

测定数据集之间的距离

4、明可夫斯基距离

不同的n代表不同的距离方程,n=1时就是曼哈顿距离;n=2时就是欧氏距离;n>2时就是Hausdorff距离

距离计算方式的选择也是数据之间相似性度量的重要凭证,要根据不同的数据集特点选择合适的距离计算方式

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号