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

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聚类算法参考代码:

聚类结果图一:

聚类结果图二:

聚类结果图三:

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2018-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

机器学习实战 | 数据探索

数据的输入质量决定了输出的最后结果,数据的探索、预处理、特征选择、降维等特征工程占了项目的70%的时间。那么如果我们确定了商业目的,该如何一步一步渐进式进行特征...

3605
来自专栏GIS讲堂

sde用sql实现erase

用原始数据data1和合并计算后的结果进行差异计算,所得的结果即为另一部分所要结果。

883
来自专栏算法channel

机器学习|聚类算法之DBSCAN

DBSCAN,全称:Density-Based Spatial Clustering of Applications with Noise,是一个比较有代表性的...

4169
来自专栏量化投资与机器学习

从Seq2seq到Attention模型到Self Attention(二)

系列一介绍了Seq2seq和 Attention model。这篇文章将重点摆在Google於2017年发表论文“Attention is all you ne...

4025
来自专栏PPV课数据科学社区

缺失值的处理方法

对于数据挖掘和分析人员来说,数据准备(Data Preparation,包括数据的抽取、清洗、转换和集成)常常占据了70%左右的工作量。而在数据准备的过程中...

4639
来自专栏专知

【干货】一文读懂什么是变分自编码器

【导读】本文是工程师Irhum Shafkat的一篇博文,主要梳理了变分自编码器的相关知识。我们知道,变分自编码器是一种生成模型,在文本生成、图像风格迁移等诸多...

2K11
来自专栏企鹅号快讯

K近邻算法的Python实现

作者:黄耀鹏人工智能爱好者,一名数据科学研究者及科普写作者 知乎专栏:https://zhuanlan.zhihu.com/data-science-medit...

3959
来自专栏磐创AI技术团队的专栏

TensorFlow系列专题(十一):RNN的应用及注意力模型

目前循环神经网络已经被应用在了很多领域,诸如语音识别(ASR)、语音合成(TTS)、聊天机器人、机器翻译等,近两年在自然语言处理的分词、词性标注等工作的研究中,...

821

如何实现自然语言处理的集束搜索解码器

自然语言处理任务(例如字幕生成和机器翻译)涉及生成单词序列。

3918
来自专栏小小挖掘机

算法面试太难?反手就是一波面经

八月参加了一些提前批的面试,包括阿里、百度、头条、贝壳、一点资讯等。整理了一些面试题,分享给大家。

2453

扫码关注云+社区