1. 是什么
DBSCAN(Density-Based Spatial Clustering of Application with Noise),是一个典型的基于密度的聚类算法。目标是寻找被低密度区域分离的高密度区域,通俗点说就是把扎堆的点(高密度)找出来,而点很少很稀疏的地方(低密度)就作为分割区域。
2. 关键概念
1.与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的聚类,这对于带有噪音点的数据起着重要的作用。
2.所有的数据被分为三类点:
核心点。在半径eps内含有超过min_samples数目的点。
边界点。在半径eps内点的数量小于min_samples,但是落在核心点的邻域内,也就是说该点不是核心点,但是与其他核心点的距离小于eps。
噪音点。既不是核心点也不是边界点的点,该类点的周围数据点非常少。
3. 怎么用
DBSCAN(Density-Based Spatial Clustering of Application with Noise),是一个典型的基于密度的聚类算法。目标是寻找被低密度区域分离的高密度区域,通俗点说就是把扎堆的点(高密度)找出来,而点很少很稀疏的地方(低密度)就作为分割区域。
2. 关键概念
1.与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的聚类,这对于带有噪音点的数据起着重要的作用。
2.所有的数据被分为三类点:
核心点。在半径eps内含有超过min_samples数目的点。
边界点。在半径eps内点的数量小于min_samples,但是落在核心点的邻域内,也就是说该点不是核心点,但是与其他核心点的距离小于eps。
噪音点。既不是核心点也不是边界点的点,该类点的周围数据点非常少。
3. 怎么用
sci-kit learn提供了相应的类和API,非常方便简单。
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
最简单的应用就是一句话:
from sklearn.cluster import DBSCAN
clf = DBSCAN(eps=0.3, min_samples=10).fi