有用链接
安装
使用
tsflex 的设计注重直观性,我们鼓励你复制粘贴这段代码并尝试调整一些参数!
特征提取
import pandas as pd; import numpy as np; import scipy.stats as ss
from tsflex.features import MultipleFeatureDescriptors, FeatureCollection
from tsflex.utils.data import load_empatica_data
# 1. 加载序列索引数据(这里是时间索引)
df_tmp, df_acc, df_ibi = load_empatica_data(['tmp', 'acc', 'ibi'])
# 2. 构建特征提取配置
fc = FeatureCollection(
MultipleFeatureDescriptors(
functions=[np.min, np.mean, np.std, ss.skew, ss.kurtosis],
series_names=["TMP", "ACC_x", "ACC_y", "IBI"],
windows=["15min", "30min"],
strides="15min",
)
)
# 3. 提取特征
fc.calculate(data=[df_tmp, df_acc, df_ibi], approve_sparsity=True)
注意,特征提取是在具有不同采样率的多变量数据上进行的。
信号 | 列 | 采样率 |
---|---|---|
df_tmp | ["TMP"] | 4Hz |
df_acc | ["ACC_x", "ACC_y", "ACC_z" ] | 32Hz |
df_ibi | ["IBI"] | 不规则采样 |
处理
为什么选择tsflex?✨
灵活性
:- 处理多变量/多模态时间序列
- 多功能支持
=> 集成了许多用于以下目的的包:
- 处理(例如,scipy.signal, statsmodels.tsa)
- 特征提取(例如,numpy, scipy.stats, antropy, nolds, seglearn¹, tsfresh¹, tsfel¹)
- 特征提取支持多种步长和窗口大小
高效性
:
- 基于视图的处理和特征提取操作 => 极低的内存峰值和快速执行时间
- 参见:特征提取基准可视化
- 基于视图的处理和特征提取操作 => 极低的内存峰值和快速执行时间
直观性
:
- 保持数据的序列索引
- 特征提取构建可解释的输出列名
- 直观的API
- 对序列数据的
假设很少
:- 对采样率没有假设
- 能够处理多变量异步数据
即具有模态间小时间偏移的数据
高级功能
:- 特征选择后应用FeatureCollection.reduce以加快推理速度
- 使用函数执行时间日志来发现处理和特征提取的瓶颈
- 内置SeriesPipeline和FeatureCollection序列化
- 时间序列分块
¹ 这些集成在集成示例笔记本中有展示。
未来工作 🔨
=> 另请参阅增强问题
贡献 👪
我们很高兴看到您的贡献以进一步增强tsflex
。
有关如何贡献的更多说明,请参阅此指南。
引用我们的包
如果您在科学出版物中使用tsflex
,我们将非常感谢您引用我们:
@article{vanderdonckt2021tsflex,
author = {Van Der Donckt, Jonas and Van Der Donckt, Jeroen and Deprost, Emiel and Van Hoecke, Sofie},
title = {tsflex: flexible time series processing \& feature extraction},
journal = {SoftwareX},
year = {2021},
url = {https://github.com/predict-idlab/tsflex},
publisher={Elsevier}
}
论文链接:https://www.sciencedirect.com/science/article/pii/S2352711021001904
👤 Jonas Van Der Donckt, Jeroen Van Der Donckt, Emiel Deprost