中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
「經(jīng)驗」時間序列預(yù)測神器-Prophet『實現(xiàn)篇』

預(yù)計閱讀時間:8min

閱讀建議:本文為Prophet代碼實現(xiàn)篇

解決痛點:Prophet如何通過Python實現(xiàn)?此篇文章,幫助你上手實現(xiàn)。

01

如何安裝Prophet

首先,要安裝包,fbprophet包依賴于pystan。由于包的安裝有很多依賴,因此強(qiáng)烈建議用conda裝。

conda install pystanpip install fbprophet

02

導(dǎo)入數(shù)據(jù)SIMPLE TITLE

在碼代碼之前,要先引入pandas、numpy、matplotlib等常規(guī)數(shù)據(jù)科學(xué)庫,以及主角fbprophet。由于文件是通過excel存儲的,因此還需先將excel導(dǎo)入,日期變更為date類型,并且將字段命名為“ds”和“y”(Prophet默認(rèn)應(yīng)用這兩個字段)。

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom fbprophet import Prophet
data = pd.read_excel('./xxx.xlsx')data['date'] = pd.to_datetime(data['date'], format='%Y%m%d')data = data.rename(columns = {'date':'ds', 'y':'y'})[['ds','y']]data.head(5) #查看前五條記錄data.tail(5) #查看后五條記錄


導(dǎo)入數(shù)據(jù)前后五條記錄

03

繪制原始趨勢圖

在模型搭建之前,需要先對數(shù)據(jù)歷史趨勢有一個宏觀了解,繪制數(shù)據(jù)趨勢圖。

import plotly.express as px
fig = px.line(data, x='date', y='y')fig.show()


數(shù)據(jù)歷史趨勢圖

04

模型訓(xùn)練

Prophet的模型訓(xùn)練及預(yù)測,類似Sklearn的方法,訓(xùn)練fit()、預(yù)測predict()。這里由于我們了解數(shù)據(jù)的變動會受到季節(jié)、周、天的影響,存在一定的規(guī)律性,因此我們將這三個參數(shù)設(shè)置成True,并且采用中國的假期模式,其余參數(shù)均保持默認(rèn),代碼如下:

model = Prophet(yearly_seasonality=True, weekly_seasonality=True, daily_seasonality=True)model.add_country_holidays(country_name='CN')model.fit(data)

Prophet參數(shù)及默認(rèn)值介紹,內(nèi)容理論可參考「原理篇」

· growth:趨勢函數(shù)設(shè)置,默認(rèn)線性“l(fā)inear”,可選非線性“l(fā)ogistic”。

· changepoints:選擇突變點,默認(rèn)自動選擇“None”。例如:雙十一訂單突增,指定突變點。

· n_changepoints:突變點個數(shù),默認(rèn)“25個”。如果changepoints指定,則這個參數(shù)就廢棄了;如果changepoints沒指定,則會從輸入的歷史數(shù)據(jù)前80%中自動選取25個突變點。

· changepoint_range:突變點數(shù)據(jù)范圍,默認(rèn)“80%”。同樣,如果changepoints指定,則這個參數(shù)就廢棄了。

· changepoint_prior_scale: 調(diào)節(jié)“changepoints”發(fā)現(xiàn)強(qiáng)度,默認(rèn)“0.05”。值越大對歷史數(shù)據(jù)擬合程度越強(qiáng),但會增加過擬合的風(fēng)險。

· yearly_seasonality: 數(shù)據(jù)是否有年季節(jié)性,默認(rèn)“自動檢測”。

· weekly_seasonality: 數(shù)據(jù)是否有周季節(jié)性,默認(rèn)“自動檢測”。

· daily_seasonality: 數(shù)據(jù)是否有天季節(jié)性,默認(rèn)“自動檢測”。

· holidays:指定節(jié)假日,默認(rèn)“None”,支持手動輸入指定節(jié)假日。以DataFrame格式輸入,涵蓋:必須列【holiday(string)、ds(date)】、可選列【lower_window(int)、upper_window(int),指定影響的前后窗口期】。

· seasonality_mode: 季節(jié)性效應(yīng)模式,默認(rèn)加法模式“additive”,可選“multiplicative”乘法模式。

· seasonality_prior_scale: 調(diào)節(jié)季節(jié)性效應(yīng)模式強(qiáng)度,默認(rèn)“10”。值越大,季節(jié)性對模型影響越大。

· holidays_prior_scale: 調(diào)節(jié)節(jié)假日模式強(qiáng)度,默認(rèn)“10”。值越大,節(jié)假日對模型影響越大。

05

模型預(yù)測

模型預(yù)測輸出預(yù)測值、預(yù)測上限、預(yù)測下限等字段。

future = model.make_future_dataframe(periods=30)forecast = model.predict(future)

06

繪制分解圖

模型提供預(yù)測輸出的可視化展示,通過fbprophet自帶的可視化組件完成。

from fbprophet.plot import plot_plotly, plot_components_plotlyfig1 = model.plot(forecast)fig1.savefig('temp1.png')


預(yù)測可視化輸出

同時支持趨勢模型、周期模型、節(jié)假日模型的解耦。

fig2 = model.plot_components(forecast)fig2.savefig('temp2.png')


預(yù)測解耦可視化輸出

07

模型評估

評估模型的準(zhǔn)確程度,通過RMSE(均方根誤差)來度量y與y_predict的差異程度,值越小,擬合越好。

train_len = len(data['y'])rmse = np.sqrt(sum((data['y'] - forecast['yhat'].head(train_len)) ** 2) / train_len)print('RMSE Error in forecasts = {}'.format(round(rmse, 2)))


RMSE值輸出

08

模型存儲

以上流程實現(xiàn)了Prophet模型搭建,但考慮到未來我們還要復(fù)用通過此歷史數(shù)據(jù)訓(xùn)練的模型,因此我們要將模型存儲到本地,并在需要的時候?qū)⑵鋵?dǎo)入。

# 模型保存with open('prophet_model.json', 'w') as md: json.dump(model_to_json(model), md)
# 模型讀取with open('prophet_model.json', 'r') as md: model = model_from_json(json.load(md))

09

經(jīng)驗建議

  • Prophet對缺失值友好,但對異常值敏感。異常值可設(shè)置成None,防止影響模型的擬合。

  • 模型默認(rèn)線性趨勢,但如果數(shù)據(jù)按照log方式增長的,可調(diào)節(jié)為growth=”logistic”邏輯回歸模型。

  • 當(dāng)我們預(yù)先知道某天會影響數(shù)據(jù)的整體走勢,可以提前將此天設(shè)置成轉(zhuǎn)折點(changepoint)。

  • 在設(shè)定周期性時,模型默認(rèn)按照年、星期、天設(shè)定,月和小時如需要自行設(shè)定。

  • 針對節(jié)假日,可通過holiday來進(jìn)行調(diào)節(jié),針對不同的假期,可調(diào)整不同的前后窗口期,例如:春節(jié)7日,但是春運影響近30日。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用prophet庫分析航空出行人次規(guī)律
基于 Prophet 的時間序列預(yù)測
Python科學(xué)計算
基于高光譜數(shù)據(jù)的玉米葉面積指數(shù)和生物量評估(節(jié)選)
修正型果蠅算法優(yōu)化GRNN的大梁自動焊障礙預(yù)測
使用Python的多項式回歸
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服