TsFresh学习

          最近膜拜大佬写的GitHub学习到了一个时间序列数据特征提取的库-TsFresh,感觉好像挺牛逼的,去B站大学找了一下想找点资料学一学,尴尬的是…

SAE特征提取python代码 tsfresh特征提取例子_python


发挥一下主观能动性,网上找了一下还好有官方文档英文的

SAE特征提取python代码 tsfresh特征提取例子_机器学习_02

Introduction

    

SAE特征提取python代码 tsfresh特征提取例子_SAE特征提取python代码_03


官方文档第一句话就是说TsFresh是---------Tsfresh is used to to extract characteristics from time series,然后放了一个图片说这是你电脑周围温度一天的变化情况,假设你想计算不同的特征如最大最小气温,气温的平均值或者气温几次达到了峰值。

SAE特征提取python代码 tsfresh特征提取例子_python_04


并表示如果没有TsFresh,想统计这些信息就只能手动的,但有了TsFresh就可以自动的帮你计算了,且TsFresh是对标python中的数据分析库pandas 和scikit-learn的,反正到现在啥都没见到,牛逼是先吹下了。

提取到的特征可以用来建立回归或者分类模型,通常提取的特征可以让看到时间序列的深层次的东西。
TsFresh适合用来做:
          1:预测机器的使用时间
          2:预测钢坯的质量
TsFresh不适合用来做:
          1:流数据
          2:用特征去训练模型(不想自己造轮子)
         说实话,这个第二个没看懂啥意思,啥自己造轮子。
还提供了GitHub链接,也有MATLAB包,叫做hctsa!

quick start

安装代码
pip insatll tsfresh
还提供了数据可以我们快速dive in,是一份机器人损坏的数据
from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, \
load_robot_execution_failuresdownload_robot_execution_failures()timeseries, y = load_robot_execution_failures()

SAE特征提取python代码 tsfresh特征提取例子_数据_05


数据集的百度云链接

下面按照官网的指示一步一步操作。导入数据看看数据的基本样式。

SAE特征提取python代码 tsfresh特征提取例子_数据_06


其中id列是列表索引,没有啥意义,其他的六列代表着不同感知器给出的的时间序列,

SAE特征提取python代码 tsfresh特征提取例子_SAE特征提取python代码_07


y数据的意思是哪个索引的机器人是坏的还是好的,可以看一下数据的分布。

SAE特征提取python代码 tsfresh特征提取例子_python_08


可以看出索引为1-5的都都是True,即表示没有损坏。可视化的展示id为3的数据

SAE特征提取python代码 tsfresh特征提取例子_python_09


可以看出各个特征的变化

再看一下数据表示为False的数据特征变化。

SAE特征提取python代码 tsfresh特征提取例子_python_10


上图人眼可以很直观的感受到数据的变化,但对于机器学习来说还是不行,需要将不同的特征转化成数字形式才行。tsfresh就派上用场了,可以提取超过1200中特征从这6个特征中。

SAE特征提取python代码 tsfresh特征提取例子_python_11


稍微有点费时间,文档说现在可以自动删除nan的特征,应该是计算过程中可能有些特征不是数值型的,故计算会有nan类型的。,可以看一下都提取了哪些特征

SAE特征提取python代码 tsfresh特征提取例子_python_12


可以导入label,提取最relevant的特征

SAE特征提取python代码 tsfresh特征提取例子_SAE特征提取python代码_13


在导入label的时候会有点小问题,用pandas读取的文件是dataframe类型的,但是函数要求必须得是series或者ndarray类型的 ,得进行格式转换并重索引label。

最后文档给出了一个根据提取到的特征用随机森林做分类的例子,有时间在看。