使用时间序列数据进行二元分类的最佳方法是什么

数据挖掘 时间序列 特征提取
2022-03-02 14:48:43

我有大量的 csv 文件,每个文件都是基于时间序列的 csv 文件,以 Avery 5 秒采样 2-3 分钟。我有 20k 个这样的文件,每个文件中有 200-300 个变量。我在整个 2-3 分钟窗口内按平均值聚合数据,并将其用于二进制分类。

目前我使用 .CSV 文件中每一列的平均值来表示该文件,所以基本上我使用每列一个标量值来总结 csv。所以每个文件都是一个样本,由其各自的平均值表示。谁能建议我一些更好的方法来总结时间序列数据。

谢谢你的时间。

2个回答

从您的评论中,我了解到您正在尝试使用聚合数据来解决二进制分类问题,而当您仅使用平均值时,您会得到非常糟糕的结果。

根据数据的具体情况和时间序列的形状,您可以尝试多种替代方案。请注意,您可能需要(显着)多个时间序列来解决您的问题。

  1. 除了平均值之外,您还可以使用分位数或其他一些汇总统计量,例如标准差、最小值或最大值。
  2. 您可以尝试对数据进行采样,即不采用整个时间序列,而只选择分钟、小时或天部分的值。或者只选择中午值。采样频率取决于您的数据。
  3. 或者只是通过计算每小时、每天、每月等的平均值来预先聚合。
  4. 此外,您可以计算时间序列的周期性并将其用作新功能。
  5. 或者计算一些趋势。
  6. 尝试将一些标准时间序列模型拟合到您的数据中,例如 ARIMA 并将系数用作信息特征。
  7. 最后但并非最不重要的一点是,使用领域知识来了解可能与您的分类问题相关的特征:最大跳跃(最大一阶差)、制度变化等。

编辑 我会为每个如上所述生成的时间序列选择至少 10-20 个特征,并使用 LASSO 甚至 xgboost 应用逻辑回归。

在每个时间序列选择 10-20 个特征后,您还可以尝试 PCA 来降低维度。

如果您的领域表明频率元素可能对分类具有某种意义或相关性,您可以尝试对序列进行傅立叶变换。我曾经按照 aivanov 的建议,沿着通常的统计特征取了前 10 个变换系数。它帮助我对数据进行分类。在进行变换之前,您还可以从通过高通/低通或带滤波器的系列中受益。