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

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)分析/機器學(xué)習(xí)模型無法部署的八大原因
數(shù)據(jù)分析/機器學(xué)習(xí)模型無法部署的八大原因
2016-06-23
收藏

數(shù)據(jù)分析/機器學(xué)習(xí)模型無法部署的八大原因

不要成為一個模型無法部署的數(shù)據(jù)科學(xué)家

舉一個典型的模型部署失敗的實例:Netflix大獎競賽。簡單來說,這是一個面向大眾開放的競賽,參與者需要寫一個協(xié)同過濾算法來預(yù)測電影的用戶評級。勝出者獲得了1000萬美元的大獎。然而最后,這個完整的模型卻沒有得到部署。

不僅僅是Netflix,大多數(shù)公司都發(fā)生過這種戲劇性的事件。就在最近,我與許多一流數(shù)據(jù)分析公司的公司高管進行了交流,而他們最大的擔(dān)憂就是公司50%的預(yù)測模型都得不到實現(xiàn)。

為什么要建立一個在現(xiàn)實世界中無法使用的模型呢?這就好像你做一個蛋糕,嘗試過后發(fā)現(xiàn)很美味,但卻永遠不讓任何人吃一個道理。

在本文中,我列出了在建立模型時你應(yīng)當(dāng)謹(jǐn)記的所有可能原因。在我的職業(yè)生涯中,我曾多次遇到過這種情況。因此,我認(rèn)為在我經(jīng)驗的幫助下,可以幫助你克服這種情況。

模型部署失敗的8個原因

1、高假正性(FP):這看上去似乎有點專業(yè),而目前最重要的是了解什么是假正。假設(shè)在一個分類模型中,我們想要預(yù)測客戶是應(yīng)答者(給出答案的人)還是非應(yīng)答者(不給出答案的人)

想象一下,如果你預(yù)測一個人X會是一個應(yīng)答者,但實際上他并不會給出任何答案。這種情況下,X就被稱為假正。那么在現(xiàn)實世界中這會造成什么影響,我知道你想要問這個問題。

舉個例子,例如你需要為1000個客戶建立一個保留活動,在這1000個客戶中會有100個客戶流失(離開)。你創(chuàng)建一個了不起的模型,在這個模型中前十個人中有四個人會離開(相等的十大部分)

這就意味著,從你預(yù)測的前100個客戶中,40個客戶會流失。所以,你推薦企業(yè)專為這100個客戶提供一個吸引人的購物方案,這樣可以阻止他們流失。但是,這仍有很大問題。

問題就是你花費在那些客戶身上的每一美元中,只有0.4美元被用來阻止客戶流失。剩下的0.6美元都浪費在那些并不是真心想要離開的假正(FP)客戶身上。

2、不了解基本業(yè)務(wù)模型:最近,對于使用機器學(xué)習(xí)算法和更加復(fù)雜的模型建立技術(shù)的需求正在日益增長。換句話說,各企業(yè)正在逐漸減少使用傳統(tǒng)的模型技術(shù)。

毫無疑問,使用機器學(xué)習(xí)技術(shù)可以加大預(yù)測能力。但是企業(yè)仍不是太接受這種黑盒技術(shù)。以我經(jīng)驗而言,這將導(dǎo)致實施一個預(yù)測策略時會需要更長的前置時間。由于大多數(shù)的應(yīng)用程序業(yè)務(wù)上是高度動態(tài)的,該模型也會由于較長的前置時間變得越來越冗余

3、對業(yè)務(wù)問題不夠了解:創(chuàng)建過預(yù)測模型對分析師或者業(yè)務(wù)同行而言都會在其履歷上添加濃墨重彩的一筆。然而,這并不是你建立模型的目的。在某些情況下,分析師進入創(chuàng)建模型階段,并會試圖削減本應(yīng)分配給了解業(yè)務(wù)問題的時間。

4、模型實施過于復(fù)雜:預(yù)測能力是這些模型實施的靈魂,但是一般情況下,預(yù)測能力是以模型的復(fù)雜度為代價的。為使模型更加健壯我們開始引入雙變量和三變量,不論這些變量對業(yè)務(wù)來說有沒有意義。這樣的模型在書本上可能是十分精彩的,然而就因如此,他們也只能停留在書本上,并不能在現(xiàn)實世界中實現(xiàn)。

5、不能解決根本原因,僅僅試圖提高一個過程的影響。我們?yōu)槭裁醋瞿P停孔钪匾脑蚴菫檎业揭粋€特定響應(yīng)的驅(qū)動程序。這些驅(qū)動程序又是什么?驅(qū)動程序往往是響應(yīng)率的根本原因。如果你引進所有影響當(dāng)做輸入變量,然后這些變量也會作為重要輸出時將會發(fā)生什么?這將沒有任何用處,因為你沒有改變?nèi)魏慰赡軒碜兓氖虑椤?/span>

6、訓(xùn)練人口與得分人口完全不同:在很多情況下,我們最終是在一個與實際人口完全不同的人口中建立模型。舉例來說,如果你正在創(chuàng)建一個針對人口的活動,并且以前沒有類似的活動。在這種情況下,我們先從基本假設(shè)開始,假設(shè)該人口具有高響應(yīng)率,且有可能有高增量響應(yīng)率。但是這種假設(shè)很少是真實的,因此該模型將很難使用。

7、不穩(wěn)定模型:高性能模型通常是高度不穩(wěn)定的,并且不在同一時間內(nèi)執(zhí)行。在這種情況下,業(yè)務(wù)可能需要高頻的模型修正。隨著模型創(chuàng)建的前置時間越來越長,業(yè)務(wù)可能會開始回到基于直覺的策略。

8、依賴于高動態(tài)變量的模型:動態(tài)變量給模型帶來真正的預(yù)測能力。然而,你也可能會有這樣的變量,它的賦值永遠不會顯示在訓(xùn)練窗口。

例如,你可能得到一些工作日的銷售量作為重要變量來預(yù)測一個分支的月銷售量。我們就說這種變量具有高預(yù)測性。但是對于我們的評分窗口而言,有一些月份僅僅有10-15天的工作日。如果你的訓(xùn)練數(shù)據(jù)沒有這樣的月份,你的模型可能無法進行準(zhǔn)確預(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(), // 加隨機數(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); }