11 聚类算法 - 密度聚类 - DBSCAN、MDCA

09 聚类算法 - 层次聚类
10 聚类算法 - 代码案例四 - 层次聚类(BIRCH)算法参数比较

七、密度聚类概述

1、密度聚类方法的指导思想: 只要样本点的密度大于某个阈值,则将该样本添加到最近的簇中。
2、这类算法可以克服基于距离的算法只能发现凸聚类的缺点,可以发现任意形状的聚类,而且对噪声数据不敏感。
3、计算复杂度高,计算量大。

分析

常用算法:
1、具有噪声的基于密度的聚类方法 - DBSCAN
2、密度最大值算法 - MDCA


八、DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise) - 具有噪声的基于密度的聚类方法

一个比较有代表性的基于密度的聚类算法,相比于基于划分的聚类方法和层次聚类方法,DBSCAN算法将簇定义为密度相连的点的最大集合,能够将足够高密度的区域划分为簇,并且在具有噪声的空间数据商能够发现任意形状的簇。

DBSCAN算法的核心思想是:用一个点的ε邻域内的邻居点数衡量该点所在空间的密度,该算法可以找出形状不规则的cluster,而且聚类的时候事先不需要给定cluster的数量。


DBSCAN算法基本概念 (一) :

ε邻域(ε neighborhood,也称为Eps):给定对象在半径ε内的区域

密度(density):ε邻域中x的密度,是一个整数值,依赖于半径ε

MinPts定义核心点时的阈值,也简记为M

核心点(core point):如果p(x)>=M,那么称x为X的核心点;记由X中所有核心点构成的集合为Xc,并记Xnc=X\Xc表示由X中所有非核心点构成的集合。直白来讲,核心点对应于稠密区域内部的点。


DBSCAN算法基本概念 (二) :

边界点(border point): 如果非核心点x的ε邻域中存在核心点,那么认为x为X的边界点。由X中所有的边界点构成的集合为Xbd。直白来将,边界点对应稠密区域边缘的点:

噪音点(noise point):集合中除了边界点和核心点之外的点都是噪音点,所有噪音点组成的集合叫做Xnoi;直白来讲,噪音点对应稀疏区域的点。

分析 - 概念二

DBSCAN算法基本概念 (三) :

直接密度可达(directly density-reachable):给定一个对象集合X,如果y是在x的ε邻域内,而且x是一个核心对象,可以说对象y从对象x出发是直接密度可达的。

密度可达(density-reachable):如果存在一个对象链p1,p2,..pm,如果满足pi+1是从pi直接密度可达的,那么称pm是从p1密度可达的。

密度相连(density-connected):在集合X中,如果存在一个对象o,使得对象x和y是从o关于ε和m密度可达的,那么对象x和y是关于ε和m密度相连的。

分析 - 概念三

DBSCAN算法基本概念 (四) :

簇(cluster):一个基于密度的簇是最大的密度相连对象的集合C;满足以下两个条件:
1、Maximality:若x属于C,而且y是从x密度可达的,那么y也属于C。
2、Connectivity:若x属于C,y也属于C,则x和y是密度相连。


九、DBSCAN算法流程

算法流程:
1、如果一个点x的ε邻域包含多余m个对象,则创建一个x作为核心对象的新簇;
2、寻找并合并核心对象直接密度可达的对象;
3、没有新点可以更新簇的时候,算法结束。

算法特征描述:
1、每个簇至少包含一个核心对象。
2、非核心对象可以是簇的一部分,构成簇的边缘。
3、包含过少对象的簇被认为是噪声。

看上图,顺便回顾知识点:
A->B: 密度可达。
B->A: 密度相连。(B->A走不过去)
A->A附近的点:直接密度可达。
所以只要密度可达,必然密度相连。但是密度相连不一定能推出密度可达。

上图中,只要A和A附近的点直接密度可达,就可以归为一类。所以红点之间可以形成一个簇。
此外,B和C点都与A点密度相连,所以能可以归入这个簇。

所以构建算法的思路是:先找核心点,然后再把边界找到。将核心点和边界点归入一个簇。


DBSCAN算法优缺点:

优点:
1、不需要事先给定cluster的数目。
2、可以发现任意形状的cluster。
3、能够找出数据中的噪音,且对噪音不敏感。
4、算法只需要两个输入参数。
5、聚类结果几乎不依赖节点的遍历顺序。

缺点:
1、DBSCAN算法聚类效果依赖距离公式的选取,最常用的距离公式为欧几里得距离。但是对于高维数据,由于维数太多,距离的度量已变得不是那么重要。维度灾难 02 聚类算法 - 相似度距离公式、维度灾难

2、DBSCAN算法不适合数据集中密度差异很小的情况。

M=4,形成了2个聚簇分类

十、密度最大值聚类算法(MDCA)

MDCA(Maximum Density Clustering Application)算法基于密度的思想引入划分聚类中,使用密度而不是初始点作为考察簇归属情况的依据,能够自动确定簇数量并发现任意形状的簇;另外MDCA一般不保留噪声,因此也避免了阈值选择不当情况下造成的对象丢弃情况。

MDCA算法的基本思路是寻找最高密度的对象和它所在的稠密区域;MDCA算法在原理上来讲,和密度的定义没有关系,采用任意一种密度定义公式均可,一般情况下采用DBSCAN算法中的密度定义方式。


MDCA概念 (一) :

最大密度点:

有序序列: 根据所有对象与pmax的距离对数据重新排序:

密度阈值density0;当节点的密度值大于密度阈值的时候,认为该节点属于一个比较固定的簇,在第一次构建基本簇的时候,就将这些节点添加到对应簇中,如果小于这个值的时候,暂时认为该节点为噪声节。

分析 - MDCA概念一

MDCA概念 (二) :

簇间距离:对于两个簇C1和C2之间的距离,采用两个簇中最近两个节点之间的距离作为簇间距离。

聚簇距离阈值dist0:当两个簇的簇间距离小于给定阈值的时候,这两个簇的结果数据会进行合并操作。

M值:初始簇中最多数据样本个数。


MDCA算法聚类过程步骤如下:

一、将数据集划分为基本簇。
1、对数据集X选取最大密度点Pmax,形成以最大密度点为核心的新簇Ci,按照距离排序计算出序列Spmax,对序列的前M个样本数据进行循环判断,如果节点的密度大于等于density0,那么将当前节点添加Ci中;
2、循环处理剩下的数据集X,选择最大密度点Pmax,并构建基本簇Ci+1,直到X中剩余的样本数据的密度均小于density0

二、使用凝聚层次聚类的思想,合并较近的基本簇,得到最终的簇划分。
在所有簇中选择距离最近的两个簇进行合并,合并要求是:簇间距小于等于dist0,如果所有簇中没有簇间距小于dist0的时候,结束合并操作。

三、处理剩余节点,归入最近的簇。
最常用、最简单的方式是:将剩余样本对象归入到最近的簇。

分析 - MDCA算法聚类过程步骤

12 聚类算法 - 代码案例五 - 密度聚类(DBSCAN)算法案例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容