介绍

为什么选择 tsfresh?

tsfresh 用于从时间序列和其他顺序数据中进行系统的特征工程 [1]。这些数据有一个共同点,即它们按一个自变量排序。最常见的自变量是时间(时间序列)。顺序数据的其他例子包括反射率和吸收光谱,它们以波长作为排序维度。为了简单起见,我们简单地将所有不同类型的顺序数据称为时间序列。

时间序列

(是的,确实很冷!)

现在你想计算不同的特征,如最高或最低温度、平均温度或临时温度峰值:

时间序列的一些特征

没有 tsfresh,您将不得不手动计算所有这些特征;tsfresh 自动执行此过程,自动计算并返回所有这些特征。

此外,tsfresh 与 Python 库 pandasscikit-learn 兼容,因此您可以轻松地将特征提取与当前的例程集成。

我们可以用这些功能做什么?

提取的特征可以用来描述时间序列,即这些特征通常能为时间序列及其动态提供新的见解。它们还可以用于聚类时间序列,以及训练执行分类或回归任务的机器学习模型。

tsfresh 包已成功应用于以下项目:

  • 连铸过程中钢坯质量的预测 [2],

  • 从同步传感器进行活动识别 [3],

  • 火山喷发预测 [4],

  • 从书面文本样本中进行作者归属 [5],

  • 从带有缺失数据的时间序列中对系外行星系统进行特征化 [6],

  • 传感器异常检测 [7],

  • 以及 更多更多.

我们无法用 tsfresh 做什么?

目前,tsfresh 并不适用:

  • 对于流数据(我们所说的流数据通常用于在线操作,而时间序列数据通常用于离线操作)

  • 在提取的特征上训练模型(我们不想重新发明轮子,要训练机器学习模型请查看Python包 scikit-learn

  • 用于处理高度不规则的时间序列;tsfresh 仅使用时间戳来排序观测值,而许多特征是与时间间隔无关的(例如,峰值数量),并且可以为任何序列确定,但其他一些特征(例如,线性趋势)假设时间间隔相等,当这一假设不成立时应谨慎使用。

然而,如果你有具体的应用场景,可以考虑实现这些用例,请在 https://github.com/blue-yonder/tsfresh/issues 提交问题,或者随时联系我们。

还有什么其他的呢?

有一个名为 hctsa 的 Matlab 包,可以用来从时间序列中自动提取特征。也可以通过 pyopy 包在 Python 中使用 hctsa。其他可用的包有 featuretoolsFATScesium

参考文献