如何在机器学习中处理带有其他属性的时间序列数据?

我正在处理一个二分类问题,每个数据实例包含多个不同指标的时间序列,同时还有一些其他属性。如何处理这些时间序列?是将它们视为独立的属性吗?但这样做会丢失与时间维度相关的信息。

为了更具体地说明,训练实例的一个例子如下所示:

ID MetricA_Day1 MetricA_Day2 ..... MetricA_Day31 MetricB_Day1....MetricB_Day2 AttributeC AttributeD AttributeE

处理这种情况的最佳实践是什么?


回答:

首先,给出一个“通用”的回答:没有所谓的最佳实践在机器学习中。实际上,只有不好的当前流行的方法,但没有“最佳”的方法。即使是二元线性分类,根据数据的不同,训练几何模型(SVM?)还是概率模型哪个更好也是因数据而异的。即使我们缩小到某个特定模型(比如说神经网络),在数据缩放方面也没有最佳实践。应该是在[0,1]范围内吗?还是[-1,1]?平均值为0,方差为1呢?协方差矩阵又如何处理?

现在进入细节——你的问题几乎没有提供关于数据的任何信息。说“我有一些属性和几个时间序列”远不能提供任何有洞察力和有价值的答案。但这似乎不是一个有明确答案的任务,而是一个长期研究任务。

在研究过程中,你可以寻找什么?

  • 这里真的需要这样的丰富表示吗?人们倾向于认为“越多越好”,但在机器学习中这并不一定正确。更简单、更有信息量的表示通常更好。或许可以尝试将你的时间序列表示为一些通用特征,比如一些频率特征、幅度等。
  • 核方法可以使用非常广泛的相似性度量,特别是你可以为表示的每个“部分”定义不同的度量——因此时间序列可以使用专门的核,而简单属性可以使用简单的核,总体上你只需使用这些核的和(这也是一个有效的核)。
  • 基于距离的方法(如kNN)也可以采用类似的方法,通过为每个维度定义不同的距离来实现。
  • 你还可以为表示的每个“部分”训练单独的分类器——因此,再次——时间序列可以有一些专门的时间序列分类器等,并将它们作为一个集成使用(处理这种集成的方法有很多,目前在机器学习中这是一个非常热门的话题)。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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