Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中对3d数组进行集群?_Python_Scikit Learn_Scipy_Cluster Computing_Cluster Analysis - Fatal编程技术网

如何在python中对3d数组进行集群?

如何在python中对3d数组进行集群?,python,scikit-learn,scipy,cluster-computing,cluster-analysis,Python,Scikit Learn,Scipy,Cluster Computing,Cluster Analysis,我必须聚集一个3d阵列,看起来像这样 a=([[[1,2,3],[4,5,6],[7,8,9]],[[1,4,7],[2,5,9],[3,6,8]]]) 假设此数组表示时间序列中三角形的坐标,因此第一个2d数组表示第一帧中顶点的坐标,第二个数组表示第二帧中的坐标,依此类推。 我需要及时对三角形的位置进行聚类,但是scikit-learn的聚类算法只适用于2d阵列。我已经对3d阵列进行了重塑以获得此效果 b=([[1,2,3,4,5,6,7,8,9],[1,4,7,2,5,9,3,6,8]])

我必须聚集一个3d阵列,看起来像这样

a=([[[1,2,3],[4,5,6],[7,8,9]],[[1,4,7],[2,5,9],[3,6,8]]])
假设此数组表示时间序列中三角形的坐标,因此第一个2d数组表示第一帧中顶点的坐标,第二个数组表示第二帧中的坐标,依此类推。 我需要及时对三角形的位置进行聚类,但是scikit-learn的聚类算法只适用于2d阵列。我已经对3d阵列进行了重塑以获得此效果

b=([[1,2,3,4,5,6,7,8,9],[1,4,7,2,5,9,3,6,8]])
但是聚类算法的性能很差(请注意,三角形就是一个例子,我必须对更复杂图形的位置进行聚类,因此2d数组中点的维数非常高)。
所以我想知道,除了重塑和降维技术之外,是否还有其他方法可以对3d阵列进行聚类。我读过,在距离矩阵中转换3d阵列可能是一个解决方案,但我真的不知道如何做到这一点。如果有人对如何解决这个问题有任何建议,我会非常感谢你的帮助

聚类算法对矩阵使用这种格式:
n个样本,n个特征
所以在你的例子中,你的n_样本是你在时间上的位置,你的n_特征是你的坐标。我假设你试图找到你的形状在不同时间的平均位置。对于这类任务,我建议您计算形状的中心点。像这样,无论形状如何,你都有一点在物体的中间横跨时间跟踪。这比试着追踪物体上的所有角落更有意义,我假设物体可以旋转


希望有帮助

聚类算法对矩阵使用这种格式:
n个样本,n个特征
所以在你的例子中,你的n_样本是你在时间上的位置,你的n_特征是你的坐标。我假设你试图找到你的形状在不同时间的平均位置。对于这类任务,我建议您计算形状的中心点。像这样,无论形状如何,你都有一点在物体的中间横跨时间跟踪。这比试着追踪物体上的所有角落更有意义,我假设物体可以旋转


希望有帮助

如果你传递一个3d数组,它将返回“ValueError:找到带dim 3的数组。预计使用哪个估计器?谢谢你的回答,这是我使用的代码kmeans=kmeans(n_clusters=25,random_state=0)。拟合(Y)如果你传递一个3d数组,它将返回“ValueError:找到带dim 3的数组”。估计器需要哪个估计器?谢谢你的回答,这是我使用的代码kmeans=kmeans(n_clusters=25,random_state=0)。拟合(Y)