时间序列数据特征提取 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等也是如此。(注意:有时候时序数据不会这么友好,而是在一条记录中给出的
  • 测试数据
    对于标签集,利用id标识某个机器人是否故障。
    特征工程
    通过如下代码提取时间特征。
from tsfresh import extract_features
extraced_features = extract_features(timeseries, column_id='id', column_sort='time')
extraced_features.head()

提取过程会实时显示进度,应该是使用tqdm模块。

提取结果如下图所示。

可以看到提取特征之后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最浅显的功能,事实上,这个包特征提取能力要强大太多了。更详细的内容可以查看官方教程(英文版,可以使用Chrome自带的翻译)。

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

  1. 工业数据治理:全解时序数据处理工具

    时序数据处理应用于物联网.车联网.工业互联网领域的过程数据采集.过程控制,并与过程管理建立一个数据链路,属于工业数据治理的新兴领域.从工具维度看,时序数据处理工具与传统时序数据库的差异很大.后者局限于 ...

  2. 「时序数据库」时间序列数据与MongoDB:第一部分-简介

    时间序列数据正日益成为现代应用的核心--比如物联网.股票交易.点击流.社交媒体等等.随着批量系统向实时系统的转变,对时间序列数据的有效捕获和分析可以使组织能够更好地检测和响应事件,领先于竞争对手,或提 ...

  3. 黄金价格预测:如何将时序数据处理成监督学习数据

    背景概述 今天介绍下如何将时序数据处理成监督学习可用的训练样本.比较典型的场景是黄金的原始数据,一般黄金走势数据是由两个字段组成,分别是时间字段和价格字段. 走势图如下: 顺便安利一个黄金数据的下载网 ...

  4. 时域特征提取MATLAB,强大的时间序列多特征提取工具介绍

    hctsa对时间序列进行特征提取的使用流程 时间序列在许多领域中都有重要应用,如信号分析.金融量化分析.气象分析以及人体行为分析等等.通常对时间序列的处理需要进行特征分析, 关于特征提取分析的问题,主 ...

  5. R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series)、使用window函数从时间序列对象中提取数据子集

    R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series).使用window函数从时间序列对象中提取数据子集 目录

  6. 啥是数据处理能力?(二)数据处理工具

    啥是数据处理工具? 数据处理是指运用工具加工数据来解决问题的流程. 何为工具?工具是指达到目的所借助的器具.荀子曰:"君子生非异也,善假于物也." 我曾写过文章谈到对于" ...

  7. python处理考勤数据_腾讯课堂考勤助手:一款自动化考勤数据处理工具

    腾讯课堂导出的考勤数据只有上课学生数据,使得老师们需要对比学生名单逐个看学生有没有上课,或者是上了多久课,找出缺勤的学生,考勤起来需要耗费不少的时间.所以这几天用了空闲时间写了一款处理考勤数据的工具, ...

  8. python自相关图_Python绘制时间序列数据的时序图、自相关图和偏自相关图

    时序图.自相关图和偏相关图是判断时间序列数据是否平稳的重要依据. 本文涉及的扩展库numpy.pandas.statsmodels一般可以使用pip进行在线安装,如果安装失败,可以到http://ww ...

  9. DataScience:数据处理技术之针对时间序列数据衍变—构造时间滑动窗口数据的简介、代码实现、案例应用之详细攻略

    DataScience:数据处理技术之针对时间序列数据衍变-构造时间滑动窗口数据的简介.代码实现.案例应用之详细攻略 目录 时间滑动窗口数据的简介

最新文章

  1. 【CVPR2020-中科院计算所】多模态GNN:在视觉信息和场景文字上联合推理
  2. Sublime Text 3在ubuntu12.10下无法中文输入的解决方案
  3. 经验总结:按需加载JS和css
  4. cfile清空文件内容_编译-链接-加载 :ELF文件格式解析
  5. AOP各种表达式,aspectj的关系
  6. Linux标准目录配置(转自鸟哥)
  7. 视频会议应用空间广阔 未来“上云”将成趋势
  8. docker from指令的含义_volume_from指令-docker撰写
  9. OpenGL超级宝典 纹理(一)
  10. eclipse创建第一个JSP项目
  11. [Excel]VBA编程入门基础知识
  12. 传统数据与大数据安装服务器系统的对比
  13. python 实现combination和permutation
  14. 什么是Bugly?Android热更新的初讲解
  15. iOS 应用架构 (二)
  16. 国内外php主流开源cms汇总(2010年1月)
  17. 平安科技另辟蹊径 基于存储构建金融云
  18. 【Win10】解决WLAN不见了,只有飞行模式开关,网络适配器只有以太网,无线网卡隐藏了,设备未连接问题
  19. 如何求卡方分布的P值
  20. 虚拟机容器嵌合体—— Kata Containers正式走出实验室

热门文章

  1. 数据库事务原理详解-事务基本概念
  2. 缓存-分布式锁-Redisson-信号量测试
  3. GraphQL入门之分析RESTful存在的问题
  4. springboot整合filter
  5. mysql的索引介绍_1
  6. 计算机应用基础项目化教程实训评价手册答案,计算机应用基础实训指导
  7. linux多线程 消费者,linux c 多线程 生产者-消费者二
  8. sed模式空间(pattern space)和保持空间(hold space)
  9. 200912阶段一C++友元、运算符重载
  10. IDEA报错:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql