介绍
为什么选择 tsfresh?
tsfresh 用于从时间序列和其他顺序数据中进行系统的特征工程 [1]。这些数据有一个共同点,即它们按一个自变量排序。最常见的自变量是时间(时间序列)。顺序数据的其他例子包括反射率和吸收光谱,它们以波长作为排序维度。为了简单起见,我们简单地将所有不同类型的顺序数据称为时间序列。
(是的,确实很冷!)
现在你想计算不同的特征,如最高或最低温度、平均温度或临时温度峰值:
没有 tsfresh,您将不得不手动计算所有这些特征;tsfresh 自动执行此过程,自动计算并返回所有这些特征。
此外,tsfresh 与 Python 库 pandas 和 scikit-learn 兼容,因此您可以轻松地将特征提取与当前的例程集成。
我们可以用这些功能做什么?
提取的特征可以用来描述时间序列,即这些特征通常能为时间序列及其动态提供新的见解。它们还可以用于聚类时间序列,以及训练执行分类或回归任务的机器学习模型。
tsfresh 包已成功应用于以下项目:
我们无法用 tsfresh 做什么?
目前,tsfresh 并不适用:
对于流数据(我们所说的流数据通常用于在线操作,而时间序列数据通常用于离线操作)
在提取的特征上训练模型(我们不想重新发明轮子,要训练机器学习模型请查看Python包 scikit-learn)
用于处理高度不规则的时间序列;tsfresh 仅使用时间戳来排序观测值,而许多特征是与时间间隔无关的(例如,峰值数量),并且可以为任何序列确定,但其他一些特征(例如,线性趋势)假设时间间隔相等,当这一假设不成立时应谨慎使用。
然而,如果你有具体的应用场景,可以考虑实现这些用例,请在 https://github.com/blue-yonder/tsfresh/issues 提交问题,或者随时联系我们。
还有什么其他的呢?
有一个名为 hctsa 的 Matlab 包,可以用来从时间序列中自动提取特征。也可以通过 pyopy 包在 Python 中使用 hctsa。其他可用的包有 featuretools、FATS 和 cesium。