TSFresh 时间序列特征提取库 - Python 自动化特征工程

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 TSFresh,为什么需要它

TSFresh(基于可扩展假设检验的时间序列特征提取)是一个强大的 Python 库,专为从时间序列中自动提取大量特征而设计。该库由德国研究团队开发,解决了数据分析中最耗时的任务之一——将原始时间数据转换为适用于机器学习的有效特征。

TSFresh 的核心目标是让分析师无需手动为时间序列创建特征。相反,该库会自动生成数百种不同的统计特征,然后使用统计假设检验方法筛选出最有意义的特征。

TSFresh 的架构与工作原理

TSFresh 基于统计驱动的特征筛选原则构建。该库采用两阶段方法:首先从时间序列中提取尽可能多的特征,然后应用统计检验来确定它们相对于目标变量的重要性。

该库的内部架构包含几个关键组件:

  • 特征提取模块,提供超过 60 种不同的函数
  • 基于 p 值的统计过滤系统
  • 针对大数据量优化的算法
  • 与主流机器学习库的集成

使用 TSFresh 的优势

TSFresh 为时间序列处理提供了多项显著优势:

特征工程自动化 - 该库自动生成数百个特征,大幅节省开发时间。

统计可靠性 - 所有筛选出的特征都经过严格的统计显著性检验。

可扩展性 - 支持并行处理,可高效处理大型数据集。

灵活配置 - 可根据具体任务调整特征提取参数。

功能丰富 - 从简单统计指标到复杂的非线性和混沌指标,一应俱全。

Python 生态兼容 - 与 pandas、scikit-learn、NumPy 等流行库完全集成。

安装与环境配置

使用 TSFresh 需要安装几个组件。通过 pip 进行基本安装:

pip install tsfresh

为获得完整功能,建议同时安装以下依赖:

pip install scikit-learn pandas numpy matplotlib seaborn

处理大数据时,可能需要安装额外的性能优化包:

pip install dask[complete] numba

基本模块导入示例:

from tsfresh import extract_features, select_features
from tsfresh.utilities.dataframe_functions import impute
from tsfresh.feature_extraction import ComprehensiveFCParameters, EfficientFCParameters
from tsfresh.feature_selection.relevance import calculate_relevance_table
import pandas as pd
import numpy as np

数据结构与格式要求

TSFresh 使用称为“长格式”的特定数据格式。该格式要求 DataFrame 具有特定的结构:

import pandas as pd

# 正确数据结构的示例
df = pd.DataFrame({
    'id': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3],
    'time': [1, 2, 3, 4, 1, 2, 3,                    

推荐