本样例主要介绍了tsfresh工具包自动在时间序列上提取特征,从股票高开低收经4组数据即可提取5000多为的特征出来。
- 主页 | https://tsfresh.com/
- 文档 | https://tsfresh.readthedocs.io/en/latest/
- Github | https://github.com/blue-yonder/tsfresh
- Stars | 7.1k
- 协议 | MIT
Tsfresh是处理时间序列的关系数据库的特征工程工具,能自动从时间序列中提取100多个特征。 该软件包包含多种特征提取方法和一种稳健的特征选择算法, 还包含评价这些特征对回归或分类任务的解释能力和重要性的方法。
特点
- tsfresh一方面提供了大量衍生规则(统计指标计算的方法)供使用者按照自身需求单独调用; 另一方面,提供了自动提取大量统计指标特征并自动进行筛选的方法。
- TsFresh能自动地计算出大量的时间序列特征,即所谓的特征, 这些特征描述了时间序列的基本特征,如峰数、平均值或最大值或更复杂的特征, 如时间反转对称统计。同时通过假设检验来将特征消减到最能解释趋势的特征,称为去相关性。 然后,可以使用这些特征集在时间序列上构造统计或机器学习模型,例如在回归或分类任务中使用。
总的来讲,对于时间序列分类问题,获取有用的信息特征可以从以下3个思路做起:
- 考虑时间序列中最有代表性的子序列特征
- 整体考虑时间序列,给出序列中的极值处的特征描述和其他一些有统计意义的数值
- 结合「1」和「2」
- featuretools:
- Github: https://github.com/alteryx/featuretools
- Stars: 6.5k
- 协议:BSD-3.0
- 可以自动提取特征,主要采用求已有特征最大、最小、方差、导数等方法扩展特征,不是专门针对时间序列设计的
-
衍生规则 tsfresh.feature_extraction.feature_calculators 模块提供了平方和、 一阶差分绝对和等多种统计指标的计算方法,可直接调用进行特征提取。在平时使用的均值、 方差等之外提供了新的特征提取维度。
-
特征工程 tsfresh提供了大量衍生规则提取特征(具体内容见官网),然后利用与Y的相关性进行特征筛选。 官方程将这些操作进行了自动化集成,利用框架一键可达。但缺点是一次性生成大量特征, 若需要按照特定衍生规则生成特征较为麻烦。 tsfresh能够衍生很多特征,并且能够进行并行衍生, 底层用的是multiprocessing的pool,问题在于对于大数据集衍生太多的特征了, 一次性衍生完毕内存要爆(可以使用参数chunk控制分批加载),速度也慢, 所以比较推荐用户自行指定一部分衍生规则进行衍生,
[1] Tslearn & Tsfresh简单介绍, https://zhuanlan.zhihu.com/p/358648965 [2] tsfresh基本原理及使用, https://blog.csdn.net/qq_24591139/article/details/124705146