時間序列方法

一、時間序列基本規則法-週期因子法html

 

二、線性迴歸-利用時間特徵作線性迴歸python

  • 提取時間的週期性特色作爲特徵,此時訓練集每條樣本爲"時間特徵->目標值",時間序列的依賴關係被剔除,不須要嚴格依賴滑窗截取訓練樣本。常見是將時間用0-1啞變量表達,有如下若干種特徵:
    • 將星期轉化爲了0-1變量,從週一至周天,獨熱編碼共7個變量
    • 將節假日轉化爲0-1變量,視具體節假日數目,可簡單分爲兩類,"有假日"-"無假日",獨熱編碼共2個變量;或賦予不一樣編碼值,如區分國慶、春節、勞動節等使用一、二、3表示
    • 將月初轉化爲0-1變量,簡單分兩類表示爲"是月初"-"非月初",共2個特徵
    • 相似的月中、月初能夠轉化爲0-1變量
    • 控制時間粒度,區分是weekday or weekend
  • 觀察序列,當序列存在週期性時,線性迴歸也可作爲baseline

三、傳統時序建模方法,ARMA/ARIMA等線性模型。參考:git


四、時間序列分解,使用加法模型或乘法模型將原始序列拆分爲4部分。github

五、特徵工程着手,時間滑窗改變數據的組織方式,使用xgboost/LSTM模型/時間卷積網絡等。參考:算法

六、轉化爲監督學習數據集,使用xgboot/LSTM模型/時間卷積網絡/seq2seq(attention_based_model)。參考:api

七、Facebook-prophet,相似於STL分解思路,由於以爲在控制程度和可解釋性上比傳統時序模型更有優點,因此單獨列車。參考:網絡

  • 官網說明(英文)
  • 官網notbook(英文)
  • 中文推薦 的文章,從原理到使用都有介紹,很良心。張戎:Facebook 時間序列預測算法 Prophet 的研究
  • 我的理解,想進一步用好,能夠好好看看論文和官網,有空擼遍python的源碼
  • 理解prior_scale在代碼中如何實現控制趨勢項、季節項和節假日項
  • 對於趨勢項參數changepoint_range、changepoint_prior_scale如何影響模型擬合和泛化程度
  • 趨勢項中的Uncertainty-Intervals(interval_width參數)如何在預測結果使用
  • 論文中的"Simulated Historical Forecasts"對應prophet的Diagnostics工具,能夠利用該工具作時間序列的交叉驗證評價模型準確程度,如何利用該工具調整模型

八、深度學習網絡,結合CNN+RNN+Attention,做用各不相同互相配合。目前也只是看了論文,有代碼的順便給出代碼連接,代碼還沒細看。工具

主要設計思想:post

  • CNN捕捉短時間局部依賴關係
  • RNN捕捉長期宏觀依賴關係
  • Attention爲重要時間段或變量加權
  • AR捕捉數據尺度變化(沒太搞懂啥意思~)

方法:學習

代碼

做者:BINGO Hong連接:https://zhuanlan.zhihu.com/p/67832773

相關文章
相關標籤/搜索