【時(shí)間序列】NeuralProphet:Prophet的Pytorch實(shí)現(xiàn)!精度更高 預(yù)測(cè)更快 特性更多!
NeuralProphet是受Prophet和AR-Net的啟發(fā),并建立在Pytorch上的強(qiáng)大繼續(xù)模型。
官網(wǎng):https://neuralprophet.com/
NeuralProphet功能
與Prophet相比,NeuralProphet具備的功能有:
通過(guò)使用PyTorch的深度學(xué)習(xí)完成優(yōu)化 使用 AR-Net對(duì)時(shí)間序列的自相關(guān)建模使用前饋神經(jīng)網(wǎng)絡(luò)對(duì)滯后建模 可自定義損失和指標(biāo)
同時(shí)也具備用戶友好Python接口:
from?neuralprophet?import?NeuralProphet
import?pandas?as?pd
df?=?pd.read_csv('toiletpaper_daily_sales.csv')
m?=?NeuralProphet()
metrics?=?m.fit(df,?freq="D")
forecast?=?m.predict(df)
特征1:自回歸模型
n_lags為NeuralProphet的參數(shù),向AR-Net提供5個(gè)滯后并接收 3 個(gè)步驟作為預(yù)測(cè):
m?=?NeuralProphet(
????n_forecasts=3,
????n_lags=5,
????yearly_seasonality=False,
????weekly_seasonality=False,
????daily_seasonality=False,
)
https://neuralprophet.com/html/auto-regression.html
特性2:滯后回歸模型
滯后回歸器僅AR-Net可用,并且需要指定n_lags值,調(diào)用add_lagged_regressor函數(shù)注冊(cè)這些滯后回歸量:
m?=?m.add_lagged_regressor(names='A')
https://neuralprophet.com/html/lagged-regressors.html
特性3:添加特殊事件
在預(yù)測(cè)問(wèn)題中需要考慮重復(fù)發(fā)生的特殊事件,可以以加法格式和乘法格式添加:
m?=?NeuralProphet(
????????n_forecasts=10,
????????yearly_seasonality=False,
????????weekly_seasonality=False,
????????daily_seasonality=False,
????)
m?=?m.add_events(["superbowl",?"playoff"])
https://neuralprophet.com/html/events.html
特性4:對(duì)未來(lái)進(jìn)行回歸
未來(lái)回歸量是具有已知未來(lái)值的外部變量,我們還需要提供回歸量的未來(lái)值:
df['A']?=?df['y'].rolling(7,?min_periods=1).mean()
df['B']?=?df['y'].rolling(30,?min_periods=1).mean()
m?=?NeuralProphet(
????????n_forecasts=10,
????????yearly_seasonality=False,
????????weekly_seasonality=False,
????????daily_seasonality=False,
????)
m?=?m.add_future_regressor(name='A')
m?=?m.add_future_regressor(name='B')
https://neuralprophet.com/html/future-regressors.html
與Prophet實(shí)驗(yàn)對(duì)比
訓(xùn)練時(shí)間
訓(xùn)練時(shí)間是Prophet的四倍,但預(yù)測(cè)非常快,上線部署如果有GPU更快!
模型選擇

數(shù)據(jù)量比較小、以及長(zhǎng)序列預(yù)測(cè)比較適合用Prophet,其他情況都可以無(wú)腦選擇NeuralProphet
具體精度


往期精彩回顧 本站qq群955171419,加入微信群請(qǐng)掃碼:
評(píng)論
圖片
表情
