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

熱線電話(huà):13121318867

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

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

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

舉一個(gè)典型的模型部署失敗的實(shí)例:Netflix大獎(jiǎng)競(jìng)賽。簡(jiǎn)單來(lái)說(shuō),這是一個(gè)面向大眾開(kāi)放的競(jìng)賽,參與者需要寫(xiě)一個(gè)協(xié)同過(guò)濾算法來(lái)預(yù)測(cè)電影的用戶(hù)評(píng)級(jí)。勝出者獲得了1000萬(wàn)美元的大獎(jiǎng)。然而最后,這個(gè)完整的模型卻沒(méi)有得到部署。

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

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

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

模型部署失敗的8個(gè)原因

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

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

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

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

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

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

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

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

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

5、不能解決根本原因,僅僅試圖提高一個(gè)過(guò)程的影響。我們?yōu)槭裁醋瞿P??最重要的原因是為找到一個(gè)特定響應(yīng)的驅(qū)動(dòng)程序。這些驅(qū)動(dòng)程序又是什么?驅(qū)動(dòng)程序往往是響應(yīng)率的根本原因。如果你引進(jìn)所有影響當(dāng)做輸入變量,然后這些變量也會(huì)作為重要輸出時(shí)將會(huì)發(fā)生什么?這將沒(méi)有任何用處,因?yàn)槟銢](méi)有改變?nèi)魏慰赡軒?lái)變化的事情。

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

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

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

例如,你可能得到一些工作日的銷(xiāo)售量作為重要變量來(lái)預(yù)測(cè)一個(gè)分支的月銷(xiāo)售量。我們就說(shuō)這種變量具有高預(yù)測(cè)性。但是對(duì)于我們的評(píng)分窗口而言,有一些月份僅僅有10-15天的工作日。如果你的訓(xùn)練數(shù)據(jù)沒(méi)有這樣的月份,你的模型可能無(wú)法進(jìn)行準(zhǔn)確預(yù)測(cè)。

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } 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)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }