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

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代沒有人談?wù)摰幕緮?shù)據(jù)科學(xué)技能
沒有人談?wù)摰幕緮?shù)據(jù)科學(xué)技能
2022-03-14
收藏

谷歌“數(shù)據(jù)科學(xué)家的基本技能”。結(jié)果最多的是一長串專業(yè)術(shù)語,名為hard skills。Python、代數(shù)、統(tǒng)計和SQL是一些最流行的方法。后來,就出現(xiàn)了軟技能-溝通、商業(yè)頭腦、團(tuán)隊合作精神等。

讓我們假裝你是一個擁有以上所有能力的超人。你從五歲開始編寫代碼,你是Kaggle特級大師,你的會議論文肯定會獲得最佳論文獎。你知道嗎?您的項目仍然有很高的機會努力達(dá)到成熟并成為成熟的商業(yè)產(chǎn)品。

最近的研究估計,超過85%的數(shù)據(jù)科學(xué)項目未能達(dá)到生產(chǎn)。這些研究為失敗提供了許多原因。我從來沒有看到所謂的基本技能被作為一個潛在的原因提到過一次。

我是說以上技巧不重要嗎?當(dāng)然,我不是。硬技能和軟技能都至關(guān)重要。關(guān)鍵是它們是必要的,但不是充分的。而且,它們很受歡迎,出現(xiàn)在每一個谷歌搜索上。因此,機會是你已經(jīng)知道你是否需要提高你的數(shù)學(xué)水平或團(tuán)隊合作。

我想談?wù)勁c流行的硬技能和軟技能相輔相成的技能。我稱它們?yōu)?em>工程技能。它們對于與真正的客戶一起構(gòu)建真正的產(chǎn)品特別有用。遺憾的是,工程技術(shù)很少教給數(shù)據(jù)科學(xué)家。他們帶著經(jīng)驗來的。大多數(shù)初級數(shù)據(jù)科學(xué)家缺乏這些。

工程技能與數(shù)據(jù)工程領(lǐng)域無關(guān)。我使用術(shù)語工程技能來區(qū)分他們與純粹的科學(xué)或研究技能。根據(jù)劍橋詞典,Engineering是指運用科學(xué)原理設(shè)計和建造機器、結(jié)構(gòu)和其他項目。在本文中,工程是將科學(xué)轉(zhuǎn)化為產(chǎn)品的使能器組件。如果沒有適當(dāng)?shù)墓こ?,模型將繼續(xù)在預(yù)定義的數(shù)據(jù)集上執(zhí)行。但他們永遠(yuǎn)無法接觸到真正的顧客。

外賣:


重要且經(jīng)常被忽視的技能有:

  1. 簡單化. Make sure your code and your models are simple, but not simplistic.
  2. 魯棒性. Your assumptions are wrong. Take a breath and continue to code.
  3. 模塊化. Divide and conquer. Dig down to the smallest problem and then find an open-source to solve it.
  4. 水果采摘. Don’t focus only on low-hanging fruits. But make sure you have always something to pick.

簡單化


實體不應(yīng)該不必要地乘以”--奧卡姆的威廉?!?em>簡單是終極的復(fù)雜”--萊昂納多·達(dá)·芬奇。“一切都應(yīng)該盡可能簡單,而不是更簡單”--阿爾伯特·愛因斯坦?!?em>這是我的口頭禪之一--專注和簡單”--史蒂夫·喬布斯。

我本可以用簡單的引文填滿整頁。研究人員、設(shè)計師、工程師、哲學(xué)家和作家稱贊簡單,并表示簡單有其自身的價值。他們的理由變了,但結(jié)論是一樣的。你達(dá)到完美不是在沒有什么可添加的時候,而是在沒有什么可刪除的時候。

軟件工程師絕對意識到簡單性的價值。關(guān)于如何使軟件更簡單的書籍和文章數(shù)不勝數(shù)。我記得親吻原則--保持簡單,愚蠢--甚至在我的一門本科課程上教過。簡單的軟件維護(hù)成本更低,更容易更改,更不容易出現(xiàn)bug。對此有廣泛的共識。

