日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】NeuralProphet,这个时序工具包也太强了吧...

發布時間:2025/3/12 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】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.
dsy01234
2007-12-109.590761
2007-12-118.519590
2007-12-128.183677
2007-12-138.072467
2007-12-147.893572
df.plot(x='ds',?y='y',?title='Log?daily?page?views');

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

nprophet_model?=?NeuralProphet() metrics?=?nprophet_model.fit(df_train,?freq="D") future_df?=?nprophet_model.make_future_dataframe(df_train,?periods?=?test_length,?n_historic_predictions=len(df_train)) preds_df_2?=?nprophet_model.predict(future_df) nprophet_model.plot(preds_df_2);

4.效果比較

  • NeuralProphet的效果比Prophet好了很多。

df_test['prophet']?=?preds_df_1.iloc[-test_length:].loc[:,?'yhat'] df_test['neural_prophet']?=?preds_df_2.iloc[-test_length:].loc[:,?'yhat1'] df_test.set_index('ds',?inplace=True)print('MSE?comparison?----') print(f"Prophet:\t{mean_squared_error(df_test['y'],?preds_df_1.iloc[-test_length:]['yhat']):.4f}") print(f"NeuralProphet:\t{mean_squared_error(df_test['y'],?preds_df_2.iloc[-test_length:]['yhat1']):.4f}")MSE comparison ---- Prophet: 0.3576 NeuralProphet: 0.3057

小結

NeuralProphet在時間序列預測的效果上面一般會比Prophet好很多,在遇到時間序列問題的時候強烈建議大家嘗試一下。

參考文獻

  • ?https://towardsdatascience.com/facebooks-prophet-deep-learning-neuralprophet-76796aed1d86

  • 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【机器学习】NeuralProphet,这个时序工具包也太强了吧...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。