之前我的文章提到了k-means算法https://blog.csdn.net/qq_41663800/article/details/89879604,这篇文章就是另一个很经典的算法,DBSCAN算法
首先谈一谈两种聚类方法的区别吧,我也是初学者,说的不好还请见谅
1.DBSCAN算法聚类是要把噪声剔除的,而k-means算法只是把噪声数据分到了最近的簇里
2.k-means算法是把数据分成了k个簇,而DBSCAN算法聚类不指定簇的个数,最终的簇的个数是不定的
下面我来介绍一下DBSCAN算法
DBSCAN算法是一种基于密度的聚类算法
- 聚类的时候不需要预先指定簇的个数
- 最终的簇的个数不定
DBSCAN算法将数据点分为三类
- 核心点:在半径Eps内含有超过MinPts数目的点
- 边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内
- 噪声点:既不是核心点也不是边界点
DBSCAN算法流程
1.将所有点标记为核心点。边界点或者噪声点
2.删除噪声点
3.为距离在Eps之内的所有的核心点之间赋予一条边
4.每组立案庭的核心点形成一个簇
5.将每个边界点指派到一个与之关联的核心点的簇中(哪一个核心点的半径之内)
DBACAN主要参数
eps:两个样本被看作邻居节点的最大距离
min_samples:簇的样本数
metric:距离计算方式
例:sklearn.cluster.DBSCAN(eps=0.5,min_samples=5,metric=‘euclidean’)