从多个曲线中提取特征

我从不同传感器中获得了多个曲线,但这些传感器都附着在同一个移动物体上。

现在我想从中提取特征,假设我将0-10的时间段作为窗口1,那么在窗口1中我有5个图表,每个图表代表一个特定位置的传感器,每个传感器生成3条曲线,分别是x(红色)、y(绿色)和z(蓝色),如下图所示:

整个图表是一个单一窗口 **整个图表是一个单一窗口

由于所有传感器都附着在同一个移动物体上,我认为这些图表和曲线之间应该有一些可以用作机器学习算法(特别是SVM)特征的关系。但它们实在是太多了,我有点迷茫了。

从这个单一窗口中我能生成多少合理的特征?

非常感谢任何建议…谢谢!


回答:

你可以通过解决正交Procrustes问题来将不同的时间序列转换到同一个坐标系中。

这是你提供的五个欧拉角数组(它们存储在arr[0]arr[4]中,作为169×3的numpy数组):

旋转前的图表

现在我们通过以下Python程序解决正交Procrustes问题,这允许我们将一个数组旋转以尽可能接近另一个数组:

def rotate_into(arr0, arr1):    """解决正交Procrustes问题"""    M = dot(arr0.T, arr1)    (U,S,V) = svd(M)    Q = dot(U, V)  # 转换arr0到arr1的旋转矩阵    return arr0.dot(Q)

svd是奇异值分解,位于numpy.linalg.svd中。现在我们可以将这个程序应用到每个数组上,并将其转换为尽可能接近参考数组,这里是第一个数组:

reference = 0for i in range(0,5):    subplot(2,3, i+1)    plot(rotate_into(arr[i], arr[reference]))

旋转后的图表

现在所有系列都是可比较的,你可以通过计算均值、标准差等来轻松提取特征。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注