在數(shù)據(jù)科學(xué)中,情況就大不相同了。有許多文章,例如,“簡單性的優(yōu)點:關(guān)于算法交易中的ML模型”byKristian Bondo Hansenor“Alfredo Gemma的簡單性在數(shù)據(jù)科學(xué)革命中的作用”。但它們是一個例外,而不是規(guī)則。數(shù)據(jù)科學(xué)家的主流往好里說并不關(guān)心,往壞里說更喜歡復(fù)雜的解決方案。

在繼續(xù)討論為什么數(shù)據(jù)科學(xué)家通常不關(guān)心,為什么他們應(yīng)該關(guān)心,以及如何處理這些問題之前,讓我們看看簡單性意味著什么。根據(jù)劍橋詞典,是容易理解或做的品質(zhì),是平平淡淡的品質(zhì),沒有不必要的或額外的東西或裝飾

我發(fā)現(xiàn)定義簡單性的最直觀的方法是通過negativa,作為復(fù)雜性的對立面。根據(jù)同一詞典,復(fù)雜性是由許多相互聯(lián)系的部分或元素組成的;復(fù)雜。雖然我們不能總是說某件事很簡單,但我們通??梢哉f某件事很復(fù)雜。我們的目標(biāo)不是復(fù)雜,也不是創(chuàng)造復(fù)雜的解決方案。

在數(shù)據(jù)科學(xué)中尋求簡單性的原因與在所有工程學(xué)科中的原因相同。更簡單的解決方案要便宜得多。現(xiàn)實生活中的產(chǎn)品不是Kaggle比賽。需求是不斷修改的。當(dāng)復(fù)雜的解決方案需要適應(yīng)新的條件時,它很快就變成了維護(hù)的噩夢。

很容易理解為什么數(shù)據(jù)科學(xué)家,尤其是應(yīng)屆畢業(yè)生,更喜歡復(fù)雜的解決方案。他們剛從學(xué)院來。他們已經(jīng)完成了論文,甚至可能發(fā)表了一篇論文。一份學(xué)術(shù)出版物的評判標(biāo)準(zhǔn)是準(zhǔn)確性、數(shù)學(xué)的高雅性、新穎性和方法論,而很少是實用性和簡單性。

一個把精確度提高0.5%的復(fù)雜想法對任何學(xué)生來說都是巨大的成功。同樣的想法對于一個數(shù)據(jù)科學(xué)家來說是失敗的。即使它的理論是合理的,它也可能隱藏潛在的假設(shè),這些假設(shè)將被證明是錯誤的。在任何情況下,增量改進(jìn)都不值得復(fù)雜性的代價。

那么,如果你、你的老板、你的同事或你的下屬喜歡復(fù)雜的“最佳”解決方案,該怎么辦?如果是你的老板,你很可能注定要失敗,你最好開始找一份新工作。在其他情況下,保持簡單,愚蠢。

魯棒性


俄羅斯文化有一個“沃斯”的概念。維基百科將其描述為“盲目信任神圣的天意,指望純粹的運氣”。Avos是卡車司機決定超載的幕后黑手。它隱藏在任何非魯棒的解決方案后面。

什么是穩(wěn)健性?或者具體地說,什么是數(shù)據(jù)科學(xué)中的健壯性?與我們的討論最相關(guān)的定義是“算法的魯棒性是它對假設(shè)模型和現(xiàn)實之間的差異的敏感性”,來自Mariano Scain論文。對現(xiàn)實的不正確假設(shè)是數(shù)據(jù)科學(xué)家問題的主要來源。它們也是上面那位卡車司機的問題來源。

細(xì)心的讀者可能會說,健壯性也是一個算法在執(zhí)行過程中處理錯誤的能力。他們會是對的。但它與我們的討論不太相關(guān)。它是一個具有定義良好的解決方案的技術(shù)主題。

在大數(shù)據(jù)和深度之前的世界里,建立強大系統(tǒng)的必要性是顯而易見的。特征和算法的設(shè)計都是手工完成的。測試通常是在數(shù)百個,也許數(shù)千個例子上進(jìn)行的。即使是最聰明的算法創(chuàng)建者也從未假設(shè)他們能想到所有可能的用例。

