3D 点的聚类

Posted

技术标签:

【中文标题】3D 点的聚类【英文标题】:Clustering of 3D points 【发布时间】:2015-12-09 01:34:55 【问题描述】:

我在 3 维空间中有一个包含大约 2000 万个点 (x,y,z) 的大型数据集。我知道这些点被组织在密集的区域中,但是这些区域的大小各不相同。我认为标准的无监督 3D 聚类应该可以解决我的问题。

由于我无法先验估计聚类的数量,因此我尝试使用 k 范围较宽的 k-means,但速度很慢,而且我必须估计每个 k-partition 的重要性。 基本上,我的问题是:如何将我的点中最重要的分区提取到集群中?

【问题讨论】:

【参考方案1】:

k-means 可能不是此类数据的最佳算法。

DBSCAN 应该更接近您对密集区域的直觉。

先试用样品,然后弄清楚如何扩大规模。

【讨论】:

【参考方案2】:

在这种情况下,一个简单的想法是沿每个维度使用 3 个不同的聚类。这可能会加快速度。

因此,您会沿 X 轴找到簇(将所有点向下投影到 X 轴),然后继续沿 Y 轴形成子簇,然后沿 Z 轴形成子簇。

我认为使用动态编程http://www.sciencedirect.com/science/article/pii/0025556473900072 可以非常有效地解决一维 k-means。

【讨论】:

【参考方案3】:

从上面我不清楚您是否要使用 k-means,但如果您要使用,您应该遵循下面帖子中的回复,该回复显示了如何测量集群的方差。

Calculating the percentage of variance measure for k-means?

此外,您可以使用“肘部方法”通过尝试 2 到 15 k 大小的集群来获得良好的拟合。有关此过程,请参阅 Amro 的答案。

【讨论】:

以上是关于3D 点的聚类的主要内容,如果未能解决你的问题,请参考以下文章

聚类五种主要聚类算法

基于位置信息的聚类算法介绍及模型选择

为什么说K-Means是基于距离的聚类算法?

为什么说K-Means是基于距离的聚类算法?

查找地理点的聚类(距离聚类中心 y 距离内的最小 x 点)的算法

利用谱聚类算法解决非完全图的聚类