时间序列数据特征提取TsFresh–入门简介
TsFresh学习 最近膜拜大佬写的GitHub学习到了一个时间序列数据特征提取的库-TsFresh,感觉好像挺牛逼的,去B站大学找了一下想找点资料学一学,尴尬的是…发挥一下主观能动性,网上找了一下还好有官方文档!英文的Introduction 官方文档第一句话就是说TsFresh是-
TsFresh学习
最近膜拜大佬写的GitHub学习到了一个时间序列数据特征提取的库-TsFresh,感觉好像挺牛逼的,去B站大学找了一下想找点资料学一学,尴尬的是…
发挥一下主观能动性,网上找了一下还好有官方文档! 英文的
Introduction
官方文档第一句话就是说TsFresh是---------Tsfresh is used to to extract characteristics from time series,然后放了一个图片说这是你电脑周围温度一天的变化情况,假设你想计算不同的特征如最大最小气温,气温的平均值或者气温几次达到了峰值。
并表示如果没有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()
数据集的百度云链接
下面按照官网的指示一步一步操作。导入数据看看数据的基本样式。
其中id列是列表索引,没有啥意义,其他的六列代表着不同感知器给出的的时间序列,
y数据的意思是哪个索引的机器人是坏的还是好的,可以看一下数据的分布。
可以看出索引为1-5的都都是True,即表示没有损坏。可视化的展示id为3的数据
可以看出各个特征的变化
再看一下数据表示为False的数据特征变化。
上图人眼可以很直观的感受到数据的变化,但对于机器学习来说还是不行,需要将不同的特征转化成数字形式才行。tsfresh就派上用场了,可以提取超过1200中特征从这6个特征中。
稍微有点费时间,文档说现在可以自动删除nan的特征,应该是计算过程中可能有些特征不是数值型的,故计算会有nan类型的。,可以看一下都提取了哪些特征
可以导入label,提取最relevant的特征
在导入label的时候会有点小问题,用pandas读取的文件是dataframe类型的,但是函数要求必须得是series或者ndarray类型的 ,得进行格式转换并重索引label。
最后文档给出了一个根据提取到的特征用随机森林做分类的例子,有时间在看。
更多推荐
所有评论(0)