浅尝辄止_数学建模(笔记__基于密度的聚类算法DBSCAN算法)

一、DBSCAN算法

DBSCAN是一种基于密度的聚类算法,聚类前不需要预先指定聚类的个数,生成的簇的个数不定(和数据有关)。该算法利用基于密度的聚类的概念,即要求聚类空间中的一定区域内所包含对象(点或其他空间对象)的数目不小于某一给定阈值。该方法能在具有噪声的空间数据库中发现任意形状的簇,可以将密度足够大的相邻区域连接,能有效处理异常数据。


1.基本概念

DBSCAN算法将数据点分为三类:

  1. 核心点:在半径Eps内含有不小于MinPts数目的点(红色点)
  2. 边界点:在半径Eps内,点的数量小于Minpts,但是落在核心点的领域内(黄色点)
  3. 噪音点:既不是核心点也不是边界点的点(蓝色点) 在这里插入图片描述

2.Matlab软件代码(DBSCAN算法)

Matlab官网推荐下载的代码:DBSCAN Clustering Algorithm
 
输出结果中,IDX表示聚类结果,其中0表示是孤立点


3.DBSCAN算法的优点

  1. 基于密度定义,能处理任意形状和大小的簇;
  2. 可以在聚类的同时发现异常点;
  3. 与K-means算法比起来,不需要输入初始的聚类个数

4.DBSCAN算法的缺点

  1. 对输入的参数Eps和Minpts敏感,确定参数困难;
  2. 由于DBSCAN算法中,变量Eps和Minpts是全局唯一的,当聚类的密度不均匀时、聚类距离相差很大时,聚类的效果差;
  3. 当数据量大时,计算密度单元的计算复杂度大。

二、几类聚类算法的使用建议

  1. 只有两个指标,且做出散点图后发现数据表现得很“DBSCAN”,这时使用DNSCAN进行聚类
  2. 大部分情况下,使用系统聚类的方法;K-means也可以使用,但是此时在论文中可能无话可说。

猜你喜欢

转载自blog.csdn.net/ICISTRUE/article/details/108357102
今日推荐