利用時間序列預測方法,咱們能夠基於歷史的狀況來預測將來的狀況。好比共享單車每日租車數,食堂每日就餐人數等等,都是基於各自歷史的狀況來預測的。python
- 時間序列,是指同一個變量在連續且固定的時間間隔上的各個數據點的集合,好比每5分鐘記錄的收費口車流量,或者每一年記錄的藥物銷量都是時間序列。
- 根據時間間隔的不一樣,時間序列能夠是按年度(Annual)、季度、月度、周、小時、分鐘、秒等頻率採集的序列。
- 趨勢(Trend),好比長期上漲或長期下跌。
- 季節性(Seasonal),好比羽絨服的銷量通常會在冬季更高,或者某家燒烤店的生意通常會在每週五和週六晚上更好。
- 週期性(Cyclic),好比你時不時搞個大促,那麼銷量在那段時間就會比較好。
- 偏差。
- 就是用同一個變量的歷史值預測將來值,或者除了歷史值之外,還加入一些預測因子(又稱外生變量)來預測將來值。前者稱爲單變量時間序列預測,後者稱爲多變量時間序列預測。
- 好比,咱們要預測某海灘下個月的的遊客數量,除了用歷史遊客數量作預測外,還能夠加入溫度這個因子。那麼只用歷史遊客數量作預測就是單變量時間預測,加入溫度這個因子就是多變量時間預測,固然還能夠加入其它合理的預測因子,好比該海灘的每個月廣告支出等。
全部將來的預測值等於歷史數據的平均值。網絡
簡單的將最後一次觀測值做爲將來的預測值。學習
相比樸素法,就是考慮了季節性,也就是說將同期的最後一次觀測值做爲本期的預測值,好比預測本週的數值,那麼就將上週的週一觀測值做爲本週的週一預測值,上週的週二觀測值做爲本週的週二預測值,以此類推。blog
在起始觀測值和最後一次觀測值之間畫一條鏈接線,延伸到預測時間點,做爲預測值,公式以下:
下面的2副圖展現了上面四種方法的預測效果:
深度學習
- Exponential smoothing 指數平滑
簡單說就是用過去的觀測值的加權平均值來做爲預測值,權重隨着與當前時刻的距離變遠而呈指數衰減。- ARIMA
簡單說就是用變量的自迴歸(AR)與歷史預測偏差的自迴歸(MA)構成的時間序列預測模型。- 基於深度學習的方法
簡單說就是利用神經網絡強大的學習能力,從時間序列歷史數據中提取各類可能的特徵,從而對將來進行預測。這部分的模型比較多,好比LSTM,Seq2seq等。
注意,上述的方法並不能說誰必定比誰好,不一樣的預測場景下每一個方法都有可能作出更好的預測,因此一般須要相互比較,以便作出更合理的預測。變量
本篇介紹了時間序列的相關概念,下一篇將介紹時間序列的通常數據格式和基於python的可視化方法。可視化
ok,本篇就這麼多內容啦~,感謝閱讀O(∩_∩)O。cli