前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+sklearn使用DBSCAN聚类算法案例一则

Python+sklearn使用DBSCAN聚类算法案例一则

作者头像
Python小屋屋主
发布2018-04-16 16:08:55
2.8K0
发布2018-04-16 16:08:55
举报
文章被收录于专栏:Python小屋Python小屋

DBSCAN聚类算法概述:

  • DBSCAN属于密度聚类算法,把类定义为密度相连对象的最大集合,通过在样本空间中不断搜索最大集合完成聚类。
  • DBSCAN能够在带有噪点的样本空间中发现任意形状的聚类并排除噪点。
  • DBSCAN算法不需要预先指定聚类数量,但对用户设定的参数非常敏感。
  • 当空间聚类的密度不均匀、聚类间距差相差很大时,聚类质量较差。

DBSCAN算法基本概念:

  • 核心对象:如果给定对象的半径eps邻域内样本数量超过阈值min_samples,则称为核心对象。
  • 边界对象:在半径eps内点的数量小于min_samples,但是落在核心点的邻域内。
  • 噪声对象:既不是核心对象也不是边界对象的样本。
  • 直接密度可达:如果对象q在核心对象p的eps邻域内,则称q从p出发是直接密度可达的。
  • 密度可达:集合中的对象链p1、p2、p3、...、pn,如果每个对象pi+1从pi出发都是直接密度可达的,则称pn从p1出发是密度可达的。
  • 密度相连:集合中如果存在对象o使得对象p和q从o出发都是密度可达的,则称对象p和q是互相密度相连的。

DBSCAN聚类算法工作过程:

1)定义邻域半径eps和样本数量阈值min_samples。 2)从样本空间中抽取一个尚未访问过的样本p。 3)如果样本p是核心对象,进入第4)步;否则返回第2)步。 4)找出样本p出发的所有密度可达对象,构成一个聚类Cp(该聚类的边界对象都是非核心对象),并标记这些对象为已访问。 5)如果全部样本都已访问,算法结束;否则返回第2)步。

Python+sklearn使用DBSCAN聚类算法参考代码:

聚类结果图一:

聚类结果图二:

聚类结果图三:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档