DBScan聚类算法

改算法可以用于实时路况的gps点的去噪,伪码如下:

输入:

E: 对象半径

Minpst: 给定D中E领域以内成为核心点的最小点数

D: 集合

目标:找到多个联通的最大相互密度直接可达的点的集合

repeat:

  1. 判断点是否是核心点
  2. 记录该点的直接密度可达点

util 所有输入点完成遍历

repeat:

  1. 将该点的相互直接密度可达的点加入同一组

util 所有核心对象的领域都完成遍历

该算法的好处是:

  1. 能用于去噪
  2. 发现任意形状的聚类
  3. 不需要事先知道聚类的个数

缺陷:

  1. 需要预先定义 对象半径和最小距离

如何找到这样的E呢?一种做法是遍历输入点根据Minpts找到最大的E值,再根据每个点的E值,找到一个变化最快的点(求导)。用改点的E作为最终的E。

参考:

  1. http://baike.baidu.com/view/3063170.htm#5
  2. http://xccds1977.blogspot.com/2012/06/r.html
  3. http://en.wikipedia.org/wiki/DBSCAN#Algorithm
  4. http://en.wikipedia.org/wiki/OPTICS_algorithm
  5. http://en.wikipedia.org/wiki/Hierarchical_clustering
  6. CN200910237940-异常车速数据的识别方法和装置
时间: 2024-12-17 20:55:29

DBScan聚类算法的相关文章

DBScan聚类算法原理与实现整理

百度百科中的描述 算法描述: (1)检测数据库中尚未检查过的对象p,如果p为被处理(归为某个簇或者标记为噪声),则检查其邻域,若包含的对象数不小于minPts,建立新簇C,将其中的所有点加入候选集N: (2)对候选集N 中所有尚未被处理的对象q,检查其邻域,若至少包含minPts个对象,则将这些对象加入N:如果q 未归入任何一个簇,则将q 加入C: (3)重复步骤2),继续检查N 中未处理的对象,当前候选集N为空: (4)重复步骤1)~3),直到所有对象都归入了某个簇或标记为噪声. 伪代码: 输

5.无监督学习-DBSCAN聚类算法及应用

DBSCAN方法及应用 1.DBSCAN密度聚类简介 DBSCAN 算法是一种基于密度的聚类算法: 1.聚类的时候不需要预先指定簇的个数 2.最终的簇的个数不确定DBSCAN算法将数据点分为三类: 1.核心点:在半径Eps内含有超过MinPts数目的点. 2.边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点. 3.噪音点:既不是核心点也不是边界点的点. 如下图所示:图中黄色的点为边界点,因为在半径Eps内,它领域内的点不超过MinPts个,我们这里设置的MinPts为5

DBSCAN密度聚类算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法,和K-Means,BIRCH这些一般只适用于凸样本集的聚类相比,DBSCAN既可以适用于凸样本集,也可以适用于非凸样本集.下面我们就对DBSCAN算法的原理做一个总结. 1. 密度聚类原理 DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定.同一类别的样本,他们

用scikit-learn学习DBSCAN聚类

在DBSCAN密度聚类算法中,我们对DBSCAN聚类算法的原理做了总结,本文就对如何用scikit-learn来学习DBSCAN聚类做一个总结,重点讲述参数的意义和需要调参的参数. 1. scikit-learn中的DBSCAN类 在scikit-learn中,DBSCAN算法类为sklearn.cluster.DBSCAN.要熟练的掌握用DBSCAN类来聚类,除了对DBSCAN本身的原理有较深的理解以外,还要对最近邻的思想有一定的理解.集合这两者,就可以玩转DBSCAN了. 2. DBSCAN

机器学习——聚类算法

本文主要讲解的聚类算法有:k均值算法.均值漂移算法.凝聚层次算法.DBSCAN密度聚类算法,还介绍了聚类算法性能指标——轮廓系数. 聚类(cluster)与分类(class)不同,分类是有监督学习模型,聚类属于无监督学习模型.聚类讲究使用一些算法把样本划分为n个群落.一般情况下,这种算法都需要计算欧几里得距离. $$P(x_1) - Q(x_2): |x_1-x_2| = \sqrt{(x_1-x_2)^2} \\P(x_1,y_1) - Q(x_2,y_2): \sqrt{(x_1-x_2)^

机器学习笔记(九)聚类算法及实践(K-Means,DBSCAN,DPEAK,Spectral_Clustering)

这一周学校的事情比较多所以拖了几天,这回我们来讲一讲聚类算法哈. 首先,我们知道,主要的机器学习方法分为监督学习和无监督学习.监督学习主要是指我们已经给出了数据和分类,基于这些我们训练我们的分类器以期达到比较好的分类效果,比如我们前面讲的Logistic回归啊,决策树啊,SVM啊都是监督学习模型.无监督学习就是指我们就只有数据,没有分类结果,然后根据数据进行建模能够给出哪些样本是属于一类的一个过程,通常我们就称之为聚类. 今天我主要介绍以下几种最常见的聚类算法,包括K-Means算法,基于密度的

聚类算法:K均值、凝聚层次聚类和DBSCAN

聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇).其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的.组内相似性越大,组间差别越大,聚类就越好. 先介绍下聚类的不同类型,通常有以下几种: (1)层次的与划分的:如果允许簇具有子簇,则我们得到一个层次聚类.层次聚类是嵌套簇的集族,组织成一棵树.划分聚类简单地将数据对象划分成不重叠的子集(簇),使得每个数据对象恰在一个子集中. (2)互斥的.重叠的与模糊的:互斥的指每个对象都指派到单个簇.重叠的或是模糊聚类用来反

【机器学习】DBSCAN Algorithms基于密度的聚类算法

一.算法思想: DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法.与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类. DBSCAN中的几个定义: Ε邻域:给定对象半径为Ε内的区域称为该对象的Ε邻域: 核心对象:如果给定对象Ε领域内的样本点数大于等于MinPts,则称该对象为核心对象:

【转】常用聚类算法(一) DBSCAN算法

原文链接:http://www.cnblogs.com/chaosimple/p/3164775.html#undefined 1.DBSCAN简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法.该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合. 该算法利用基于密度的聚类的概念,即要求