时间序列数据是随着时间的推移反复捕获的变量值 , 随着时间的推移可以产生一系列的按时间顺序索引的数据点 。 在时间序列中 , 数据具有自然的时间顺序 , 即一个变量在特定时间的值依赖于过去的值 。
传统的机器学习算法不能捕捉时间序列数据的时间顺序 。 数据科学家需要执行相关的特征工程 , 将数据的重要特征捕获到几个指标中 。 生成大量的时间序列特征并从中提取相关特征是一项耗时且繁琐的工作 。
python的tsfresh包可以为时间序列数据生成标准的数百个通用特性 。 在本文中 , 我们将深入讨论tsfresh包的使用 。
tsfresh 是一个可以生成数百个相关的时间序列特征的开源包 。从 tsfresh 生成的特征可用于解决分类、预测和异常值检测用例 。
tsfresh 包提供了对时间序列数据执行特征工程的各种功能 , 包括:
- 特征生成
- 特征选择
- 与大数据的兼容性
pip install -U tsfresh
# or
conda install -c conda-forge tsfresh
1、特征生成
tsfresh 包提供了一个自动特征生成 API , 可以从 1 个时间序列变量中生成 750 多个相关特征 。生成的特征广泛 , 包括:
- 描述性统计(平均值、最大值、相关性等)
- 基于物理的非线性和复杂性指标
- 数字信号处理相关功能
- 历史压缩特征
import pandas as pd
from tsfresh import select_features
# Read the time-series data
df = pd.read_excel(\"train.xlsx\" parse_dates=['date'
).set_index('date')
# automated feature generation
features = tsfresh.extract_features(df column_id=\"date\" column_sort=\"date\")
因为特征太多 , 所以具体的所有特征的介绍请查看官方文档 。
2、特征选择
tsfresh 包还提供了一个基于假设检验的特征选择实现 , 可以用于识别目标变量的相关特征 。为了限制不相关特征的数量 , tsfresh 包含了fresh算法(fresh 代表基于可扩展假设测试的特征提取) 。
tsfresh.select_features() 函数用户可以实现特征选择 。
3、兼容大数据
当我们有大量的时间序列数据时 。 tsfresh还提供api来扩展特征的生成/提取 , 以及针对大量数据的特征选择实现:
- 多线程处理:默认tsfresh包可以将特征生成/提取和特征选择在多核上并行执行 。
- 分布式框架:tsfresh还实现了一个自己的分布式框架 , 将特征计算分布在多台机器上加快计算速度 。
- Spark兼容:tsfresh还可以使用spark或Dask来处理非常大的数据 。
并且时间序列数据是相当大的 , tsfresh 也通过多线程、支持dask和spark来处理单机处理不了的大数据样本 。
tsfresh 的官方文档:
https://avoid.overfit.cn/post/d0d74ed9d52a43d98beb10ddcb4ff1a4
【时间序列|几行 Python 代码就可以提取数百个时间序列特征】作者:Satyam Kumar
- Python|?苏宁不宁,一手好牌打得稀烂,倒在2022?
- 俞敏洪|中科院用68小时讲完的python!整整568集,完整版开放下载
- 荣耀Magic4|【值得收藏】如何通过Python制作词云?
- Python|该来的还是来了,韩国突然“变脸”,中国院士说得没错:放弃幻想
- Python|做数据分析得有数据源,重点来了!怎么样获取源数据?
- Python|《小白的第一台相机选购指南》No.3-“记录生活”相机推荐
- 线上课程报名|区块链、计算机组成原理、Python商务数据分析(8月15日-18日)
- 谁说 Python 搞不定 AI 模型微服务?!Towhee 来了!
- Java|Java:Java与Python——顶级编程语言比较
- Python|“新骗局”之下,支付宝荣登热搜,大量储户开始转移资产?发生了什么