算法模型---时间序列模型
文章來源
時間序列
時間序列是時間間隔不變的情況下收集的不同時間點數據集合,這些集合被分析用來了解長期發展趨勢及為了預測未來。
時間序列與常見的回歸問題的不同點在于:
1、時間序列是跟時間有關的;而線性回歸模型的假設:觀察結果是獨立的在這種情況下是不成立的。
2、隨著上升或者下降的趨勢,更多的時間序列出現季節性趨勢的形式;
常用的時間序列模型有AR模型(Autoregressive model:自回歸模型)、MA模型(moving average model:滑動平均模型)、ARMA模型(Auto-Regressive and Moving Average Model:自回歸滑動平均模型)和ARIMA模型(Autoregressive Integrated Moving Average Model:自回歸積分滑動平均模型)等。
時間序列的預處理(使數據平穩化和隨機化)
拿到一個觀察值序列之后,首先要對它的平穩性和純隨機性進行檢驗,這兩個重要的檢驗稱為序列的預處理。根據檢驗的結果可以將序列分為不同的類型,對不同類型的序列我們會采用不同的分析方法。
平穩化處理
平穩 就是圍繞著一個常數上下波動且波動范圍有限,即有常數均值和常數方差。如果有明顯的趨勢或周期性,那它通常不是平穩序列。序列平穩不平穩,一般采用三種方法檢驗:
時序圖檢驗
看看上面這個圖,很明顯的增長趨勢,不平穩。
利用自相關系數和偏相關系數
自相關系數和偏相關系數的概念可參考《算法模型— 概率論基礎—相關系數相關》
下面是不平穩數據的自相關和偏相關系數的一種情形。
左邊第一個為自相關圖(Autocorrelation),第二個偏相關圖(Partial Correlation)。
平穩的序列的自相關圖和偏相關圖要么拖尾,要么是截尾。截尾就是在某階之后,系數都為 0 。怎么理解呢,看上面偏相關的圖,當階數為 1 的時候,系數值還是很大, 0.914;二階長的時候突然就變成了 0.050. 后面的值都很小,認為是趨于 0 ,這種狀況就是截尾。什么是拖尾,拖尾就是有一個緩慢衰減的趨勢,但是不都為 0 。
自相關圖既不是拖尾也不是截尾。以上的圖的自相關是一個三角對稱的形式,這種趨勢是單調趨勢的典型圖形,說明這個序列不是平穩序列。
平穩序列的自相關系數會快速衰減。
單位根檢驗
單位根檢驗是指檢驗序列中是否存在單位根,如果存在單位根就是非平穩時間序列。
單位根檢驗:ADF是一種常用的單位根檢驗方法,他的原假設為序列具有單位根,即非平穩,對于一個平穩的時序數據,就需要在給定的置信水平上顯著,拒絕原假設。ADF只是單位根檢驗的方法之一,如果想采用其他檢驗方法,可以安裝第三方包arch,里面提供了更加全面的單位根檢驗方法,個人還是比較鐘情ADF檢驗。以下為檢驗結果,其p值大于0.99,說明并不能拒絕原假設。
利用差分將序列數據轉換為平衡序列
差分可以將數據轉換為平穩序列。
一階差分指原序列值相距一期的兩個序列值之間的減法運算;k階差分就是相距k期的兩個序列值之間相減。如果一個時間序列經過差分運算后具有平穩性,則該序列為差分平穩序列,可以使用ARIMA模型進行分析。
確定不平穩后,依次進行1階、2階、3階…差分,直到平穩為止。
隨機化處理
對于純隨機序列,又稱白噪聲序列,序列的各項數值之間沒有任何相關關系,序列在進行完全無序的隨機波動,可以終止對該序列的分析。白噪聲序列是沒有信息可提取的平穩序列。對于平穩非白噪聲序列,它的均值和方差是常數。通常是建立一個線性模型來擬合該序的發展,借此提取該序列的有用信息。ARMA模型是最常用的平穩序列擬合模型。
平穩時間序列建模
某個時間序列經過預處理,被判定為平穩非白噪聲序列,就可以進行時間序列建模。
建模步驟:
(1)計算出該序列的自相關系數(ACF)和偏相關系數(PACF);
(2)模型識別,也稱模型定階。根據系數情況從AR§模型、MA(q)模型、ARMA(p,q)模型、ARIMA(p,d,q)模型中選擇合適模型,其中p為自回歸項,d為差分階數,q為移動平均項數。
若平穩序列的偏相關函數是截尾的,而自相關函數是拖尾的,可斷定序列適合AR模型;若平穩序列的偏相關函數是拖尾的,而自相關函數是截尾的,則可斷定序列適合MA模型;若平穩序列的偏相關函數和自相關函數均是拖尾的,則序列適合ARMA模型。(截尾是指時間序列的自相關函數(ACF)或偏自相關函數(PACF)在某階后均為0的性質(比如AR的PACF);拖尾是ACF或PACF并不在某階后均為0的性質(比如AR的ACF)。)
(3)估計模型中的未知參數的值并對參數進行檢驗;
(4)模型檢驗;
(5)模型優化;
(6)模型應用:進行短期預測。
混合自回歸移動平均過程(公式表達)
差分方程
所謂差分方程即將變量 yty_tyt?與它的滯后期聯系起來的表達式。
研究變量在第t期的值記為yty_tyt?。假定給出的動態方程將變量y第t期的值與另外的變量wtw_twt?以及y的前一期聯系起來:
yt=?yt?1+wty_t=?y_{t?1}+w_tyt?=?yt?1?+wt?
上述稱為一階差分方程是因為僅僅只有變量的一階滯后(yt?1)(y_t?1)(yt??1)出現在方程中。
移動平均
“移動平均”的含義源于YtY_tYt?是最近兩期的?\epsilon?的加權平均。
令?t{\epsilon_t}?t?是一個白噪聲序列。
Yt=μ+?t+θ?t?1Y_t=μ+\epsilon_t+θ\epsilon_{t?1}Yt?=μ+?t?+θ?t?1?
其中μ和θ可以是任意的常數。這個時間序列稱為一階移動平均過程,記為MA(1)MA(1)MA(1)。
自回歸過程
一階自回歸過程
一個一階自回歸,記作AR(1)AR(1)AR(1)滿足下面的差分方程
Yt=c+?Yt?1+?tY_t=c+?Y_{t?1}+\epsilon_tYt?=c+?Yt?1?+?t?
?t{\epsilon_t}?t?是一個白噪聲序列。
p階自回歸過程
一個p階自回歸,記作AR(p)AR(p)AR(p)滿足下式
Yt=c+?1Yt?1+?2Yt?2+...+?pYt?p+?tY_t=c+?_1Y_{t?1}+?_2Y_{t?2}+...+?_pY{t?p}+\epsilon_tYt?=c+?1?Yt?1?+?2?Yt?2?+...+?p?Yt?p+?t?
混合自回歸移動平均過程
一個ARMA(p,q)ARMA(p,q)ARMA(p,q)過程包括自回歸和移動平均項:
Yt=c+?1Yt?1+?2Yt?2+...+?pYt?p+?t+θ1?t?1+θ2?t?2+...+θq?t?qY_t=c+?_1Y_{t?1}+?_2Y_{t?2}+...+?_pY{t?p}+\epsilon_t+θ_1?_{t?1}+θ_2?{t?2}+...+θ_q?_{t?q}Yt?=c+?1?Yt?1?+?2?Yt?2?+...+?p?Yt?p+?t?+θ1??t?1?+θ2??t?2+...+θq??t?q?
利用statsmodels庫實現時間序列的分析處理
Time Series analysis tsa
statsmodels.tsa.arima_model.ARIMA
AR(I)MA時間序列建模過程——步驟和python代碼
Seasonal ARIMA with Python
Python 3中使用ARIMA進行時間序列預測的指南
Python_Statsmodels包_時間序列分析_ARIMA模型
時間序列實戰(一)
How to Make Predictions for Time Series Forecasting with Python
How to Use and Remove Trend Information from Time Series Data in Python
時間序列分析之ARIMA上手-Python
[python] 時間序列分析之ARIMA
python中有專門的庫statsmodels可以用來作時間序列分析,但spark中則沒有現成的。
#-*- coding: utf-8 -*- import matplotlib.pyplot as plt import pandas as pd data=pd.read_csv('./HIS_MONTH.csv') b=data['fData'] plt.plot(data['fData']) plt.show()數據結構如下
如下所示
從圖上可以自相關系數基本是拖尾的,稍做調整就可以使用。
如下圖所示
偏相關系數也基本符合拖尾。
如下所示
原始序列的ADF檢驗結果為: (-6.561077625309946, 8.378411469638636e-09, 0L, 47L, {'5%': -2.925338105429433, '1%': -3.5778480370438146, '10%': -2.6007735310095064}, 273.5266547319719)p值遠小于0.05,拒絕原假設(原假設認為存在單位根),所以該序列為平衡時間序列。
#白噪聲檢驗 from statsmodels.stats.diagnostic import acorr_ljungbox print('差分序列的白噪聲檢驗結果為:') print(acorr_ljungbox(data['fValueData'], lags=1))結果如下
差分序列的白噪聲檢驗結果為: (array([0.05198092]), array([0.81965149]))P=0.81965149,統計量的P值大于顯著性水平0.05,則接受原假設(原假設認為為白噪聲序列)。
下面對原序列做一階差分運算
#差分后的結果 D_data = data['fValueData'].diff().dropna() D_data.columns = ['fValueData'] #時序圖 D_data.plot()結果如下:
從圖上看,一階差分后,感覺數據分布更對稱為隨機了。
結果如下
從圖上看,一階差分對數據有改善,振蕩衰減更明顯
結果如下
從圖上看,偏相關系數雖然沒有自相關系數好,但基本能滿足平穩序列的要求。
結果如下
差分序列的ADF檢驗結果為: (-4.595500765524432, 0.0001316587309452837, 10L, 36L, {'5%': -2.9459512825788754, '1%': -3.626651907578875, '10%': -2.6116707716049383}, 270.35268975914374)p值遠小于0.05,拒絕原假設(原假設認為存在單位根),所以該序列為平衡時間序列。
#白噪聲檢驗 from statsmodels.stats.diagnostic import acorr_ljungbox #返回統計量和p值 print('差分序列的白噪聲檢驗結果為:') print(acorr_ljungbox(D_data, lags=1))結果如下:
差分序列的白噪聲檢驗結果為: (array([12.35619393]), array([0.00043953]))P=0.00043953,統計量的P值小于顯著性水平0.05,則拒絕原假設(原假設認為為白噪聲序列),所以一階差分后該序列為非白噪聲序列,有進一步分析的價值。
Holt-Winters模型原理及python實現
本部分來源,也可以參考該文
原理分析
公式前面也寫過,這里再表述一下,有時間再來整理
假設隨機時間序列為:
xt(t=1,2,…,N,N=n)x_t(t=1,2,\ldots,N,N=n)xt?(t=1,2,…,N,N=n)
時間序列數據一般有以下幾種特點:1.趨勢(Trend) 2. 季節性(Seasonality)。
趨勢描述的是時間序列的整體走勢,比如總體上升或者總體下降。下圖所示的時間序列是總體上升的:
季節性描述的是數據的周期性波動,比如以年或者周為周期,如下圖:
三次指數平滑算法可以對同時含有趨勢和季節性的時間序列進行預測,該算法是基于一次指數平滑和二次指數平滑算法的。
移動平均(The simple moving average (MA))
直觀上,最簡單的平滑時間序列的方法是實現一個無權重的移動平均,目前已知的方法是用窗口函數,平滑統計量 StS_tSt?就是最近k個觀察值的均值。公式如下:
st=1k∑n=0k?1xt?n=xt+xt?1+…+xt?k+1k=st?1+xt?xt?kks_t=\frac{1}{k} \sum_{n=0}^{k-1} x_{t-n}=\frac{x_t+x_{t-1}+\ldots + x_{t-k+1}}{k}=s_{t-1}+\frac{x_t -x_{t-k}}{k} st?=k1?n=0∑k?1?xt?n?=kxt?+xt?1?+…+xt?k+1??=st?1?+kxt??xt?k??
這樣的方法存在明顯的缺陷,當k比較小時,預測的數據平滑效果不明顯,而且突出反映了數據最近的變化;當k較大時,雖然有較好的平滑效果,但是預測的數據存在延遲。而且最少需要k個值(窗口有限)。
加權移動平均
一種稍微復雜的方法是先選擇一組權重因子來計算加權移動平均
ω1,ω2,…,ωk,滿足∑n=1kωn=1{\omega_1,\omega_2,\ldots,\omega_k},滿足\sum_{n=1}^{k}\omega_n=1 ω1?,ω2?,…,ωk?,滿足n=1∑k?ωn?=1
然后用這些權重來計算這些平滑統計量:
st=∑n=1kωnxt?n+1=ω1xt+ω2xt?1+…+ωkxt?k+1s_t=\sum_{n=1}^{k}\omega_n x_{t-n+1}=\omega_1x_t+\omega_2 x_{t-1}+\ldots+\omega_{k}x_{t-k+1} st?=n=1∑k?ωn?xt?n+1?=ω1?xt?+ω2?xt?1?+…+ωk?xt?k+1?
在實踐中,通常在選擇權重因子時,賦予時間序列中的最新數據更大的權重,并減少對舊數據的權重。這個方法也需要最少k個值,并且計算復雜。
簡單指數平滑法
幸運地是有一種方法可以避免上述問題,它叫做指數平滑法。最簡單的指數平滑法如下:
si=αxi+(1?α)si?1s_i = \alpha x_i + (1-\alpha)s_{i-1} si?=αxi?+(1?α)si?1?
其中α\alphaα是平滑因子,0<α<10 < \alpha < 10<α<1。sis_isi?是當前時刻的平滑值。換句話說,平滑統計值SiS_iSi?是當前統計值XtX_tXt?與上一時間平滑值Si?1S_{i-1}Si?1?加權平均。這個簡單指數平滑是很容易被應用的,因為只要有兩個觀察值就能計算了。這里α的選取,我們可以采用最小二乘來決定α\alphaα(最小化(st?xt)2(s_t-x_t)^2(st??xt?)2)。
一次指數平滑算法進行預測的公式為:
xi+h=six_{i+h}=s_ixi+h?=si?
其中i為當前最后的一個數據記錄的坐標,亦即預測的時間序列為一條直線,不能反映時間序列的趨勢和季節性。
為什么被稱為“指數”平滑法
從它的遞推公式就能發現:
簡單指數平滑法適用于沒有總體趨勢的時間序列。如果用來處理有總體趨勢的序列,平滑值將往往滯后于原始數據,除非α的值接近1,但這樣一來就會造成不夠平滑。
二次指數平滑(HoltWinters-無季節趨勢)
為了解決上述問題,于是引出了二次指數平滑,能夠保留總體趨勢信息。因為將指數平滑應用了兩次,所以被稱為二次指數平滑。與簡單指數平滑相比,二次指數平滑加入了時間趨勢統計量tit_iti?,公式如下:
si=αxi+(1?α)(si?1+ti?1)ti=β(si?si?1)+(1?β)ti?1s_i=\alpha x_i + (1-\alpha)(s_{i-1}+t_{i-1})\\ t_i=\beta (s_i-s_{i-1}) + (1-\beta)t_{i-1} si?=αxi?+(1?α)(si?1?+ti?1?)ti?=β(si??si?1?)+(1?β)ti?1?
sis_isi?添加了與一次指數平滑相比,添加了一個新的趨勢項tit_iti?;而tit_iti?的表達式與一次指數平滑形式上是一樣的,只不過用將xix_ixi?換成(si?si?1)(s_i-s_{i-1})(si??si?1?),趨勢可以想像成增量,就是在此刻與上一刻的差值,趨勢當然應該用平滑后的數據的差值;同時將一次平滑中的si?1s_{i-1}si?1?換成ti?1t_{i-1}ti?1?
二次指數平滑的預測公式為
xi+h=si+htix_{i+h}=s_i+h \ t_i xi+h?=si?+h?ti?
二次指數平滑的預測結果是一條斜的直線
三次指數平滑
三次指數平滑將時間序列的季節性這一特征也考慮進去了。
季節性被定義為時間序列數據的趨勢,它表現出每一個周期重復自身的行為,就像任何周期函數一樣。“季節”這個詞用來表示行為每隔時間段L就開始自我重復。在自然界中有不同類型的季節性“累加性”(additive)和“累乘性“(multiplicative),就像加法和乘法是數學的基本運算。
如果每個12月都比每個11月多賣出1000套公寓,我們就說這樣的季節趨勢是“累加性”的。可以用絕對增?來表示。如果我們在夏季比冬季多賣出10%的公寓,那么季節趨勢在自然中是“累乘性”的。
累乘性公式如下:
下面的式子中kkk表示季節頻率,這個還需要查資料進行理解
si=αxipi?k+(1?α)(si?1+ti?1)ti=β(si?si?1)+(1?β)ti?1pi=γxisi+(1?γ)pt?ks_i=\alpha \frac{x_i }{p_{i-k}} +(1-\alpha)(s_{i-1}+t_{i-1})\\ t_i=\beta (s_i-s_{i-1}) + (1-\beta)t_{i-1}\\ p_i=\gamma \frac{x_i}{s_i} + (1-\gamma)p_{t-k}\\ si?=αpi?k?xi??+(1?α)(si?1?+ti?1?)ti?=β(si??si?1?)+(1?β)ti?1?pi?=γsi?xi??+(1?γ)pt?k?
上式中k為周期, 累乘三次指數平滑的預測公式為:
xi+h=(si+hti)pi?k+(hmodk)x_{i+h}=(s_i+h\ t_i)p_i-k+(h\ mod\ k) xi+h?=(si?+h?ti?)pi??k+(h?mod?k)
或者
xi+h=(si+hti)pi?k+1+(h?1)modkx_{i+h}=(s_i+h\ t_i)p_{i-k+1+(h-1) \ mod \ k} xi+h?=(si?+h?ti?)pi?k+1+(h?1)?mod?k?
兩個公式還需要確認下
累乘性公式初始值的計算
sk=1k(s1+s2+?+sk)tk=1k[xk+1?x1k+xk+2?x2k+?+xk+k?xkk]p1=x1sk,p2=x2sk,?,pk=xksks_k=\frac{1}{k} (s_1+s_2+\cdots+s_k)\\ t_k=\frac{1}{k}\left[ \frac{x_{k+1}-x_1}{k}+\frac{x_{k+2}-x_2}{k}+\cdots+\frac{x_{k+k}-x_k}{k} \right]\\ p_1=\frac{x_1}{s_k},p_2=\frac{x_2}{s_k},\cdots,p_k=\frac{x_k}{s_k} sk?=k1?(s1?+s2?+?+sk?)tk?=k1?[kxk+1??x1??+kxk+2??x2??+?+kxk+k??xk??]p1?=sk?x1??,p2?=sk?x2??,?,pk?=sk?xk??
累加性公式如下:
si=α(xi?pi?k)+(1?α)(si?1+ti?1)ti=β(si?si?1)+(1?β)ti?1pi=γ(xi?si)+(1?γ)pi?kxi+h=si+hbi+pi?k+hmodks_i=\alpha (x_i-p_{i-k} )+(1-\alpha)(s_{i-1}+t_{i-1})\\ t_i=\beta (s_i-s_{i-1}) + (1-\beta)t_{i-1}\\ p_i=\gamma (x_i-s_i) + (1-\gamma)p_{i-k}\\ x_{i+h}=s_i+hb_i + p_{i-k+h \ mod \ k} si?=α(xi??pi?k?)+(1?α)(si?1?+ti?1?)ti?=β(si??si?1?)+(1?β)ti?1?pi?=γ(xi??si?)+(1?γ)pi?k?xi+h?=si?+hbi?+pi?k+h?mod?k?
或者
xi+h=si+hbi+pi?k+1+(h?1)modkx_{i+h}=s_i+hb_i + p_{i-k+1+(h-1) \ mod \ k} xi+h?=si?+hbi?+pi?k+1+(h?1)?mod?k?
兩個公式還需要確認下
累加性公式初始值的計算
sk=1k(s1+s2+?+sk)tk=1k[xk+1?x1k+xk+2?x2k+?+xk+k?xkk]p1=x1?sk,p2=x2?sk,?,pk=xk?sks_k=\frac{1}{k} (s_1+s_2+\cdots+s_k)\\ t_k=\frac{1}{k}\left[ \frac{x_{k+1}-x_1}{k}+\frac{x_{k+2}-x_2}{k}+\cdots+\frac{x_{k+k}-x_k}{k} \right]\\ p_1=x_1-s_k,p_2=x_2-s_k,\cdots,p_k=x_k-s_k sk?=k1?(s1?+s2?+?+sk?)tk?=k1?[kxk+1??x1??+kxk+2??x2??+?+kxk+k??xk??]p1?=x1??sk?,p2?=x2??sk?,?,pk?=xk??sk?
其中 α\alphaα是數據平滑因子, 0<α<10 < \alpha < 10<α<1;β\betaβ是趨勢平滑因子,0<β<10 < \beta < 10<β<1; γ\gammaγ是季節改變平滑因子0<γ<10 < \gamma < 10<γ<1。
α,β,γ\alpha,\beta,\gammaα,β,γ的值都位于[0,1]之間,可以多試驗幾次以達到最佳效果。
s,t,ps,t,ps,t,p初始值的選取對于算法整體的影響不是特別大,通常的取值為s0=x0,t0=x1?x0s_0=x_0,t_0=x_1-x_0s0?=x0?,t0?=x1??x0?,累加時p=0p=0p=0,累乘時p=1p=1p=1.
對三次指數平滑法而言,我們必須初始化一個完整的“季節”pip_ipi?的值,不過我們可以簡單地設置為全1(針對累乘式)或全0(針對累加式)。只有當序列的?度較短時,我們才需要慎重考慮初始值的選取。
我們這里講的Holt-Winters模型就是三次指數平滑法。哇,終于切入正題了。
所有的指數平滑法都要更新上一時間步?的計算結果,并使用當前時間步?的數據中包含的新信息。它們通過“混合”新信息和舊信息來實現,而相關的新舊信息的權重由一個可調整的拌和參數來控制。各種方法的不同之處在于它們跟蹤的量的個數和對應的拌和參數的個數。三次指數平滑法,功能最強大,既能體現趨勢性又能體現季節性,所以三次指數平滑法的參數最多,有三個。
下圖為使用累加三次指數平滑進行預測的效果:其中紅色為源時間序列,藍色為預測的時間序列,α,β,γ\alpha,\beta,\gammaα,β,γ的取值為0.45,0.2,0.95:
下圖為累乘三次指數平滑進行預測的效果,α,β,γ\alpha,\beta,\gammaα,β,γ的取值為0.4,0.05,0.9:
可以看到三次指數平滑算法可以很好的保存時間序列數據的趨勢和季節性信息,在International Airline Passengers數據集上累乘平滑指數算法的效果更好。
python代碼實現
我們知道HoltWinters模型有三個可調參數,我們的目的就是訓練出有效的α,β, γ
。我們有兩種方法,一種就是自己取值來試試,一種就是采用數值優化的思想,比如
前面我們提到的最小二乘來最小化誤差來求參數(注意不一定能全局收斂!這個問題
實在是讓人頭痛。。。)我們就采用最小二乘法(L-BFGS)。
RMSE的實現
statsmodels中的holtwinters
statsmodels.tsa模塊
statsmodels.tsa.holtwinters源碼
statsmodels.tsa.holtwinters.ExponentialSmoothing
ExponentialSmoothing - 指數平滑算法
基于SVM作短期時間序列的預測
傳統的做法是提取1、2、3、4、5、7、9、13個單位時間的數據作為特征進行預測;
舉個例子進行分析,比如每天都有口香糖的銷量,那么如何通過幾周的數據預測明天的數據,
就可以選擇前1、2、3、4、5、7、14天的數據作為特征,從而預測明天的數據,
通過構建特征,再選擇核函數進行預測,其中調參的參數盡量要進行最優化,
參考方法:如果選擇RBF核函數,那么其中就會有三個參數,固定兩個,然后不停的優化另外一個,直到得到最優解。
具體應用的例子:
(1)SVM預測風場:http://wenku.baidu.com/link?url=SCCIJJe8tXLbTjLMZ81x5Qy6elsceAKIOwtkZ0QxfSCQQ4KaWKwo8Biepjs3Ss2LJ2ewhisNR0ixrDY4kV1Rd7BcqWRenuTaG85K80E-30y
(2)SVM預測股票指數:基于SVM修正的模糊時間序列模型在滬指預測中的應用
(3)SVM預測時間序列其他方面:http://www.docin.com/p-233353900.html
LSTM模型分析及對時序數據預測的具體實現(python實現)
來源:2017年09月30日 10:28:08
如何用LSTM自編碼器進行極端事件預測?(含Python代碼)
時間序列的并行實現
spark里面的庫是沒有時間序列算法的,但是國外有人已經寫好了相應的算法。其github網址是:https://github.com/sryza/spark-timeseries
sryza/spark-timeseries
Spark-TimeSeries使用方法
A New Library for Analyzing Time-Series Data with Apache Spark
【Spark Summit East 2017】使用Spark進行時間序列分析
基于小波變換的時間序列預測,Python實現,來自雪球
清華AIOps算法:KPI聚類
其他資料
時間序列挖掘-預測算法-三次指數平滑法(Holt-Winters)
Holt-Winters原理和初始值的確定
時間序列模型Prophet使用詳細講解
NeuralProphet:基于神經網絡的時間序列建模庫
總結
以上是生活随笔為你收集整理的算法模型---时间序列模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬取某宝宝商品评论等数据
- 下一篇: 霸榜多个CV任务!开源仅两天,已收获2.