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

熱線電話:13121318867

登錄
首頁精彩閱讀前沿數(shù)據(jù)方法,如何解決數(shù)據(jù)漂移?
前沿數(shù)據(jù)方法,如何解決數(shù)據(jù)漂移?
2022-02-24
收藏
前沿數(shù)據(jù)方法,如何解決數(shù)據(jù)漂移?

CDA數(shù)據(jù)分析師 出品

作者:徐楊老師

編輯:Mika

同學(xué)們大家好,我是徐楊老師,今天給大家分享一個現(xiàn)在前沿的業(yè)務(wù)分析方法。

現(xiàn)在有一個非常前沿的詞叫做數(shù)據(jù)漂移,可能有一部分同學(xué)聽說過,英文是Data Drift。

數(shù)據(jù)漂移是什么?

那么,什么叫做數(shù)據(jù)漂移呢?

我們舉個例子,現(xiàn)在有一個APP非常火,叫做國家反詐中心APP。

我們知道,如今網(wǎng)絡(luò)詐騙是一個很讓大家頭疼的問題,那么假如說你作為公司的分析師,也受命需要去開發(fā)一套用來給你的企業(yè)識別異常用戶的一套分析模型。

經(jīng)常我們會碰到的一個問題是,你花了很大的力氣把分析模型都構(gòu)造好了,上線以后很快發(fā)現(xiàn),這個模型明明知道之前在測試集上跑的效果還不錯,但是實際上線部署以后模型的效果會快速下降,這是為什么呢?

其實很簡單。不止我們作為分析師的分析能力在進化,那些犯罪分子的犯罪方法也是太進化的。也就是說如果我們用的是以前的分析方法來識別新的犯罪分子的犯罪手段,肯定效果是要大打折扣的。

從技術(shù)語言來說,如果我們是用以前的數(shù)據(jù)訓(xùn)練出的模型來分析現(xiàn)在的一些新數(shù)據(jù),那么這就是訓(xùn)練模型的時候,我們面對的數(shù)據(jù)分布和我們實際模型上線部署時,面對的數(shù)據(jù)分布是產(chǎn)生了變化的。

這種問題就叫做數(shù)據(jù)漂移。

現(xiàn)在一般在業(yè)界解決數(shù)據(jù)漂移比較經(jīng)典的方法是引入自動機器學(xué)習(xí)

同學(xué)們知道我們一般做數(shù)據(jù)分析的時候是先收集數(shù)據(jù),然后構(gòu)造模型,最后輸出分析結(jié)果。

那么我們就可以在最后輸出分析結(jié)果的地方,增加一般叫做monitor,或者說叫做模型監(jiān)控的這樣一段代碼。

它的作用是實時分析,現(xiàn)在模型預(yù)測的效果是好是壞,然后調(diào)整的不是模型,調(diào)整的是誰呢?

如果監(jiān)測出問題,調(diào)整的是我們收集數(shù)據(jù)這個環(huán)節(jié)的工作。然后通過收集更新的數(shù)據(jù),實時去調(diào)整模型里面的參數(shù),然后再繼續(xù)去監(jiān)控我現(xiàn)在自動更新出的模型效果如何。

總結(jié)一下就是,傳統(tǒng)的方法是我們在訓(xùn)練模型的時候,拿到的數(shù)據(jù)集是固定的,我們動的是我們選擇哪些模型,模型里的參數(shù)怎么調(diào)優(yōu),怎么給出最后好的方法組合。這是我們傳統(tǒng)的方法,固定數(shù)據(jù),動模型,動參數(shù)。

現(xiàn)在更新的方法是,我們首先要保證我們的模型訓(xùn)練的沒有問題,然后固定模型,動數(shù)據(jù)。

那么,應(yīng)該怎么動數(shù)據(jù)?怎么去拿到新的數(shù)據(jù)?

是看我們監(jiān)控到的模型分析結(jié)果來,反過來決定我們要在哪些地方埋下更多的點,拿到更新的數(shù)據(jù),以及拿到哪些有用的特征,去實時的更新模型里面的超參數(shù)。

這是現(xiàn)在用來解決數(shù)據(jù)漂移一個比較前沿的分析方法,希望對大家有幫助。

好,以上就是今天的分享。如果大家還有數(shù)據(jù)分析方面相關(guān)的疑問,就在評論區(qū)留言。

數(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(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 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){ //倒計時完成 $(".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); }