Python 如何使用机器学习技术按时间顺序使用向量预测向量

Python 如何使用机器学习技术按时间顺序使用向量预测向量,python,machine-learning,computer-vision,Python,Machine Learning,Computer Vision,例如,如何基于多点对象的历史位置(时间序列向量数据)预测该对象(关节对象,如带关节的手)的位置。在这种情况下,是否有机器学习技术表现良好,以及如何在Python中实现它(例如,如何用这个多维向量目标变量替换原始目标变量) 类似:(带有3个时间戳的两点对象) 您的问题看起来像一个时间序列预测问题。它包括从指数1到K的一系列输入点,并尝试预测从指数K+1到N的下一个点。这些点可以是多维的。因为存在许多模型,例如隐马尔可夫模型或递归神经网络 但我也认为你可以更好地定义你的问题。在研究物理对象位置时,您

例如,如何基于多点对象的历史位置(时间序列向量数据)预测该对象(关节对象,如带关节的手)的位置。在这种情况下,是否有机器学习技术表现良好,以及如何在Python中实现它(例如,如何用这个多维向量目标变量替换原始目标变量)

类似:(带有3个时间戳的两点对象)

您的问题看起来像一个时间序列预测问题。它包括从指数1到K的一系列输入点,并尝试预测从指数K+1到N的下一个点。这些点可以是多维的。因为存在许多模型,例如隐马尔可夫模型递归神经网络

但我也认为你可以更好地定义你的问题。在研究物理对象位置时,您可以输入的任何先验知识将大大改进模型。例如,计算手臂的惯性、速度和加速度指标(从您的数据点)将有助于模型预测下一个位置。此外,空间运动通常对平移和旋转保持不变*,您的模型也应考虑到这一点


也就是说,你需要自己做一些研究,以找到适合你的数据的最佳方式

谢谢你的推荐。你对这种情况下的卡尔曼滤波和LSTM有什么看法?至于之前,我认为只能在这种情况下进行估计,但仍然不太确定如何做到这一点。除了这些技术之外,另一个问题是如何在python中应用它们。我面临的一个问题是,这里的目标变量是多维向量,而不是像往常一样的浮点值或标签。如果可能的话,你有没有关于这个案例的推荐文章?无论如何,非常感谢:)我从没听说过卡尔曼滤波,但它看起来很适合你的问题。LSTM是最近证明效果良好的循环网络,因此肯定是一个不错的选择。拥有多维输出应该不是问题。许多算法(如LSTM)都可以处理此问题。即使您选择的模型不能,您也可以将尽可能多的输出变量封装到一个预测器中。以MultiOutputRegressor为例()。通过前面的讨论,我想说的是,有时候,您可以通过手工制作功能来改进您的模型。在这里,计算惯性值听起来是个不错的主意。我想问,我能给多维目标添加任何约束吗?例如,如果一个目标输出(y1,y2,y3)具有y2-y1=y3-y2的关系。是否可以在培训中添加此条件,以使输出更加合理。
model = #such as random forest or CNN
X = [[(1.2, 1.4, 2.9), (3.5, 3.2, 1.8)], [(3.2, 3.1, 1.9), (3.1, 3.4, 1.9)], [(3.0, 3.1, 1.5), (2.8, 4.7, 2.5)]]
# 2 points * 3 Time stamps * 3 Dimension- each tuple
Y = [(2.1, 3.1, 3.5), (2.2, 3.0, 4.0)] #Just one row example
model.fit(X, Y)
#Please note that we might also consider the time order and the relationship
#between each joint (eg. Joint-joint distance should remain the same)