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

熱線電話:13121318867

登錄
首頁精彩閱讀構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的20個(gè)經(jīng)驗(yàn)教訓(xùn)
構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的20個(gè)經(jīng)驗(yàn)教訓(xùn)
2016-01-05
收藏

構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的20個(gè)經(jīng)驗(yàn)教訓(xùn)

數(shù)據(jù)科學(xué)家對(duì)優(yōu)化算法和模型以進(jìn)一步發(fā)掘數(shù)據(jù)價(jià)值的追求永無止境。在這個(gè)過程中他們不僅需要總結(jié)前人的經(jīng)驗(yàn)教訓(xùn),還需要有自己的理解與見地,雖然后者取決于人的靈動(dòng)性,但是前者卻是可以用語言來傳授的。最近Devendra Desale就在KDnuggets上發(fā)表了一篇文章,總結(jié)了Quora的工程副總裁Xavier AmatriainNetflixQuora從事推薦系統(tǒng)機(jī)器學(xué)習(xí)工作時(shí)所總結(jié)的20條經(jīng)驗(yàn)教訓(xùn)。 

更多的數(shù)據(jù) & 更好的模型

并不是數(shù)據(jù)越多結(jié)果就越好,高質(zhì)量的數(shù)據(jù)才能產(chǎn)生高質(zhì)量的結(jié)果。多并不意味著好,事實(shí)上,有些情況下較少的數(shù)據(jù)反而效果更好,因此數(shù)據(jù)要適量,質(zhì)量要高。

可能并不需要所有的大數(shù)據(jù)

組織可能積累了不同種類的大數(shù)據(jù),但是并不是每一個(gè)場(chǎng)景都會(huì)用到所有的數(shù)據(jù)。大部分情況下,通過一些樣本數(shù)據(jù)就能獲得比較好甚至是比使用全量數(shù)據(jù)更好的效果。

有時(shí)候更復(fù)雜的模型并沒有帶來任何提升,但這并不意味著就不需要它了

如果將一個(gè)線性模型的特征數(shù)據(jù)作為另一個(gè)更復(fù)雜模型(例如非線性模型)的輸入,而復(fù)雜模型產(chǎn)生的結(jié)果并沒有任何提升,那并不意味著這個(gè)復(fù)雜模型就毫無意義。因?yàn)橥ǔG闆r下只有更復(fù)雜的特征數(shù)據(jù)才需要更復(fù)雜的模型,對(duì)于簡(jiǎn)單的特征數(shù)據(jù)復(fù)雜模型往往難以發(fā)揮出自身優(yōu)勢(shì)。

學(xué)會(huì)處理展現(xiàn)偏見

系統(tǒng)通常會(huì)將那些預(yù)測(cè)的比較正確的結(jié)果展示給用戶,用戶會(huì)選擇性的查看,但是用戶不看的那部分并不一定就毫無吸引力。更好的選擇是通過關(guān)注模型或者MAB分析用戶的點(diǎn)擊概率,合理地呈現(xiàn)內(nèi)容。

認(rèn)真思考訓(xùn)練數(shù)據(jù)

構(gòu)建訓(xùn)練和測(cè)試數(shù)據(jù)的時(shí)候需要充分考慮結(jié)果和各種不同的場(chǎng)景。例如,如果要訓(xùn)練一個(gè)預(yù)測(cè)用戶是否喜歡某部電影的分類器,那么產(chǎn)生數(shù)據(jù)的可能場(chǎng)景包括:用戶看完電影并給出了一星的評(píng)價(jià),用戶看了5分鐘、15分鐘或者一小時(shí)之后離開,用戶再次查看電影等,如何選擇這些數(shù)據(jù)是需要經(jīng)過深思熟慮的。

UI是用戶與算法通信的唯一方式

系統(tǒng)通過UI展現(xiàn)算法結(jié)果,用戶通過UI提供算法反饋,它們應(yīng)該是相互對(duì)應(yīng)的關(guān)系,任何一個(gè)發(fā)生變化另一個(gè)也需要進(jìn)行改變。 數(shù)據(jù)和模型是否已經(jīng)足夠好了?

要有正確的評(píng)估方法

產(chǎn)品決策始終應(yīng)該是數(shù)據(jù)驅(qū)動(dòng)的。對(duì)于不同的問題,要選擇正確的評(píng)估方法,例如,通過A/B測(cè)試來衡量不同特征數(shù)據(jù),不同算法的優(yōu)劣;通過脫機(jī)測(cè)試使用 (IR) 度量測(cè)試模型的性能。

分布式算法重要,但是理解它的分布式程度更重要

