tsfresh
本仓库包含TSFRESH Python包。这个缩写代表
"基于可扩展假设检验的时间序列特征提取"。
该包通过将统计学、时间序列分析、信号处理和非线性动力学中的成熟算法与强大的特征选择算法相结合,提供系统的时间序列特征提取。在这种情况下,"时间序列"这个术语被以最广泛的意义解释,以至于任何类型的采样数据甚至事件序列都可以被描述。
减少特征工程的时间
数据科学家通常将大部分时间花在清理数据或构建特征上。 虽然我们无法改变第一件事,但第二件事可以自动化。 TSFRESH通过自动提取特征,让你从构建特征中解放出来。 因此,你有更多时间研究最新的深度学习论文,阅读黑客新闻或构建更好的模型。
自动提取数百个特征
TSFRESH自动从时间序列中提取数百个特征。 这些特征描述了时间序列的基本特征,如峰值数量、平均值或最大值,或更复杂的特征,如时间反转对称统计。
这组特征然后可以用于构建时间序列的统计或机器学习模型,例如用于回归或分类任务。
忽略无关特征
时间序列通常包含噪声、冗余或无关信息。 因此,大多数提取的特征对手头的机器学习任务可能没有用。
为了避免提取无关特征,TSFRESH包内置了一个过滤程序。 这个过滤程序评估每个特征对当前回归或分类任务的解释能力和重要性。
它基于成熟的假设检验理论,并使用多重检验程序。 因此,过滤过程在数学上控制了提取的无关特征的百分比。
TSFRESH包在以下开放获取论文中有描述:
- Christ, M., Braun, N., Neuffer, J., 和 Kempa-Liehr A.W. (2018). 基于可扩展假设检验的时间序列特征提取(tsfresh -- 一个Python包). Neurocomputing 307, 第72-77页, doi: 10.1016/j.neucom.2018.03.067.
FRESH算法在以下白皮书中有描述:
- Christ, M., Kempa-Liehr, A.W., 和 Feindt, M. (2017). 工业大数据应用的分布式和并行时间序列特征提取. ArXiv e-print 1610.07717, https://arxiv.org/abs/1610.07717.
系统的时间序列特征提取甚至适用于无监督问题:
- Teh, H.Y., Wang, K.I-K., Kempa-Liehr, A.W. (2021). 预料之外:用于自动传感器异常检测的无监督特征选择. IEEE传感器期刊 15.16, 第18033-18046页, doi: 10.1109/JSEN.2021.3084970.
由于tsfresh基本上提供了免费的时间序列特征提取,你现在可以专注于设计新的时间序列, 例如来自同步测量的信号差异,这些可以提供更好的时间序列特征:
- Kempa-Liehr, A.W., Oram, J., Wong, A., Finch, M., Besier, T. (2020). 用于同步惯性测量单元活动识别的特征工程工作流程. 在:模式识别. ACPR 2019. 由M. Cree等人编辑. 第1180卷. 计算机和信息科学通讯 (CCIS). 新加坡: Springer, 第223–231页. doi: 10.1007/978-981-15-3651-9_20.
- Simmons, S., Jarvis, L., Dempsey, D., Kempa-Liehr, A.W. (2021). 《对极长时间序列进行数据挖掘》 载于:2021年国际数据挖掘研讨会(ICDMW)论文集。B. Xue等编辑。 洛杉矶:IEEE出版社,第1057-1066页。doi: 10.1109/ICDMW53433.2021.00137。
系统性时间序列特征工程允许处理不同长度的时间序列样本,因为每个时间序列都被投影到一个明确定义的特征空间中。这种方法允许在存在缺失数据的应用中设计稳健的机器学习算法。
- Kennedy, A., Gemma, N., Rattenbury, N., Kempa-Liehr, A.W. (2021). 《使用系统性时间序列特征工程对微引力透镜事件的投影分离进行建模》 天文学与计算 35.100460,第1-14页,doi: 10.1016/j.ascom.2021.100460
你的时间序列分类问题是否不平衡?对时间序列特征矩阵进行欠采样很可能能解决你的问题:
- Dempsey, D.E., Cronin, S.J., Mei, S., Kempa-Liehr, A.W. (2020). 《新西兰怀特岛火山突发性爆发的自动前兆识别和实时预测》 自然通讯 11.3562,第1-8页,doi: 10.1038/s41467-020-17375-2。
书面文本的自然语言处理是将系统性时间序列特征工程应用于事件序列的一个例子,这在以下开放获取论文中有所描述:
- Tang, Y., Blincoe, K., Kempa-Liehr, A.W. (2020). 《通过语言时间序列分析丰富短文本样本的特征工程》 EPJ数据科学 9.26,第1-59页。doi: 10.1140/epjds/s13688-020-00244-9
tsfresh的优势
TSFRESH有几个卖点,例如
- 经过实地测试
- 经过单元测试
- 过滤过程在统计/数学上是正确的
- 有全面的文档
- 与sklearn、pandas和numpy兼容
- 允许任何人轻松添加自己喜欢的特征
- 既可以在本地机器上运行,也可以在集群上运行
下一步
如果你对技术工作感兴趣,请查看我们在http://tsfresh.readthedocs.io的全面Read-The-Docs文档。
该算法,尤其是过滤部分,也在上述论文中有所描述。
我们欢迎任何贡献,如果你有兴趣帮助我们使TSFRESH成为Python中最大的特征提取方法库,只需查看我们的如何贡献说明。
如果你想快速尝试tsfresh
或将其集成到你的工作流程中,我们还提供了一个docker镜像:
docker pull nbraun/tsfresh
向后兼容性
如果你需要重现或更新使用matrixprofile
特征计算器计算的时间序列特征,你需要创建一个Python 3.8环境:
conda create --name tsfresh__py_3.8 python=3.8
conda activate tsfresh__py_3.8
pip install tsfresh[matrixprofile]
致谢
TSFRESH的研究和开发部分由德国联邦教育和研究部资助,资助编号为01IS14004(iPRODICT项目)。