首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找一种聚类3d点的算法,在2d点附近

寻找一种聚类3d点的算法,在2d点附近
EN

Stack Overflow用户
提问于 2013-08-23 14:41:58
回答 3查看 967关注 0票数 1

我试图将照片(GPS +时间戳)集中在已知的GPS位置上。

3d点= 2d +时间戳。

例如:我走在路上,拍路灯柱的照片,有些很有趣,所以我拍了10张照片,其他的没有,所以我什么都不拍。

我想把我的照片聚集在灯柱周围,让我可以看到哪个灯柱被拍照了。

我一直在看一些类似k-意思的聚类,我想要一些智能的东西,而不仅仅是把照片拍到最近的路灯柱。

(我将用javascript为客户端应用程序编写代码,每次处理(2000,500)点)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-23 16:52:17

KMeans聚类确实是一种流行且易于实现的算法,但它存在一些问题。

  1. 您需要将集群的 N作为输入变量提供给他。现在,由于我假设您不知道需要照相的“东西”有多少,所以使用迭代的KMeans或类似的变体找到正确的N只会将问题转移到为多集群分区找到适当的评估函数,这绝不比找到N本身容易。
  2. 它只能检测线性可分形状。比方说,你在凡尔赛走来走去,你拍了很多外墙的照片。然后你搬进去,拍下里面花园的照片。你得到的这两个形状是一个刺,里面有一个圆盘,但KMeans无法区分它们。

就我个人而言,我将使用某种密度聚类:您仍然需要为算法提供一些变量,但是,既然我们假设空间是欧几里德的,那么查找它们就不会花费太多时间。此外,它还使您能够区分噪声点和集群点,并让您以不同的方式对待它们。

此外,它还可以区分大多数形状,并且不需要事先给出集群的数量。

票数 1
EN

Stack Overflow用户

发布于 2013-08-25 12:46:52

基于密度的集群(如DBSCAN )无疑是可行的。

DBSCAN的两个参数应该非常明显地设置:

  • epsilon:这是聚类的半径,所以你可以用10米,假设没有超过10米的灯柱。(你应该使用大地测量距离,而不是欧几里德!)
  • minPts:本质上是集群的最小大小。你甚至可以用1或2。
  • 距离:这个参数是隐式的,但可能更重要。你可以在这里使用空间和时间的组合。例如,10米的空间,和1年的时间域。有关更灵活的版本,请参见通用DBSCAN,该版本清楚地说明了如何使用多个域。
票数 1
EN

Stack Overflow用户

发布于 2013-08-23 16:15:13

您可以使用delaunay三角剖分来寻找最近的点。它给出了一个最近的邻域图,其中点在delaunay边。或者你可以按颜色聚在一起,就像照片镶嵌一样。它使用了一棵反杆树。下面是一个类似的答案:求集合A中所有点的算法--集B中的最近邻

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18405628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档