我有一个三维空间中大约2000万个点(x,y,z)的大型数据集。我知道这些点分布在密集的区域,但是这些区域的大小是不同的。我认为一个标准的无监督3D聚类应该可以解决我的问题。
由于我不能先验地估计集群的数量,我尝试使用k-means, k的范围很广,但它很慢,而且,我必须估计每个k-partition有多重要。基本上,我的问题是:我如何将我的点的最显著分区提取到簇中?
k-means可能不是这类数据的最佳算法。
DBSCAN应该更接近你对密集区域的直觉。
先试一个样品,然后考虑如何放大。
从上面我不清楚你是否要使用k-means,但如果你是,你应该遵循下面帖子的回应,该帖子显示了如何测量集群的方差。
计算k-means的方差百分比?
此外,您可以使用"肘部方法"通过尝试2到15 k大小的群集来获得良好的匹配。
在这种情况下,一个简单的想法是在每个维度上使用3个不同的聚类。这可能会加快速度。
所以你沿着X轴找到集群(将所有点向下投影到X轴上),然后沿着Y轴继续形成子集群,然后沿着Z轴。
我认为1-D k-means可以非常有效地解决使用动态规划http://www.sciencedirect.com/science/article/pii/0025556473900072.