99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀如何建立時間序列預(yù)測模型?
如何建立時間序列預(yù)測模型?
2016-04-13
收藏

如何建立時間序列預(yù)測模型?

1. 背景

先來看兩個例子,下面兩幅圖展示了百度在趨勢預(yù)測方面的應(yīng)用案例,一個是世界杯期間的比賽輸贏預(yù)測,另一個是北京各旅游景區(qū)的游客人數(shù)預(yù)測。


這兩幅圖代表了大數(shù)據(jù)環(huán)境下趨勢預(yù)測的典型場景,即事件預(yù)測和時序預(yù)測,本文重點(diǎn)關(guān)注第二幅圖中的場景,即與時間維度相關(guān)的時間序列預(yù)測。

2. 時間序列預(yù)測

時間序列預(yù)測即以時間數(shù)列所能反映的社會經(jīng)濟(jì)現(xiàn)象的發(fā)展過程和規(guī)律性,進(jìn)行引伸外推,預(yù)測其發(fā)展趨勢的方法,簡單來說就是從已知事件測定未知事件。

上圖展示了時間序列的一般趨勢,時間序列數(shù)據(jù)的趨勢變動可分為以下四點(diǎn):

趨勢性:某個變量隨著時間進(jìn)展或自變量變化,呈現(xiàn)一種比較緩慢而長期的持續(xù)上升、下降、停留的同性質(zhì)變動趨向,但變動幅度可能不等。周期性:某因素由于外部影響隨著自然季節(jié)的交替出現(xiàn)高峰與低谷的規(guī)律。
隨機(jī)性:個別為隨機(jī)變動,整體呈統(tǒng)計(jì)規(guī)律。
綜合性:實(shí)際變化情況一般是幾種變動的疊加或組合。預(yù)測時一般設(shè)法過濾除去不規(guī)則變動,突出反映趨勢性和周期性變動。

3. 方法綜述

時間序列預(yù)測法分為傳統(tǒng)的時間序列預(yù)測方法和機(jī)器學(xué)習(xí)方法。傳統(tǒng)的時間序列方法指僅根據(jù)歷史時間序列的趨勢發(fā)展來預(yù)測未來時間序列的趨勢發(fā)展的方法,此類方法通過建立適當(dāng)?shù)臄?shù)學(xué)模型擬合歷史時間趨勢曲線,根據(jù)所建模型預(yù)測未來時間序列的趨勢曲線,常見模型包括ARMA,VAR,TAR,ARCH等。傳統(tǒng)時間序列方法所依賴的數(shù)據(jù)較簡單,只需要?dú)v史時間序列趨勢曲線便可構(gòu)建模型,因此可適用于多種場景,模型較為通用。但是,傳統(tǒng)時間序列預(yù)測法常面臨滯后性問題,即預(yù)測值晚于真實(shí)值幾個時間單位。

為提高預(yù)測的精度,機(jī)器學(xué)習(xí)算法被引入時序預(yù)測,此類方法根據(jù)具體的應(yīng)用場景,選取可能影響預(yù)測值的features,將這些features引入模型,應(yīng)用機(jī)器學(xué)習(xí)的分類/回歸模型來進(jìn)行預(yù)測。為提取features,機(jī)器學(xué)習(xí)方法需要多個維度的數(shù)據(jù),預(yù)測精度較高,建立的模型較為復(fù)雜,但是模型往往不夠通用,針對不同應(yīng)用場景需要重新提取features,建立模型?,F(xiàn)實(shí)預(yù)測中,機(jī)器學(xué)習(xí)方法往往結(jié)合傳統(tǒng)時序預(yù)測法來運(yùn)用。

4. ARIMA模型

ARIMA模型全稱自回歸積分滑動平均模型(Autoregressive Integrated Moving Average Model),是經(jīng)典的時間序列預(yù)測方法,我們從ARIMA模型入手,進(jìn)行了實(shí)時趨勢預(yù)測的初步探索。


ARIMA模型公式分為自回歸(AR)和移動平均(MA)兩部分,p為自回歸項(xiàng)數(shù),q為移動平均項(xiàng)數(shù),為保證時間序列的平穩(wěn)性,往往需對時間序列做d階差分。自回歸方法基于假設(shè)當(dāng)前時期的指標(biāo)值依賴于過去時期的指標(biāo)值,對過去時期的指標(biāo)值進(jìn)行加權(quán)平均得到當(dāng)前的指標(biāo)值;移動平均方法的思想是模擬指標(biāo)值的隨機(jī)性,指標(biāo)值受白噪聲序激勵的影響。

5. 預(yù)測實(shí)驗(yàn)

我們采用了某個業(yè)務(wù)的ctr數(shù)據(jù),分別以分鐘為單位和以小時為單位進(jìn)行預(yù)測,希望可以準(zhǔn)確預(yù)測下一時間單位(分鐘,小時)的ctr。
分鐘ctr預(yù)測(一天內(nèi)的ctr變化情況):

局部細(xì)節(jié)展示:

小時ctr(一周內(nèi)的小時ctr變化情況):

6. 展望

大數(shù)據(jù)時代的時序預(yù)測得到越來越多的關(guān)注,能夠準(zhǔn)確預(yù)測趨勢是時序預(yù)測的基礎(chǔ)應(yīng)用,其他場景如異常檢測等也應(yīng)用了時序預(yù)測方法,我們期待時序預(yù)測能夠有更多的應(yīng)用場景,比如通過精準(zhǔn)預(yù)測,發(fā)現(xiàn)可能出現(xiàn)的突發(fā)事件以提高應(yīng)對措施;加入空間維度,產(chǎn)生時空組合下的預(yù)測,提高預(yù)測的實(shí)際應(yīng)用價值,比如通過預(yù)測滴滴打車某一地區(qū)的打車人數(shù),引導(dǎo)用戶和出租車,產(chǎn)生更好的資源利用;精準(zhǔn)的金融預(yù)測,如預(yù)測理財(cái)通的買入買出數(shù)額,以幫助管理者合理指定策略等。這里初步探索的ARIMA模型是通用場景下的時序預(yù)測,在具體應(yīng)用場景下,預(yù)測可以做的更精確。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }