三维点云学习(4)2-mean shift & dbscan

三维点云学习(4)2-mean shift & dbscan

mean shift

hill climbing爬山算法

1个圆包含的点尽可能最多点:

step1:随机选取一个点作为radius的圆的中心
step2:把圆中的所有点加起来算means
step3:把新的means作为新的圆的圆心
step4:不断重复step2 to step3,直到圆的圆心不再变化

优劣:
如果点的分布是高斯分布,效果较好,如果分布较散取决于初始化的点

在这里插入图片描述

mean shift步骤

step1.先选一个圆
step2-step3.把圆挪到不再动的地方
step4.重复 1,2,3步N次,不断爬山,把重叠的圆去掉(MMS),剩下多少个圆就有多少个类
step5.nearest-neighbor search对于每个点寻找每个点离 在上步分出的K个圆哪个距离最近,最近则属于那个圆(类)

在这里插入图片描述

mean shift复杂度

在这里插入图片描述

DBSCAN

DBSCAN步骤

Parameters: distance r :半径;min_sample:最小样本;core point:核心点

step1
随机选一个unvisited 的点p,构建以p为圆心,半径为r的圆。
step2
	if  圆里的点 > min_sample:
		yes:认为p是一个核心点,创建新的类 cluster C,goto step3,标记 p 为visited
		no:标记p为一个噪点 and visited
step3
a.以p为圆心,r为半的点,里的所有点,归属于cluster C;
b.并且遍历每个点,去寻找new core point。

eg.new core point的寻找:遍历每个点的过程中国,对点进行Radius NN,
倘若圆中的点>min_sample,可标记为new point point,继续遍历,重复step3,知道出现边界点退出。
step4.
把属于cluster C的点从数据库中剔除,goto step1继续寻找其他类 

在这里插入图片描述
Noise:噪点
Core:核心点
Border:边界点 ,在step3.b遍历点寻找new point core中,出现 圆中的点< min_sample ,可认为该点就是cluster C的边界点
在这里插入图片描述

DBSCAN复杂度,优劣

DBSCAN高密度的点会被低密度的点分离
在这里插入图片描述

compare with five clustering method

在这里插入图片描述
Spectral clustering效果最好,耗时长,其次DBSCAN,耗时短
在这里插入图片描述

K-Means和DBSCAN都是聚类算法,但是它们的实现和结果可视化上有一些不同。 K-Means算法将数据点分成具有相似特征的k个簇。它通过计算每个数据点与每个簇中心之间的距离,将数据点分配到最近的簇中心。因此,K-Means的结果是k个簇,每个簇由一个中心点和所有被分配到该簇的数据点组成。K-Means的可视化结果通常是在二维或三维空间中展示,其中每个簇由一个颜色或标记表示。在可视化结果中,我们可以看到数据点是如何被分配到不同的簇中,并且每个簇的中心点如何被计算出来。如果K-Means算法的结果不理想,我们可以通过调整k的值或者使用其他聚类算法来改进结果。 DBSCAN算法是一种基于密度的聚类算法,它可以识别具有高密度区域的簇,并将低密度区域的数据点标记为噪声。DBSCAN算法通过定义半径和最小点数来识别簇。具有至少最小点数的数据点集合被视为簇,并且在半径内的所有数据点都被分配到该簇中。DBSCAN的可视化结果通常是在二维或三维空间中展示,其中每个簇由一个颜色或标记表示,噪声点通常被标记为不同的颜色或标记。在可视化结果中,我们可以看到具有高密度区域的簇,以及标记为噪声的低密度区域。如果DBSCAN算法的结果不理想,我们可以通过调整半径和最小点数来改进结果。 总的来说,K-Means和DBSCAN算法都是广泛使用的聚类算法,它们的可视化结果可以帮助我们理解数据点之间的关系,并且可以通过调整算法参数来优化结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值