量客攻城狮 发布于2023-02-28
回复 49
浏览 7005
97
欢迎访问我的个人Github查看更多内容(国内访问Github不稳定,可以换个时间段访问,或者百度解决方案):
https://github.com/charliedream1/ai_quant_trade
股票AI操盘手:从学习、模拟到实盘,一站式平台。包含股票知识、策略实例、因子挖掘、传统策略、机器学习、深度学习、强化学习、图网络、高频交易、C++部署和聚宽实例代码等,可以方便学习、模拟及实盘交易
如果觉得好,就在Github点个星吧(您送我一颗星,我送您一颗心)。
Github后续会持续更新,欢迎关注。
# 1. 简介
本样例主要介绍了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」
## 1.1 相似库介绍
1. featuretools:
- Github: https://github.com/alteryx/featuretools
- Stars: 6.5k
- 协议:BSD-3.0
- 可以自动提取特征,主要采用求已有特征最大、最小、方差、导数等方法扩展特征,不是专门针对时间序列设计的
# 2. 原理
1. 衍生规则
tsfresh.feature_extraction.feature_calculators 模块提供了平方和、
一阶差分绝对和等多种统计指标的计算方法,可直接调用进行特征提取。在平时使用的均值、
方差等之外提供了新的特征提取维度。
2. 特征工程
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
评论
不错,又更新了,经常去你的Github转转
2023-03-01
不错,不过tsfresh的特征没用的占大多数
2023-03-01
用年轻人的话说,你叫赛博菩萨,哈哈哈
2023-03-01
非常棒,先点赞在慢慢看,另外有backtrader的中文文档分享吗
2023-03-01
@北纬空间 关注我的github,我都在逐步整理中
2023-03-01