时序数据处理工具-时间序列数据特征提取TsFresh

时间序列数据特征提取 TsFresh

简介

Tsfresh(TimeSeries Fresh)是一个Python第三方工具包。 它自动计算大量的时间序列数据的特征。此外,该包包含评估这些特征对于回归或分类任务的解释能力和重要性的方法。无论是基于时序数据的分类还是预测,作为特征提取的工具,tsfresh将会是一个不错的选择。

安装

  • 使用pip
    • pip install tsfresh

简单使用

  • 数据集
    • 该包提供了一个机器人故障的数据集,可以加载用于尝试使用。(这个数据集不大)点击链接下载后放置到该包配置的data文件夹下(user文件夹中,实在找不到数据集可以私戳我)。
  • 编辑环境
    • 我这里使用Jupyter Notebook,其实什么环境都是可以的。
  • 教程步骤
    • 导入数据集
      import tsfresh
      from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failures
      download_robot_execution_failures()
      timeseries, y = load_robot_execution_failures()
      
    • 数据探索
      • 训练数据
        • 对于特征集,id是不同的机器人标识,F_x到T_z是时序数据标识,也就是说,对于F_x这个特征,id为1的机器人有15个数据记录,按照time列的大小排序,其余F_y等也是如此。(注意:有时候时序数据不会这么友好,而是在一条记录中给出的时序数据处理工具-时间序列数据特征提取TsFresh_第1张图片
      • 测试数据
        • 对于标签集,利用id标识某个机器人是否故障。时序数据处理工具-时间序列数据特征提取TsFresh_第2张图片
    • 特征工程
      • 代码如下
        from tsfresh import extract_features
        extraced_features = extract_features(timeseries, column_id='id', column_sort='time')
        extraced_features.head()
        
    • 提取进度
      • 会显示进度,应该是使用tqdm模块。
    • 提取结果
      • 时序数据处理工具-时间序列数据特征提取TsFresh_第3张图片
      • 可以看到提取特征之后id相同的特征序列合一了,但是每一个id的数据列数非常大,这些就是提取得到的特征。如id=1的数据关于F_x有15个数据,现在对着15个数据做统计学处理得到15个数据的平均值、方差等,每个值都是一列,其他F_y等也是如此,所以维度会很大。
    • 简单过滤
      • 不是所有统计值都有意义的,观察特征提取的数据集可以发现有很多无意义的控制,可以删除。(根据y集将相关性低的去除)
      • 代码如下
        from tsfresh import select_features
        from tsfresh.utilities.dataframe_functions import impute
        impute(extraced_features)
        filtered_features = select_features(extraced_features, y)
        filtered_features.head()
        
      • 结果
        • 从4764列减少到了631列,这个降维还是比较有效的。
    • 直接提取加过滤
      • 代码如下
        from tsfresh import extract_relevant_features
        directed_features = extract_relevant_features(timeseries, y, column_id='id', column_sort='time')
        directed_features.head()
        
      • 结果和上面是一致的,现在你可以使用特征提取的数据集去训练模型了。
        • 时序数据处理工具-时间序列数据特征提取TsFresh_第4张图片

补充说明

只是按照官方文档说明了tsfresh最浅显的功能,事实上,这个包特征提取能力要强大太多了。更详细的内容可以查看官方教程(英文版,可以使用Chrome自带的翻译)。

你可能感兴趣的:(数据分析与挖掘)