一、算法思想
- 对于每一个样本,算法会计算在一段小距离ε(epsilon)内的圆中有多少个其他样本,这个圆形区域叫做样本的 ε-neighborhood
- 如果一个样本有最少
min_samples
个样本在 ε-neighborhood中(包括此样本本身),就认为这个样本是core instance(核心样本)In other words, core instances are those that are located in dense regions. - 在一个ε-neighborhood中的所有样本属于同一个cluster,在一个neighborhood中可能会有好几个core instance,因此一系列的core instances 有组成了一个单独的cluster
- 任何一个样本只要它不是core instance或者在他的neighborhood内没有core instance 就认为他是异常点
这个算法在各个簇有一定的密度时效果很好。通过低密度区域来区隔各个簇
二、sklearn例子
2.1 Basic
from sklearn.cluster import DBSCAN
fr