基于tsfresh特征扩展和lasso时序建模

本文介绍了使用tsfresh库进行时序特征提取,并结合Lasso模型进行建模。Lasso在多元回归和高维数据建模中应用广泛,但在时序模型中使用较少;tsfresh是强大的时序特征提取库。文章将二者结合,解决特征过多问题,还加入线性回归拟合残差作为特征,结果显示预测值较可信。

本文介绍使用tsfresh库进行时序 Freature Extract,结合Lasso进行建模。
一、背景
众所周知,lasso是机器学习鼻祖之一Robert Tibshirani之作,以L1正则作为特征筛选的回归模型,在多元回归和高维数据建模中具有广泛的应用,但在时序模型中使用的较少,可以查到的几篇文章中文期刊中,主要使用在ARIMA模型中p的定阶,以及多元时间序列的特征筛选。而tsfresh作为一个Feature Extract 机器学习库。有惊呼称之为时序特征提取的瑞士军刀,也有拿着原库example做粗暴简单演示,基本都没有触及到时序建模,甚至语焉不详,我自己之前也拿过来用过,库是好库,但是文档方面确实是简单了一点,本文用tsfresh进行Freature Extract并用Lasso模型对特征做筛选。

二、Lasso简介

Lasso模型在很多博客和论文中都有提及,下面简单解释回顾一下

在这里插入图片描述
在这里插入图片描述
三、tsfresh与建模
图2
图2

图2是该库/模块的主要贡献者在2018年发表的文章

主要通过以下三个步骤对特征进行抽取:
在这里插入图片描述

  1. 对序列求如平均值这样的特征
  2. 对平均值这个特征进行计算p-value
  3. 多重检验

如作者所说,该库联合了63种方法,共可以产生794种特征,可以说是非常全面了,甚至到了恐怖的程度,以至于不得不考虑计算性能的问题了。好在上述两步都是使用高效并行方法,使用了python中的多进程库multiprocessing,用进程池的方式批量创建子进程,默认调用全部的 CPU 核数,所以在执行特征抽取的时候电脑几乎是满负荷运行。同时这么多的特征,哪些才是对模型有贡献的特征呢?这么多的特征是会导致可怕的overfitting,也就是学习到很多无关特征,训练集上表现很好,但是验证集上一塌糊涂,即高方差,低偏差现象。

正是由于存在特征过多的问题,所以需要对特征进行筛选,刚好Lasso最大的贡献就是过滤掉多余的特征,但lasso作为一种传统的截面数据建模方法,tsfresh是一种时间序列特征提取库,一个主要针对截面数据,一个是时序数据,所以存在一点障碍,下面本文在查看tsfresh文档和相关资料后,把二者结合进行模型特征生成与筛选。

我们知道,时间序列的特征常见的有均数,标准差,众数等,本文在此基础上加入线性回归的拟合残差结果作为lasso的特征之一。

本文不打算插入代码示范,对二者皆有了解的读者,看完以上介绍,可自行尝试,如需要参考代码,请点击

四、结果

在这里插入图片描述

从图4中我们可以看到,对模型贡献率大的特征有众数、线性回归残差、标准差、序列长度;还有高阶特征,如连续小波变换、快速傅里叶变换。图5是绘制的预测值和真实值的散点图,可以看出,预测值比较可信。同时有回归系数,以及针对时序建模的MAPE指标。

在这里插入图片描述

参考文献:

https://www.sciencedirect.com/science/article/pii/S0925231218304843

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值