使用DBScan + Kmeans计算区域集聚和中心点

DBSCAN,英文全写为Density-based spatial clustering of applications with noise ,是在 1996 年由Martin Ester, Hans-Peter Kriegel, Jörg Sander 及 Xiaowei Xu 提出的聚类分析算法, 这个算法是以密度为本的:给定某空间里的一个点集合,这算法能把附近的点分成一组(有很多相邻点的点),并标记出位于低密度区域的局外点(最接近它的点也十分远).

k-平均算法(英文:k-means clustering)源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。k-平均聚类的目的是:把{\displaystyle n}个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准。这个问题将归结为一个把数据空间划分为Voronoi cells的问题。

使用DBScan进行聚类计算

使用K-means进行聚类计算

案例分析

dbscan会剔除噪点,k-means会把任何点都归到了某一个类。

k-means 的中心点不是聚集区域的中心点,而是整个聚类的中心点;DBSCAN 无法找出中心点。

相比 k-means ,DBSCAN 不需要预先声明聚类数量。

DBSCAN 可以找出任何形状的聚类,甚至能找出一个聚类,k-means需要指定集类的个数。

 

要想找出聚集区域并给出准确的中心点,可以使用DBScan分析聚类个数和聚类包含的点,再通过k-means将每个聚类所包含的点计算出中心点。

 

蓝色为聚类1,黑色为聚类2,灰色为噪点。

具体算法的实现代码网上有很多介绍,可以参考。

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)和KMeans都是常用的聚类算法,但它们的思想和应用场景有所不同。 1. 基本思想: DBSCAN是一种基于密度聚类算法,它能够识别任意形状的聚类簇,并且能够在存在噪声的情况下进行聚类DBSCAN将数据点分为三类:核心点(在半径为ε内有超过MinPts个邻居的点)、边界点(在半径为ε内邻居数不足MinPts,但是落在核心点的ε邻域内的点)、噪声点(既不是核心点也不是边界点)。DBSCAN算法的核心思想是:如果一个数据点的密度达到一定阈值,则这个数据点可以被认为是一个簇的一部分。 KMeans是一种基于质心的聚类算法,它的基本思想是:将数据集划分为K个簇,使得簇内的数据点尽量相似,而簇间的数据点尽量不同。KMeans算法的核心思想是:通过不断调整质心位置,将数据点划分到最近的簇中。 2. 聚类结果: DBSCAN算法的聚类结果可以是任意形状的簇,而KMeans算法的聚类结果只能是凸形簇。 3. 参数设置: DBSCAN算法的参数包括邻域半径ε和邻居数MinPts,而KMeans算法的参数只有簇的个数K。 4. 效率: DBSCAN算法的时间复杂度为O(nlogn),而KMeans算法的时间复杂度为O(nK),因此DBSCAN算法通常比KMeans算法更快。 综上所述,DBSCAN和KMeans聚类算法的基本思想、聚类结果、参数设置和效率都有所不同,应根据具体的应用场景来选择合适的聚类算法。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值