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 点的聚类的主要内容,如果未能解决你的问题,请参考以下文章