常见的预测模型及算法
預測模型
- 1. 時間序列分析
- 2.機器學習預測模型
- 2.1 決策樹
- 2.2 支持向量機回歸(SVR)
如果得到一份數據集,任務是要預測出一系列的值,而在預測任務中,我們大多數都采用的是擬合的方法,這篇文字主要介紹三種預測方法時間序列分析,灰色預測模型,神經網絡。
1. 時間序列分析
時間序列也叫動態序列,數據是按時間和數值性成的序列。而時間序列分析有三種作用,大致可以描述為描述過去,分析規律,預測將來。接下來將會講到三種模型(季節分解,指數平滑,ARIMA模型)。
一般情況下時間序列的數值變化規律有四種(長期趨勢T,循環變動C,長期趨勢T,不規則變動I)。我們先要對數據做出時間序列圖,觀察數據隨周期的變化,進而判斷序列是否隨周期波動大,如果說整體序列隨周期波動大,或波動不大,我們對其進行季節性分解,分別采用乘法和疊加模型。
至于缺失值可以自己選擇方法填補,這里主要介紹該模型的思想以及步驟。下面介紹具體預測模型。
首先介紹的是指數平滑模型
指數平滑大致分為簡單平滑,Holt線性趨勢模型,阻尼趨勢模型,簡單季節性 和溫特模型
簡單平滑模型
這里截取了一個文章的段落。
這里說明一下平滑參數α的選擇:(1)如果時間序列不規則起伏但長期趨于一個較穩定的數,那么α在(0.05,0.2)之間,(2)如果序列有明顯的變化,那么α在(0.3,0.5)之間,(3)如果序列變化比較緩慢則,α在(0.1,0.4)之間。要注意的是,這個模型只能預測一期數據,原因是他的預測公式。
這里我們的第一項是要預測的。如果預測出來,再想要預測t+2時的數據,可見我們需要Xt+1的真實數據,而我們不存在它的真實數據,最終預測t+2時只能用t+1預測值代替,帶入方程中就會得到Xt+2=Xt+1。就會有下面的現象。
當再到2014后面時都為一個數。各個模型的具體介紹及比較
Hole現象趨勢模型
Hole對簡單的指數平滑模型進行了延申,能夠預測包含趨勢的數據,該方法包含一個預測方程和兩個平滑方法。適用條件:線性趨勢,不含季節成分。此外還有Brown線性趨勢模型是此模型的特例。
阻尼趨勢模型
適用條件:線性趨勢逐漸減弱且不含季節成分。Hole的線性趨勢模型對未來預測值過高,這此基礎上對該模型調整,加入阻力效應有效緩解較高的線性趨勢。
模型如下:
如下是兩模型的比較,紅色指的是加入阻尼后的模型,藍色指的是Hole線性趨勢模型。
簡單季節性
適用條件:含有穩定的季節性,不含趨勢。模型如下:
溫特加法與溫特乘法
他們的適用條件均是含有季節性和穩定的季節成分,但是前面提到過,加法和乘法的選擇是要看時間序列的波動性,呈周期波動大的則是乘法,反之是加法。下面分別是溫特加法和溫特乘法。
從圖中更清楚的看到他們的區別,一者預測波動較大的另一個預測波動較為平緩的。
此外運用這些模型要需要時間序列的平穩性,若平穩度低,并時間序列間隔與預測無關即協方差為0則說明Xt是個白噪聲序列。一般用ACF和PACF檢測但是這兩種檢測偶然情況太多,很難判斷出來,下文會提到,如果是ARMA模型,根本判斷不出來。
由上面的指數平滑模型,這里預測女裝的銷售額,
首先對數據做出時間序列圖:
從中發現整體序列呈周期波動越來越大,因此,本文采用疊加模型對周期進行季節性分解。因時間序列數據受季節性影響較大和數據的波動規律,本文選取溫特的乘法模型。
通過觀察數據,在每年中三月和十二月中,在一個周期內明顯比其他月份的銷售額大,并且隨著周期的進行,我們發現整體時間序列數據隨周期波動逐漸升高,因而,我們對該時間序列采用乘法模型的季節性分解,分解后如下圖:
由于時間序列數據受季節性波動影響較大,本文采用溫特乘法(Winter’s multiplicative)模型對數據建模
說明溫特乘法序列模型的三個參數α,β,γ的值分別為0.034,2.4.6E-7,0.001,且此時Q檢驗服從原假設,并且做出殘差ACF以及殘差PACF圖如下,可見在ACF檢驗中,所由滯后性階數均與0無差異,而PACF中可能存在少許誤差,說明擾動項噪聲數據基本屬于白噪聲,溫特乘法能夠較好低識別本數據。
根據溫特乘法,預測出的數據如下圖所示,實際值與擬合值趨勢基本符合,根據上表,擬合優度有0.815,說明擬合效果良好,預測出來的數據也顯示出了周期性和波動的趨勢。
最后預測出十年女裝銷售額的數據如下:
2.機器學習預測模型
2.1 決策樹
這篇博客介紹決策樹還可以,借助這篇博客,用sklearn實現回歸樹
決策樹介紹
另外可以對決策樹可視化,效果圖:
附上實現的連接:可視化
2.2 支持向量機回歸(SVR)
支持向量分類產生的模型(如上所述)僅依賴于訓練數據的一個子集,因為構建模型的成本函數不關心超出邊界的訓練點。類似地,支持向量回歸生成的模型僅依賴于訓練數據的一個子集,因為成本函數忽略了預測接近其目標的樣本。
支持向量回歸有 3 種不同的實現: SVR、NuSVR和LinearSVR。LinearSVR 提供比SVR但僅考慮線性內核更快的實現,同時NuSVR實現與SVR和略有不同的公式LinearSVR。
具體實現如下:
總結
以上是生活随笔為你收集整理的常见的预测模型及算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java照片墙_基于jQuery实现照片
- 下一篇: EndnoteX9下载并安装