工夫序列数据是随着工夫的推移重复捕捉的变量值,随着工夫的推移能够产生一系列的按工夫顺序索引的数据点。在工夫序列中,数据具备天然的工夫程序,即一个变量在特定工夫的值依赖于过来的值。
传统的机器学习算法不能捕获工夫序列数据的工夫程序。数据科学家须要执行相干的特色工程,将数据的重要特色捕捉到几个指标中。生成大量的工夫序列特色并从中提取相干特色是一项耗时且繁琐的工作。
python 的 tsfresh 包能够为工夫序列数据生成规范的数百个通用个性。在本文中,咱们将深刻探讨 tsfresh 包的应用。
tsfresh 是一个能够生成数百个相干的工夫序列特色的开源包。从 tsfresh 生成的特色可用于解决分类、预测和异样值检测用例。
tsfresh 包提供了对工夫序列数据执行特色工程的各种性能,包含:
- 特色生成
- 特征选择
- 与大数据的兼容性
装置 tsfresh 也十分的简略,官网提供了 pip 和 conda 的装置形式:
pip install -U tsfresh
# or
conda install -c conda-forge tsfresh
1、特色生成
tsfresh 包提供了一个主动特色生成 API,能够从 1 个工夫序列变量中生成 750 多个相干特色。生成的特色宽泛,包含:
- 描述性统计(平均值、最大值、相关性等)
- 基于物理的非线性和复杂性指标
- 数字信号处理相干性能
- 历史压缩特色
应用 tsfresh.extract_features() 函数能够为 1 个工夫序列变量从多个域生成 789 个特色。
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 能够通过几行 Python 代码中为工夫序列个性生成和抉择相干个性。它会主动从基于工夫的数据样本的多个域中提取和抉择 750 + 个通过理论测试的特色。它缩小了数据科学家节约在特色工程上的大量工作工夫。
并且工夫序列数据是相当大的,tsfresh 也通过多线程、反对 dask 和 spark 来解决单机解决不了的大数据样本。
tsfresh 的官网文档:
https://avoid.overfit.cn/post/d0d74ed9d52a43d98beb10ddcb4ff1a4
作者:Satyam Kumar