dbscan算法中 参数的意义_DBSCAN算法及sklearn实现

基本概念:(Density-Based Spatial Clustering of Application with Noiso)

1.核心对象:

若某个点的密度达到算法设定的阈值则其为核心点。(即r领域内的点数量不小于minPts)

2.ε-领域的距离阈值:

设定的半径r

3.直接密度可达:

若某点p在点q的r领域内,且q是核心点则p-q直接密度可达

4.密度可达:

若有一个点的序列q0、q1、 ...qk,对任意qi-qi-q是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的"传播"。

5.密度相连:

若从某核心点p出发,点q和点k都是密度可达的,则称点q和点k是密度相连的

6.边界点:

属于某一类的非核心点,不能发展下线了

7.直接密度可达:

若某点p在点q的r领域内,且q是核心点则p-q直接密度可达

8.噪声点:

不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的

9.可视化展示:

A:核心对象

B,C:边界点

N:离群点

787af65bf4a666b9a65babb3b816da9b.png

工作流程:

参数D:

输入数据集

参数ε:

指定半径

MinPts:

密度阈值

74731dfe7097e5f9c59739fd6427693b.png

半径ε,可以根据K距离来设定:找突变点

K距离:

给定数据集P={p(i);i=0,1...n},计算点P(i)到集合D的子集S中所有点之间的距离,距离按照从小到大的顺序排序,d(k)就被称为k-距离。

MinPts:

k-距离中的k值,一般取得小一些,多次尝试,这儿有个聚类可视化好玩的网址点击这里,可以感受下,挺好玩的。

优势:

不需要指定簇个数

可以发现任意形状的簇

擅长找到离群点(检测任务)

劣势:

高维数据有些困难(可以做降维)

参数难以选择(参数对结果影响非常大)

Sklearn中效率很慢(数据消减策略)

kmeans-dbcan聚类对比

#beer dataset

importpandas as pd

beer= pd.read_csv('

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值