【机器学习】NeuralProphet,这个时序工具包也太强了吧...
作者:杰少
NeuralProphet
簡介
幾乎絕大多數做時間序列的朋友都了解Facebook的Prophet模型,因為其在準確性、可解釋性等方面有著良好的性能,而且可以為用戶自動化許多元素(如超參數選擇或特征工程),因而它獲得了廣泛的應用。本文我們介紹一個最新的NeuralProphet時,從名字就可以看出,這個是神經網絡和Prophet的結合,與傳統的黑盒NN不同,本文我們就介紹的NeuralProphet模型集成了Prophet的所有優點,不僅具有不錯的可解釋性,還有優于Prophet的預測性能。
NeuralProphet
01
Prophet
Prophet如果認為是基本自回歸的擴展(除了使用lagged的目標值,還對輸入變量使用傅立葉變換,這使得我們可以通過調模型拿到更好的結果)。
Prophet可以使用額外的信息,不僅僅是target的延遲值;
模型能融入節假日信息;
可以自動檢測趨勢的變化;
02
NeuralProphet
和許多黑盒子的NN不同,NeuralProphet保留了Prophet的所有優勢,同時,通過引入改進的后端(Pytorch代替Stan)和使用自回歸網絡(AR網絡),將神經網絡的可擴展性與AR模型的可解釋性結合起來,提高其準確性和可擴展性。
AR網絡——它是一個單層網絡,經過訓練可以模擬時間序列信號中的AR過程,但規模比傳統模型大得多。
03
NeuralProphet VS Prophet
NeuralProphet使用PyTorch的梯度下降進行優化,使得建模速度更快;
利用自回歸網絡對時間序列自相關進行建模;
滯后回歸器使用單獨的前饋神經網絡建模;
NeuralProphet具有可配置的前饋神經網絡的非線性深層;
模型可調整到特定的預測范圍(大于1);
提供自定義的損失函數和度量策略;
代碼
1.數據讀取
#?!pip?install?neuralprophet import?pandas?as?pd from?fbprophet?import?Prophet from?neuralprophet?import?NeuralProphet from?sklearn.metrics?import?mean_squared_error#?plotting import?matplotlib.pyplot?as?plt#?settings plt.style.use('seaborn') plt.rcParams["figure.figsize"]?=?(16,?8) df?=?pd.read_csv('./data/wp_log_peyton_manning.csv') print(f'The?dataset?contains?{len(df)}?observations.') df.head() The dataset contains 2905 observations.| 2007-12-10 | 9.590761 |
| 2007-12-11 | 8.519590 |
| 2007-12-12 | 8.183677 |
| 2007-12-13 | 8.072467 |
| 2007-12-14 | 7.893572 |
2.Prophet預測
test_length?=?365 df_train?=?df.iloc[:-test_length] df_test?=?df.iloc[-test_length:] prophet_model?=?Prophet() prophet_model.fit(df_train) future_df?=?prophet_model.make_future_dataframe(periods=test_length) preds_df_1?=?prophet_model.predict(future_df) prophet_model.plot_components(preds_df_1); prophet_model.plot(preds_df_1);?3. NeuralProphet
4.效果比較
NeuralProphet的效果比Prophet好了很多。
小結
NeuralProphet在時間序列預測的效果上面一般會比Prophet好很多,在遇到時間序列問題的時候強烈建議大家嘗試一下。
參考文獻
?https://towardsdatascience.com/facebooks-prophet-deep-learning-neuralprophet-76796aed1d86
總結
以上是生活随笔為你收集整理的【机器学习】NeuralProphet,这个时序工具包也太强了吧...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用轻量级RTSP服务本地生成RTSP
- 下一篇: eclipse中The JSP spec