大數(shù)據(jù)時代是否改變了健壯性的本質(zhì)?我們?yōu)槭裁匆P(guān)心我們是否可以使用代表所有可以想象的場景的數(shù)百萬數(shù)據(jù)樣本來設(shè)計、訓(xùn)練和測試我們的模型呢?

它發(fā)現(xiàn)魯棒性仍然是一個重要的尚未解決的問題。每年頂級期刊都會發(fā)表關(guān)于算法魯棒性的論文來證明這一點,例如“提高深度神經(jīng)網(wǎng)絡(luò)的魯棒性”和“基于模型的魯棒深度學(xué)習(xí)”。數(shù)據(jù)的數(shù)量沒有轉(zhuǎn)化為質(zhì)量。用于培訓(xùn)的信息量并不意味著我們可以覆蓋所有的用例。

而如果牽涉到人,現(xiàn)實總會出乎意料,難以想象。我們大多數(shù)人都很難說出午飯吃什么,更不用說明天了。數(shù)據(jù)很難幫助預(yù)測人類的行為。

那么,怎樣做才能使您的模型更加健壯呢?第一個選擇是閱讀適當(dāng)?shù)恼撐牟嵤┧麄兊南敕?。這樣很好。但這些論文并不總是可以概括的。通常,你不能把一個想法從一個領(lǐng)域復(fù)制到另一個領(lǐng)域。

我想提出三個一般做法。遵循這些實踐并不能保證健壯的模型,但它大大降低了脆弱解決方案的機會。

性能安全裕度。安全裕度是任何工程的基礎(chǔ)。通常的做法是為了安全起見,采取需求并添加20-30%。一部能裝1000kg的電梯,輕松就能裝1300kg。而且,它被測試為容納1300kg而不是1000kg。工程師為意外情況做準(zhǔn)備。

在數(shù)據(jù)科學(xué)中,安全邊際的等價物是什么?我認(rèn)為這是KPI或成功標(biāo)準(zhǔn)。即使發(fā)生了意想不到的事情,你仍然會在門檻之上。

這種做法的重要后果是,您將停止追逐增量改進(jìn)。如果您的模型將KPI增加1%,您就不可能健壯。在所有的統(tǒng)計顯著性測試中,環(huán)境中的任何微小變化都將扼殺您的努力。

過度測試。忘記單一的測試/訓(xùn)練/驗證部門。您必須在所有可能的組合上交叉驗證您的模型。你有不同的用戶嗎?按照用戶ID劃分,做幾十次。你的數(shù)據(jù)隨時間變化嗎?根據(jù)時間戳進(jìn)行劃分,并確保每天在驗證組中出現(xiàn)一次。用隨機值“垃圾郵件”您的數(shù)據(jù),或者在您的數(shù)據(jù)點之間交換某些特性的值。然后在臟數(shù)據(jù)上測試。

我發(fā)現(xiàn)假設(shè)我的模型有錯誤非常有用,直到證明不是這樣。

關(guān)于數(shù)據(jù)科學(xué)和ML測試的兩個有趣的來源--亞歷克斯·古德的博客“用Python進(jìn)行機器學(xué)習(xí),一種測試驅(qū)動的方法”。

不要在沙子上建造城堡。減少對其他未測試組件的依賴。不要在另一個高風(fēng)險且未經(jīng)驗證的組件上構(gòu)建模型。即使該組件的開發(fā)人員發(fā)誓不會發(fā)生任何事情。

模塊化


模塊化設(shè)計是所有現(xiàn)代科學(xué)的基本原則。它是分析方法的直接結(jié)果。分析方法是一個將大問題分解成小塊的過程。分析方法是科學(xué)革命的基石。

你的問題越小越好。這里的“更好”不太好。這是必須的。它將節(jié)省大量的時間、精力和金錢。當(dāng)一個問題很小,定義明確,并且不附帶大量假設(shè)時,解決方案是準(zhǔn)確的,易于測試。

