【发布时间】:2020-04-20 00:55:37
【问题描述】:
我必须聚集一个看起来像这样的 3d 数组
a=([[[1,2,3],[4,5,6],[7,8,9]],[[1,4,7],[2,5,9],[3,6,8]]])
假设这个数组代表时间序列中一个三角形的坐标,那么第一个二维数组代表第一帧中顶点的坐标,第二个数组代表第二帧中的坐标,以此类推。 我需要及时对这个三角形的位置进行聚类,但是 scikit -learn 的聚类算法只适用于二维数组。我已经对 3d 数组进行了整形以获得这个
b=([[1,2,3,4,5,6,7,8,9],[1,4,7,2,5,9,3,6,8]])
但是聚类算法的性能很差(请注意,三角形是一个例子,我必须聚类一个更复杂的图形的位置,所以二维数组中点的维数非常高)。 所以我想知道除了重塑和降维技术之外,是否还有其他方法可以对 3d 数组进行聚类。我读过将 3d 数组转换为距离矩阵可能是一种解决方案,但我真的不知道该怎么做。如果有人对如何执行此操作或有关如何解决此问题的任何其他建议有任何建议,我将非常感谢您的帮助!
【问题讨论】:
-
如果你传递一个 3d 数组,它将返回“ValueError: Found array with dim 3. Estimator expected
-
使用哪个估算器?
-
感谢您的回答,这是我使用的代码 kmeans = KMeans(n_clusters=25, random_state=0).fit(Y)
标签: python scikit-learn scipy cluster-computing cluster-analysis