0
假设我们在一个立方体中有1000个随机数据点(如下图所示)。 X和Y方向上的点分布是均匀的,但不是Z方向上的分布。随着我们越来越深入,数据点越来越密集。是否有任何蟒直截了当的方式来聚集这些数据点,使得:3D平面中的聚类点
- 每个集群具有相等的尺寸
- 每个集群由局部点,即,每个簇由点是彼此接近的。
我已经试过从Scipy软件包进行K均值聚类,但它没有给我一个好的结果,每个簇的点都非常普遍,而不是集中。
假设我们在一个立方体中有1000个随机数据点(如下图所示)。 X和Y方向上的点分布是均匀的,但不是Z方向上的分布。随着我们越来越深入,数据点越来越密集。是否有任何蟒直截了当的方式来聚集这些数据点,使得:3D平面中的聚类点
我已经试过从Scipy软件包进行K均值聚类,但它没有给我一个好的结果,每个簇的点都非常普遍,而不是集中。
尝试使用Scikit-学习的实现。他们使用被称为“K-Means ++”的技术来初始化他们的群集,该技术可以概率性地选择第一种方法来获得最佳的开始分布。这创造了一个更好的结果的可能性较高。
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
注:K-手段随机初始化,你尝试运行了好几次,看看,如果你只是没有运气不好的第一次?但总的来说,如果你的数据没有被聚集在一起,没有算法会找到不存在的好集群。这似乎更像是一个分箱问题... – Julien
@JulienBernu是的,我已经尝试了几次不同的初始化和迭代不同的迭代收敛。 –
群集必须具有相同大小的约束非常强。看看这篇文章:http://stats.stackexchange.com/questions/40777/spatial-clustering-with-the-constraint-that-all-clusters-have-equal-count – klib