dbscan算法python实现_无监督聚类算法 DBSCAN 原理及 Python 代码实现

定义DBSCAN 全称为 Density-Based Spatial Clustering of Applications with Noise,一种密度聚类算法。$\epsilon-领域$:指以某个对象为中心,$\epsilon$ 为半径的空间。其中 $\epsilon>0$ 为半径值。$min\_pts$:密度阈值,用于定义核心对象。核心对象:某个对象的 $\epsilon-领域$ 中对...
摘要由CSDN通过智能技术生成

定义

DBSCAN 全称为 Density-Based Spatial Clustering of Applications with Noise,一种密度聚类算法。

$\epsilon-领域$:指以某个对象为中心,$\epsilon$ 为半径的空间。其中 $\epsilon>0$ 为半径值。

$min\_pts$:密度阈值,用于定义核心对象。

核心对象:某个对象的 $\epsilon-领域$ 中对象数量至少包含 $min\_pts$ 个对象。

密度直达:在某个对象 $x$ 的 $\epsilon-领域$ 任意对象,为 $x$ 的密度直达对象。

密度可达:若存在序列 $x_1, x_2, .., x_n$,其中 $x_i 为 x_{i-1}$ 的密度直达对象,则称 $x_1$ 与 $x_n$ 密度可达。

密度相连:若对象 $x_1, x_2$ 均由对象 $x_k$ 密度可达,则称 $x_1, x_2$ 密度相连。

目标

基于密度可达关系,分别找出所有密度相连样本集合。

核心思想

输入:样本、$eps$(半径)、$min\_pts$

遍历样本,找出所有核心对象

任意选择一个核心对象,找到该对象所有密度可达的对象,并将其归为一类

从剩余的核心对象中移除以归类的对象

重复步骤 2 和步骤 3 ,直到所有核心对象都被归类

算法实现

需要使用到的库:numpy

定义欧式距离函数,公式为 $ d(a, b) = \sqrt{ \sum_{i=1}^{n} (a_i - b_i)^2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值