基於tsfresh特徵擴充套件和lasso時序建模

2021-09-23 18:50:17 字數 1752 閱讀 4982

本文介紹使用tsfresh庫進行時序 freature extract,結合lasso進行建模。

一、背景

眾所周知,lasso是機器學習鼻祖之一robert tibshirani之作,以l1正則作為特徵篩選的回歸模型,在多元回歸和高維資料建模中具有廣泛的應用,但在時序模型中使用的較少,可以查到的幾篇文章中文期刊中,主要使用在arima模型中p的定階,以及多元時間序列的特徵篩選。而tsfresh作為乙個feature extract 機器學習庫。有驚呼稱之為時序特徵提取的瑞士軍刀,也有拿著原庫example做粗暴簡單演示,基本都沒有觸及到時序建模,甚至語焉不詳,我自己之前也拿過來用過,庫是好庫,但是文件方面確實是簡單了一點,本文用tsfresh進行freature extract並用lasso模型對特徵做篩選。

二、lasso簡介

lasso模型在很多部落格和**中都有提及,下面簡單解釋回顧一下

三、tsfresh與建模

圖2圖2是該庫/模組的主要貢獻者在2023年發表的文章

主要通過以下三個步驟對特徵進行抽取:

對序列求如平均值這樣的特徵

對平均值這個特徵進行計算p-value

多重檢驗

如作者所說,該庫聯合了63種方法,共可以產生794種特徵,可以說是非常全面了,甚至到了恐怖的程度,以至於不得不考慮計算效能的問題了。好在上述兩步都是使用高效並行方法,使用了python中的多程序庫multiprocessing,用程序池的方式批量建立子程序,預設呼叫全部的 cpu 核數,所以在執行特徵抽取的時候電腦幾乎是滿負荷執行。同時這麼多的特徵,哪些才是對模型有貢獻的特徵呢?這麼多的特徵是會導致可怕的overfitting,也就是學習到很多無關特徵,訓練集上表現很好,但是驗證集上一塌糊塗,即高方差,低偏差現象。

正是由於存在特徵過多的問題,所以需要對特徵進行篩選,剛好lasso最大的貢獻就是過濾掉多餘的特徵,但lasso作為一種傳統的截面資料建模方法,tsfresh是一種時間序列特徵提取庫,乙個主要針對截面資料,乙個是時序資料,所以存在一點障礙,下面本文在檢視tsfres**檔和相關資料後,把二者結合進行模型特徵生成與篩選。

我們知道,時間序列的特徵常見的有均數,標準差,眾數等,本文在此基礎上加入線性回歸的擬合殘差結果作為lasso的特徵之一。

本文不打算插入**示範,對二者皆有了解的讀者,看完以上介紹,可自行嘗試,如需要參考**,。

四、結果

從圖4中我們可以看到,對模型貢獻率大的特徵有眾數、線性回歸殘差、標準差、序列長度;還有高階特徵,如連續小波變換、快速傅利葉變換。圖5是繪製的**值和真實值的散點圖,可以看出,**值比較可信。同時有回歸係數,以及針對時序建模的mape指標。

參考文獻:

使用tsfresh工具對時序資料進行特徵提取

當我們在對時序資料進行特徵提取時,常常用到的方法包括滑動平均,指數平滑等等,tsfresh可以為我們提供幾十至幾百個統計特徵,包括時序訊號的能量等等,只需要一次操作即可。以下內容來自tsfresh的文件,先通過乙個例項來認識一下這個快速有效的工具 1.首先載入資料 2.看一下資料的形式 特徵向量 標...

基於Matlab來計算矩陣特徵值和特徵向量

簡介 線性代數相關領域中,矩陣操作一般是核心內容。對矩陣的特徵值和特徵向量的計算一直在數值計算占有重要位置。這裡介紹一種根據指定個數來返回矩陣特徵值及特徵向量的方式。例項 by lyqmath dalian university of technology school of mathematica...

基於sklearn的特徵篩選

樣本中的有些特徵是所謂的 優秀特徵 使用這些特徵可以顯著的提高泛化能力。而有些特徵在樣本類別區分上並不明顯,在訓練中引入這些特徵會導致算力的浪費 另外有些特徵對樣本的分類有反作用,引入這些特徵反而會導致泛化能力下降 與pca 主成分分析 不同,特徵篩選不修改特徵值,而是尋找對模型效能提公升較大的盡量...