天天看點

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

1、Prophet是Facebook釋出的基于可分解(趨勢+季節+節假日)模型的開源庫。它可以用簡單直覺的參數進行高精神的時間序列預測。

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

1.1  拟合過程

教程中使用的資料集可在 Prophet 的 github 首頁 中的 examples 檔案夾 内下載下傳得到。

from fbprophet import Prophet

# 1. 建立 Prophet 對象
m=Prophet() 

"""
data是訓練資料,預測過程需要建立在包含日期ds列的資料框基礎上
"""
# 2. 拟合模型
m.fit(data) 

"""
Prophet.make_future_dataframe 來将未來的日期擴充指定的天數,得到一個合規的資料框。
預設情況下,這樣做會自動包含曆史資料的日期,是以我們也可以用來檢視模型對于曆史資料的拟合效果。
"""
# 3. 建構帶預測日期資料框,periods=365代表除曆史資料的日期外再往後推365天
future=m.make_future_dataframe(periods=365)  

"""
将會對每一行未來future 日期得到一個預測值(稱為 yhat)。
如果你傳入了曆史資料的日期,它将會提供樣本的模型拟合值。
預測 forecast 建立的對象應當是一個新的資料框,其中包含一列預測值 yhat ,以及成分的分析和置信區間。
"""
# 4. 預測資料集
forecast=m.predict(future) 
forecast[['ds','yhat','yhat_lower','yhat_upper']].tail()

# 5. 展示結果
m.plot(forecast)

# 6. 預測的成分分析繪圖,展示預測中的趨勢,周效應和年度效應
m.plot_components(forecast)
           

1.2  結果顯示

1.2.1  原始資料描述

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

1.2.2  建構待預測日期資料框

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

1.2.3  預測資料集

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

1.2.4  展示預測結果

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

1.2.5  預測成分分析圖

Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程
Python時序預測_第二篇 時間序列模型 Prophet(1)_預測過程

通過對資料的分析,我們就可以知道:

①圖1是根據trend畫出來的,圖2是根據weekly畫出來的,圖3是根據yearly畫出來的。

②因為是加法模型,有:forecast['additive_terms'] = forecast['weekly'] + forecast['yearly'];有:forecast['yhat']  = forecast['trend'] +  forecast['additive_terms'] 。是以:forecast['yhat']  = forecast['trend'] +forecast['weekly'] + forecast['yearly']。

如果有節假日因素,那麼就會有forecast['yhat']  = forecast['trend'] +forecast['weekly'] + forecast['yearly'] + forecast['holidays']。

在第四部分,我們會講到節假日因素,對于那些是節假日的天數,forecast['holidays']才會有值,不是節假日的天數,forecast['holidays']為0。

③因為是加法模型,'multiplicative_terms', 'multiplicative_terms_lower', 'multiplicative_terms_upper'這3列為空。

是以,基于上面的分析,weekly中的Monday為0.3的意思就是,在trend的基礎上,加0.3;Saturday為-0.3的意思就是,在trend的基礎上,減0.3。是以,這條線的高低也在一定程度上反應了“銷量的趨勢“。

1.3  參考連結

github連結:https://github.com/facebook/prophet/tree/master/python

 部落格連結:https://blog.csdn.net/anshuai_aw1/article/details/83412058