当前位置: 首页 > 后端技术 > Python

Prophet模型预测2018年京东订单量

时间:2023-03-25 23:59:45 Python

鑳屾櫙鏈€杩戯紝鍏徃鍗冲皢瀹炰範鐨勭粡鐞嗙粰浜嗕竴涓叧浜嶱rophet棰勬祴妯″瀷鐨勬渚嬶紝璁╂垜瀛︿範濡備綍璋冩暣鍙傛暟銆傛濂斤紝鏃╁氨鎯充綋楠屼竴涓嬩紶璇翠腑鈥滃崟鎵嬭皟鍙傦紝娣疯繘楂樻墜鍦堚€濈殑鎰熻浜嗭紝馃ぃ馃ぃ馃ぃ銆傛湰鏂囦富瑕佺畝鍗曚粙缁峆rophet妯″瀷鍙婂叾閲嶈鍙傛暟锛岀劧鍚庣粨鍚堜含涓滆鍗曢噺鐨勪緥瀛愬姞娣卞Prophet妯″瀷鐨勭悊瑙c€傜悊瑙rophet妯″瀷绠€浠婸rophet妯″瀷锛岃嫳鏂囩洿璇戜负鈥滃厛鐭モ€濇ā鍨嬶紝鏄疐acebook浜?017骞村紑婧愮殑涓€绉嶅熀浜嶱ython鍜孯璇█鐨勬椂闂村簭鍒楅娴嬬畻娉曘€傞€傜敤浜庡叿鏈変互涓嬬壒寰佺殑鏃堕棿搴忓垪瓒嬪娍銆佸悇绉嶅懆鏈熸€э紙姣忓勾銆佹瘡鏈堛€佹瘡鍛ㄣ€佹瘡灏忔椂绛夛級銆佸亣鏈熷奖鍝嶅拰涓€浜涘紓甯稿€笺€傝妯″瀷涓嶉渶瑕佺敤鎴锋帉鎻℃繁搴︽椂闂村簭鍒楀垎鏋愮殑缁熻鐭ヨ瘑锛孎acebook琛ㄧずProphet鐨勯粯璁ら厤缃彲浠ョ敓鎴愬缇庣粡楠屼赴瀵岀殑涓撲笟鏁版嵁鍒嗘瀽甯堢殑棰勬祴锛屽嵆浣夸粬浠笉鏄椂闂村簭鍒楀垎鏋愭柟闈㈢殑涓撳锛屼篃鑳界悊瑙fā鍨嬬殑閲嶈鍙傛暟銆傛ā鍨嬬粨鏋凱rophet妯″瀷鏈川涓婃槸涓€涓姞娉曞洖褰掓ā鍨嬶紝鍏跺熀鏈舰寮忓涓嬶細鍏朵腑锛歡(t)锛氳秼鍔块」锛屼唬琛ㄩ潪鍛ㄦ湡鎬у彉鍖栵紝濡傦細楗卞拰澧為暱锛屽垎娈电嚎鎬(t)锛歅eriodicitem锛岃〃绀哄懆鏈熸€у彉鍖栵紙鍌呴噷鍙剁骇鏁帮級锛屽锛氭瘡骞淬€佹瘡鏈堛€佹瘡鍛ㄣ€佹瘡灏忔椂h(t)锛歨olidayitem锛岃〃绀鸿妭鍋囨棩鎴栭噸澶т簨浠剁殑鍙樺寲锛屽鏄ヨ妭銆佸弻鍗佷竴系t锛氬櫔澹伴」锛岃〃绀烘棤娉曞缓妯″拰棰勬祴鐨勯殢鏈烘尝鍔紝鏈嶄粠楂樻柉鍒嗗竷锛屽锛氭斂搴滄斂绛栧彉鍖栵紝涓栫晫鏈棩鐨勯噸瑕佸弬鏁颁互涓嬫槸Prophet妯″瀷涓笌涓夊ぇ妯″瀷鐩稿叧鐨勪富瑕佸弬鏁?Python),骞朵笖鍚庨潰鎵€鏈夌殑鍙傛暟=绛夊彿鍚庨潰鐨勫€奸兘鏄粯璁ゅ€硷紝杩欎簺鍙傛暟鍦ㄦ嫙鍚堝拰棰勬祴鍘嗗彶鏁版嵁鐨勬椂鍊欏彲浠ユ牴鎹叿浣撶殑涓氬姟鎯呭喌杩涜璋冩暣銆俆renditemmodelg(t)growth='linear'Prophet妯″瀷榛樿浣跨敤鍒嗘绾挎€фā鍨嬨€傚鏋滀娇鐢ㄩケ鍜屽闀挎ā鍨嬶紙growth='logistic'锛夛紝蹇呴』缁欏嚭楗卞拰鏈€澶у€糲ap锛岄ケ鍜屾渶灏廸loor鍊奸粯璁や负0changepoint_prior_scale=0.05瓒嬪娍妯″瀷鎷熷悎鐨勭伒娲绘€э紝鍊艰秺澶э紝瓒婇珮flexibilitychangepoint_range=0.8琛ㄧず绐佸彉鐐圭殑鑼冨洿锛堝嵆鏂滅巼绐佺劧鍙樺寲鐨勭偣锛夛紝渚嬪鎵€鏈夌獊鍙樼偣n_changepoints=鍩轰簬鍓?0%鐨勫巻鍙叉暟鎹?5琛ㄧず绐佸彉鐐圭殑涓暟銆備緥濡傚湪鍓?0%鐨勫巻鍙叉暟鎹腑锛岄€氳繃绛夊垎娉曟壘鍒?5涓彉鍖栫偣changepoints=None鎵嬪姩璁剧疆绐佸彉鐐圭殑浣嶇疆锛屽changepoints=['2014-01-01']interval_width=0.80璁剧疆涓嶇‘瀹氬尯闂村搴eriodicitemmodels(t)seasonality_prior_scale=10.0鍛ㄦ湡妯″瀷鎷熷悎鐨勭伒娲绘€э紝鍊艰秺澶э紝鐏垫椿鎬ц秺楂榶early_seasonality='auto'琛ㄧず鍛ㄦ湡骞寸殑鍌呴噷鍙剁骇鏁帮紝褰撻鐜噊fchange楂橈紝鍙互澧炲姞鍌呴噷鍙剁骇鏁皐eekly_seasonality='auto'鏉ヨ〃绀哄懆鏈熷懆銆傛寚瀹氬倕閲屽彾绾ф暟daily_seasonality='auto'琛ㄧず鍛ㄦ湡鏃ユ湡鐨勫倕閲屽彾绾ф暟銆俻eriod琛ㄧず闇€瑕侀娴嬬殑鐐规暟fourier_order琛ㄧず鍌呴噷鍙堕」鏁皃rior_scale琛ㄧず鍚勪釜鍛ㄦ湡鐨勫奖鍝嶇▼搴︺€俿easonality_mode='additive'琛ㄧず鍛ㄦ湡妯″瀷浣跨敤鐨勬嫙鍚堟ā鍨嬨€傞粯璁や娇鐢ㄥ姞娉曟ā鍨嬨€傚彲浠ラ€氳繃璁剧疆seasonality_mode='multiplicative'灏嗗叾璁剧疆涓轰箻娉曟ā鍨嬨€傚亣鏈熼」鐩ā鍨媓(t)holidays_prior_scale=10.0琛ㄧず鍋囨湡妯″瀷鎷熷悎鐨勭伒娲绘€с€傚€艰秺澶э紝鐏垫椿鎬ц秺楂樸€俵ower_window=0/upper_window=1琛ㄧず鑺傚亣鏃ュ墠鍚庣殑澶╂暟銆傛敞锛歭ower_window鍙栧€艰寖鍥翠负0鎴栬礋鏁存暟prior_scale琛ㄧず涓埆鑺傚亣鏃ュProphet鐨勫奖鍝嶇▼搴﹁妯″瀷鐨勫簲鐢ㄧ幇鍦ㄦ湁浜笢2015骞?鏈?鏃ヨ嚦2018骞?鏈?3鏃ョ殑璁㈠崟閲忔暟鎹紝濡傚浘涓嬪浘锛屼娇鐢≒rophet妯″瀷鎷熷悎杩欎釜鏁版嵁闆嗭紝棰勬祴涓嬩竴骞寸殑璁㈠崟閲忋€?...褰撲綘寰楀埌涓€涓暟鎹泦鏃讹紝棣栧厛搴旇娓呮礂鏁版嵁锛屼互娑堥櫎鏁版嵁涓殑寮傚父鍊硷紝鎻愰珮鏁版嵁璐ㄩ噺锛屾洿鏈夊埄浜庢暟鎹垎鏋愩€傛暟鎹鐞嗕箣鍚庯紝绮楃暐瑙傚療涓€涓嬭繖涓暟鎹泦锛屽彲浠ュ杩欎釜鏁版嵁闆嗗仛涓€涓畝鍗曠殑鍥捐〃鍒嗘瀽锛屼笅鍥炬槸浜笢杩戜笁骞寸殑璁㈠崟閲忚秼鍔裤€備粠杩欎釜鎶樼嚎鍥惧彲浠ョ湅鍑猴紝姣忓勾鏈夊洓涓椂鏈燂紝璁㈠崟閲忔尝鍔ㄥ緢澶э紙涓夊嘲涓€璋凤級銆傜劧鍚庯紝浠旂粏瑙傚療鏌愬勾鐨勮繖鍥涗釜鍏蜂綋鏃堕棿娈碉紝濡備笅鍥撅紝寰楃煡杩欏洓涓椂闂存鍒嗗埆瀵瑰簲鏄ヨ妭銆佷含涓?18璐墿鑺傘€佸弻鍗佷竴銆佸弻鍗佷簩锛岃繖鏍峰氨鍙互杩涜瑙勫垝鍦ㄦ眰鍜屽拰棰勬祴鏃舵坊鍔犲亣鏈熸ā鍨嬬殑鍏冪礌銆備笅鍥炬槸鐩存帴鐢╬ython鎷熷悎鍥剧殑缁撴灉锛堟簮鐮佸湪鏈€鍚庣殑闄勫綍锛夛細鍙互鐪嬪嚭鏁翠綋涓婃嫙鍚堟晥鏋滆繕鏄瘮杈冧笉閿欑殑銆傚鏋滆鏌ョ湅棰勬祴鎴愬垎鍒嗘瀽锛屽彲浠ヤ娇鐢≒rophet.plot_components鏂规硶銆傞粯璁や細鏄剧ず鏃堕棿搴忓垪鐨勮秼鍔裤€佸勾搴﹀鑺傛€у拰姣忓懆瀛h妭鎬э紝濡傛灉鍖呭惈鑺傚亣鏃ヤ篃浼氭樉绀猴紝濡備笅鍥撅細缁撹绠€鍗曞弸濂姐€侾rophet妯″瀷鍙渶瑕佺畝鍗曠殑姝ラ鍜屼竴浜涢噸瑕佸弬鏁扮殑璋冩暣灏卞彲浠ュ緱鍒板緢濂界殑鎷熷悎鍜岄娴嬨€傚缁熻瀛︿笉鏄緢鎳傜殑鎴戝緢鍙嬪ソ銆傝捣鍒濇垜浠ヤ负鎴戝簲璇ュ厛琛ヤ笂鏃堕棿銆備笌搴忓垪鍒嗘瀽鐩稿叧鐨勭粺璁$煡璇嗐€備絾鏄垜瑕佹劅璋acebook鐨勫ぇ浣滑寮€鍙戜簡杩欎箞寮哄ぇ鐨勭畻娉曞苟寮€婧愪簡銆傚弬鏁扮殑鐞嗚В銆傚弬鏁板妯″瀷鐨勭粨鏋滄湁寰堝ぇ鐨勫奖鍝嶃€備竴鑸潵璇达紝浜嗚В浜嗕竴涓ā鍨嬬殑鍙傛暟锛屽熀鏈笂灏卞彲浠ヤ娇鐢ㄨ繖涓ā鍨嬩簡銆備粈涔堟椂鍊欎娇鐢ㄥ畠锛烶rophet妯″瀷鏄竴涓緢濂界殑鍒嗘瀽宸ュ叿锛屽綋瀛樺湪涓€涓叿鏈夊緢寮哄懆鏈熸€у拰瓒嬪娍鎬х殑鏃堕棿搴忓垪鏃讹紝鍙互鎻愬墠鐭ラ亾寮傚父鏃ユ湡銆傚弬鑰冭祫鏂橮rophet瀹樼綉Prophet瀹樼綉FACEBOOK鏃堕棿搴忓垪棰勬祴绠楁硶涓枃缈昏瘧鐗圥ROPHET鐮旂┒-寮犳2018.11.30Prophet鑻辨枃鐗堣鏂囦含涓滆鍗曢噺鏁版嵁鏉ユ簮鍏朵粬Prophet瀹炰緥闄勫綍python涓殑Prophet妯″瀷绠楁硶涓嶆槸prophet锛屼絾鏄厛鐭ャ€傚畠鍦╬ython涓殑瀹夎鏂规硶鍦℅ithub涓婃湁寰堣缁嗙殑浠嬬粛锛歨ttps://github.com/facebook/p...python婧愮爜importpandasasdfromfbprophetimportinthiscaseProphetimportmatplotlib.pyplotasplt%matplotlibinline#鏀惧亣鏁版嵁#鍥犱负鏄ヨ妭鏄硶瀹氳妭鍋囨棩涓€鍛紝鏄ヨ妭鍓嶅悗鏀惧亣鏃堕棿寤堕暱涓?澶?鏄ヨ妭#鏄ヨ妭TF_Spring=pd.DataFrame({'holiday':'鏄ヨ妭','ds':pd.to_datetime(['2015-2-19','2016-2-8','2017-1-28','2018-2-16','2019-2-5']),'lower_window':-3,'upper_window':4,})#鐢靛晢鑺?18ECF_618=pd.DataFrame({'holiday':'ECF_618','ds':pd.to_datetime(['2015-6-18','2016-6-18','2017-6-18','2018-6-18']),'lower_window':0,'upper_window':1,})#鐢靛晢鑺?111ECF_1111=pd.DataFrame({'holiday':'ECF_1111','ds':pd.to_datetime(['2015-11-11','2016-11-11','2017-11-11','2018-11-11']),'lower_window':0,'upper_window':1,})#鐢靛晢鑺?212ECF_1212=pd.DataFrame({'holiday':'ECF_1212','ds':pd.to_datetime(['2015-12-12','2016-12-12','2017-12-12','2018-12-12']),'lower_window':0,'upper_window':1,})#鍚堝苟鎵€鏈夊亣鏈熶綔涓篜rophet鐨勫舰鍙俬olidays=pd.concat((TF_Spring,ECF_618,ECF_1111,ECF_1212))#瀵煎叆鏁版嵁闆嗭紝浣跨敤pandas搴撹鍙杄xcel鏁版嵁df=pd.read_excel('./data.xlsx')#杞崲璁㈠崟鏁伴噺鐨勬暟鎹被鍨媎f['y']=df['y'].astype(float)#鍒濆鍖栨ā鍨嬶紝璁剧疆Prophet妯″瀷鍙傛暟m=Prophet(holidays=holidays,holidays_prior_scale=10.0,changepoint_prior_scale=0.15,daily_seasonality=True)#鎷熷悎m.fit(df)#鏋勯€犺棰勬祴鐨勬棩鏈熸暟鎹紝periods=365琛ㄧず浠庡巻鍙叉暟鎹殑鏈€鍚庝竴澶╁線鍚庢帹365澶ゝuture=m.make_future_dataframe(periods=365)future.tail()#棰勬祴缁撴灉forecast=m.predict(future)#drawPredictionresultm.plot(forecast)#棰勬祴鎴愬垎鍒嗘瀽鍥撅紝鏄剧ず鏃堕棿搴忓垪c缁勪欢m.plot_components(forecast);x1=棰勬祴['ds']y1=棰勬祴['yhat']plt.plot(x1,y1)plt銆傚睍绀猴紙锛?/p>