分布式/并行算法分三級(jí):第一級(jí)針對(duì)總體的每一個(gè)子集,第二級(jí)針對(duì)超參數(shù)的每一種組合,第三級(jí)針對(duì)訓(xùn)練數(shù)據(jù)的每一個(gè)子集,每一級(jí)都有不同的要求。

慎重地選擇超參數(shù)

要選擇正確的度量標(biāo)準(zhǔn)自動(dòng)化超參數(shù)的優(yōu)化。 有些事情能線下做,有些不能,有些介于兩者之間,為此需要支持多層次的機(jī)器學(xué)習(xí)。

隱式信號(hào)幾乎總是打敗顯式信號(hào)

許多數(shù)據(jù)科學(xué)家認(rèn)為隱式反饋更有用。但真的是這樣么?實(shí)際上有些情況下結(jié)合不同形式的隱式和顯式信號(hào)能更好地表示長期目標(biāo)。

模型會(huì)學(xué)習(xí)你教給他的內(nèi)容

機(jī)器學(xué)習(xí)算法并不是一個(gè)隨意的過程,它的每一步都涉及到科學(xué)方法。模型要從訓(xùn)練數(shù)據(jù)、目標(biāo)函數(shù)和度量中學(xué)習(xí)。

有監(jiān)督 + 無監(jiān)督的學(xué)習(xí)

開發(fā)模型的時(shí)候不能簡(jiǎn)單地選擇有監(jiān)督的或者無監(jiān)督的學(xué)習(xí),它們各有長處,適用場(chǎng)景不同,用戶需要根據(jù)具體情況同時(shí)迭代地使用它們,通過兩種方法的融合獲得更好的效果。

所有的事情都是一種集成(Ensemble

使用機(jī)器學(xué)習(xí)的大部分應(yīng)用程序都是一個(gè)集合體。你可以添加完全不同的方法(例如CF和基于內(nèi)容的方式),你也可以在集成層使用許多不同的模型(例如LR、GDBTRFANN)。

一個(gè)模型的輸出可能是另一個(gè)模型的輸入

確保模型的輸出具有良好的數(shù)據(jù)依賴關(guān)系,例如可以容易地改變值的分布而不影響依賴它的其他模型。要盡量避免反饋循環(huán),因?yàn)檫@樣會(huì)在管道中造成依賴和瓶頸。另外,機(jī)器學(xué)習(xí)的模式設(shè)計(jì)也需要遵循最佳的軟件工程實(shí)踐,例如封裝、抽象、高內(nèi)聚和松耦合。

特征工程的失與得

良好的機(jī)器學(xué)習(xí)特征可重用、可轉(zhuǎn)換、可解釋并且可靠。捕獲的特征越好,結(jié)果越精確。為了量化數(shù)據(jù)的屬性必須將維度翻譯成特征

機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施的兩面性

任何機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施都需要考慮兩種不同的模式。模式1:機(jī)器學(xué)習(xí)實(shí)驗(yàn)需要擴(kuò)展性、易用性和可重用性。模式2:機(jī)器學(xué)習(xí)產(chǎn)品不僅需要模式1的特性,還需要性能和可伸縮性。理想情況下,應(yīng)該保持這兩種模式盡可能地相近。

要能回答有關(guān)于模型的問題

必須能夠向產(chǎn)品所有者解釋模型的行為,知道如何使用模型,它需要哪些特征,導(dǎo)致失敗的原因是什么;同時(shí)還需要知道產(chǎn)品所有者或投資者的期望,能夠向他們介紹模型為產(chǎn)品帶來了什么價(jià)值。

不需要分發(fā)機(jī)器學(xué)習(xí)算法

Hadoop/Spark這些容易的分布式計(jì)算平臺(tái)也有一些陷阱,例如成本和網(wǎng)絡(luò)延遲,實(shí)際上有些情況不使用它們也能很好的完成工作,通過智能數(shù)據(jù)樣本、離線模式以及高效的并行代碼等方法訓(xùn)練模型所花費(fèi)的時(shí)間甚至比這些分布式平臺(tái)要少的多。

數(shù)據(jù)科學(xué) vs. 機(jī)器學(xué)習(xí)工程不為人知的故事

擁有強(qiáng)大的能夠挖掘數(shù)據(jù)價(jià)值的數(shù)據(jù)科學(xué)家是非常值得的。但是既懂?dāng)?shù)據(jù)又有扎實(shí)工程技能的數(shù)據(jù)科學(xué)家非常稀少,通常情況下,構(gòu)建數(shù)據(jù)科學(xué)家團(tuán)隊(duì)和機(jī)器學(xué)習(xí)工程團(tuán)隊(duì)并讓他們通力配合才是比較好的方案。

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

若不方便掃碼,搜微信號(hào):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)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(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ù)說明請(qǐng)參見: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); }