DBSCAN
DBSCAN是一种密度聚类算法,它基于一组参数( ϵ \epsilon ϵ,MinPts)来刻画样本分布的紧密程度。
1、算法原理
如上图所示,DBSCAN的有两个非常重要的参数
ϵ
\epsilon
ϵ和MinPts;图中
“归同类"的意思是"如果该范围内有样本已经归类,则这些样本都属于该类;否则就创建一个新类别,这些样本都属于这个新类别”。
ϵ
\epsilon
ϵ:指的是范围半径;
M
i
n
P
t
s
MinPts
MinPts:指的是聚为一类的最小样本数;
2、sklearn中的DBSCAN
from sklearn import cluster
dbscan = cluster.DBSCAN(eps=1.2, min_samples=10)
clustering_labels = dbscan.fit(train_data)
3、DBSCAN的优缺点
如图一、四,DBSCAN对离散型数据的聚类效果并不好;图五效果不好的原因是参数
ϵ
\epsilon
ϵ的值太大了,只要
ϵ
\epsilon
ϵ的值设置好了,图五也能很好地聚类;DBSCAN能识别噪音,可以很好地不受噪音的影响。