DBSCAN聚类
基于密度的聚类与噪声检测. 根据密度对数据点进行分组,自动检测聚类数量,并识别不属于任何聚类的噪声/离群点。. DBSCAN将紧密聚集的数据点分组,将低密度区域的点标记为异常值(噪声)。与K-Means不同,不需要预先指定聚类数,可以发现任意形状的聚类。
根据密度对数据点进行分组,自动检测聚类数量,并识别不属于任何聚类的噪声/离群点。
什么是DBSCAN聚类?
DBSCAN将紧密聚集的数据点分组,将低密度区域的点标记为异常值(噪声)。与K-Means不同,不需要预先指定聚类数,可以发现任意形状的聚类。
两个参数:epsilon(eps)——视为邻居的最大距离;最小样本(minSamples)——形成密集区域所需的最小点数。点被分为核心、边界和噪声。
DBSCAN对不同密度的聚类、非凸形状和大量噪声的数据有效。但当聚类密度差异很大时效果欠佳。
Formula: 核心点: |N_eps(p)| ≥ minSamples 边界点: |N_eps(p)| < minSamples 但在某核心点的 eps 范围内 噪声点: 既非核心也非边界 N_eps(p) = {q : dist(p,q) ≤ eps}
计算示例
点:(1,1), (1.1,1.2), (0.9,0.8), (5,5), (5.1,5.2), (4.9,4.8), (10,10)。eps=1.0, minSamples=2。聚类1:3点,聚类2:3点,噪声:(10,10)。
何时使用此计算器
- 数据科学家进行异常检测,需要将离群点显式标识为独立于簇之外的噪声点
- 空间分析师对地理数据(如犯罪热点、配送地点)聚类,其中簇形状不规则且分组数量未知
- 研究人员分析天然含噪声的数据,强行将每个点归入簇(如 K-Means 所做)会扭曲分析结果
- 工程师对呈非球形模式(环形、月牙形、细长形)的传感器读数分组,这类模式是 K-Means 无法检测的
常见错误
- epsilon 设置过大——会把彼此独立的簇合并为一个;应使用 k-距离图,在曲线拐点处确定合适的 eps 值
- epsilon 设置过小——会把大多数点判为噪声,只找到极少甚至没有簇;若大部分数据被标为噪声,eps 很可能过小
- 聚类前未对特征缩放——DBSCAN 使用欧氏距离,尺度较大的特征会主导距离计算;应先对所有特征标准化
- 在簇密度差异很大时使用 DBSCAN——单一 eps 值无法同时兼顾稠密簇与稀疏簇;可改用 HDBSCAN 或 OPTICS
如何解读结果
- 噪声点(标记为离群点)是位于低密度区域的数据点——它们可能是真实异常、测量误差,或簇与簇之间的过渡数据
- 簇的数量由数据和参数自动决定,无需事先指定——这是相对 K-Means 的一个关键优势
- 若算法只找到一个簇或将所有点判为噪声,请调整 eps 和 minSamples——参数需要调优以匹配数据的密度结构
相关标准与参考文献
- Ester, Kriegel, Sander & Xu (1996), 'A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise', Proc. KDD-96 — DBSCAN的原始论文
- Schubert, Sander, Ester, Kriegel & Xu (2017), 'DBSCAN Revisited, Revisited', ACM Transactions on Database Systems — 关于参数选择与k距离启发式方法的现代指南
常见问题
如何选择eps和minSamples?
minSamples:通常为2×维数。eps:绘制k近邻距离曲线,在'拐点'处选择。
何时使用DBSCAN而非K-Means?
不知道聚类数、形状不规则或有大量噪声时使用DBSCAN。K-Means对球形聚类更快。