【问题标题】:How to handle time series data with other attributes in machine learning?机器学习中如何处理具有其他属性的时间序列数据?
【发布时间】:2013-09-22 02:39:09
【问题描述】:

我正在研究一个二元分类问题,如果每个数据实例都有多个不同指标的时间序列,并且还有一些其他属性。如何处理时间序列,将它们视为单独的属性?但这会丢失与时间维度相关的信息。

为了更具体,训练实例的示例如下所示:

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

是否有关于如何处理此问题的最佳实践?

【问题讨论】:

  • 我知道这些答案中提到的动态时间扭曲。但我的问题是,当您同时拥有时间序列数据和其他非时变属性时。你如何一起处理它们。
  • 这取决于这些时间序列描述的内容。有时像其他属性一样添加它们效果很好,有时您需要对它们进行预处理并引入新的、与时间无关的属性等等。想想在这个时间序列中什么是一个很好的独特特征。
  • 不可能对此有一个通用的“解决方案”。您必须根据特定应用程序的要求权衡这些相似性。

标签: machine-learning data-mining data-processing


【解决方案1】:

首先,“通用”答案:不,在机器学习的最佳实践中没有这样的事情。事实上,只有差的当前流行的,没有“最好的”。即使对于二元线性分类,训练几何模型(SVM?)还是概率模型更好,也取决于数据。即使我们缩小到某个特定的模型(比如说神经网络),即使在数据缩放方面也没有最佳实践。它应该在[0,1]中吗?或者也许是[-1,1]?那么均值 0 和方差 1 呢?那么协方差矩阵呢?

现在了解详细信息 - 您的问题几乎没有提供有关数据的信息。说“我有一些属性和几个时间序列”远没有给真正有洞察力和有价值的答案的机会。但这似乎不是一项有明确答案的任务,这是一项长期研究任务。

在研究期间您可以搜索什么?

  • 这里真的需要如此丰富的表示吗?人们倾向于认为“越多越好”,这在 ML 方面并不一定正确。更简单、信息更丰富的表示通常会更好也许尝试将您的时间序列表示为一些一般特征,例如 sime 频率特征、幅度等。
  • 内核方法可以使用非常广泛的相似性度量,特别是您可以为表示的每个“部分”定义不同的度量 - 因此时间序列将使用专业内核,而简单属性则使用一些简单的属性,一般来说您只需使用这些内核的总和(这也是一个有效的内核)
  • 通过为每个维度定义不同的距离,可以使用基于距离的方法(如 kNN)来执行类似的方法
  • 您还可以为表示的每个“部分”训练单独的分类器 - 再说一次 - 时间序列有一些专门的时间序列分类器等,并将它们用作 集合(有很多方法使用这样的集合,它目前是 ML 中相当热门的话题)

【讨论】:

  • 感谢 lejlot 的回答。我想提供更详细的信息。只是出于保密的原因,我无法透露我实际拥有什么样的数据。但是你这里提到的绝对是一个好的方向。
  • 所以我对你的问题投了反对票,因为没有提供足够的细节(不是我认为你会关心失去你的许多 sock puppet 帐户之一),并赞成@lejlot 的答案试图提供帮助无论如何。
  • 我会加分的!
猜你喜欢
  • 1970-01-01
  • 2018-08-18
  • 1970-01-01
  • 2017-06-23
  • 2018-08-26
  • 2011-01-16
  • 2014-02-17
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多