大多數(shù)數(shù)據(jù)科學(xué)家都熟悉軟件設(shè)計中的模塊化。但是即使是最優(yōu)秀的程序員,他們的python代碼非常清晰,也經(jīng)常不能將模塊化應(yīng)用到數(shù)據(jù)科學(xué)本身。

失敗很容易證明。模塊化設(shè)計需要一種方法將幾個較小的模型組合成一個大模型。目前還沒有這樣的機器學(xué)習(xí)方法。

但我發(fā)現(xiàn)有一些實用的指導(dǎo)方針是有用的:

  • 遷移學(xué)習(xí)。遷移學(xué)習(xí)簡化了現(xiàn)有解決方案的使用。你可以把它看作是把你的問題一分為二。第一部分創(chuàng)建低維特征表示。第二部分直接對相關(guān)KPI進(jìn)行優(yōu)化。
  • 開源。盡可能使用開箱即用的開源解決方案。它使您的代碼按定義是模塊化的。
  • 忘記最佳。很容易從零開始構(gòu)建一個為您的需求優(yōu)化的系統(tǒng),而不是修改現(xiàn)有的解決方案。但只有當(dāng)您能夠證明您的系統(tǒng)的性能顯著優(yōu)于現(xiàn)有系統(tǒng)時,它才是合理的。
  • 模型集成。不要害怕采取幾種不同的方法,把它們?nèi)舆M(jìn)一個鍋里。這是大多數(shù)Kaggle比賽獲勝的原因。
  • 劃分?jǐn)?shù)據(jù)。不要試圖創(chuàng)造“一個偉大的模式”,雖然理論上,這可能是可能的。例如,如果你處理預(yù)測客戶行為,不要為一個全新的客戶和一個已經(jīng)使用你的服務(wù)一年的人建立同樣的模型。

CheckCompositional Deep learning,了解關(guān)于深度學(xué)習(xí)構(gòu)建塊的更多細(xì)節(jié)。為了科學(xué)證明,readPruned神經(jīng)網(wǎng)絡(luò)是驚人的模塊化。

水果采摘


產(chǎn)品經(jīng)理和數(shù)據(jù)科學(xué)家之間一直存在著緊張關(guān)系。產(chǎn)品經(jīng)理希望數(shù)據(jù)科學(xué)家專注于低垂的果實。他們的邏輯很清楚。他們說,企業(yè)只關(guān)心水果的數(shù)量和它們生長的地方。水果越多,我們做得越好。他們拋出了各種各樣的流行語--帕累托、MVP、最好的是好的敵人等等。

另一方面,數(shù)據(jù)科學(xué)家指出,低掛的水果腐敗快,味道不好。換句話說,解決簡單的問題影響有限,治標(biāo)不治本。通常,這是學(xué)習(xí)新技術(shù)的借口,但通常它們是對的。

就我個人而言,我在兩種觀點之間移動。讀過p之后。泰爾的零對一確信低垂的果實是浪費時間。在初創(chuàng)企業(yè)呆了將近七年后,我確信創(chuàng)造一個低級的MVP是正確的第一步。
最近,我開發(fā)了自己的方法,將這兩個極端統(tǒng)一起來。一個數(shù)據(jù)科學(xué)家的典型環(huán)境是一個動態(tài)的、怪異的世界,樹在四面八方生長。樹木一直在切換方向。它們可以倒著生長,也可以側(cè)著生長。

最好的水果確實在頂端。但是如果我們花太多時間建造梯子,樹就會移動。因此,最好的是瞄準(zhǔn)頂部,但要不斷監(jiān)測頂部在哪里。

從隱喻到實踐,在漫長的發(fā)展過程中,事情總是有可能發(fā)生變化。原來的問題會變得無關(guān)緊要,新的數(shù)據(jù)源會出現(xiàn),原來的假設(shè)會被證明是錯誤的,KPI會被替換等等。

目標(biāo)是最好的,但記住在每隔幾個月推出一個工作產(chǎn)品的同時也要做到這一點。產(chǎn)品可能不會帶來最好的水果,但你會更好地感受到水果是如何生長的。


數(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 進(jìn)行初始化 // 參數(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); }