
谷歌“數(shù)據(jù)科學(xué)家的基本技能”。結(jié)果最多的是一長(zhǎng)串專業(yè)術(shù)語,名為hard skills。Python、代數(shù)、統(tǒng)計(jì)和SQL是一些最流行的方法。后來,就出現(xiàn)了軟技能-溝通、商業(yè)頭腦、團(tuán)隊(duì)合作精神等。
讓我們假裝你是一個(gè)擁有以上所有能力的超人。你從五歲開始編寫代碼,你是Kaggle特級(jí)大師,你的會(huì)議論文肯定會(huì)獲得最佳論文獎(jiǎng)。你知道嗎?您的項(xiàng)目仍然有很高的機(jī)會(huì)努力達(dá)到成熟并成為成熟的商業(yè)產(chǎn)品。
最近的研究估計(jì),超過85%的數(shù)據(jù)科學(xué)項(xiàng)目未能達(dá)到生產(chǎn)。這些研究為失敗提供了許多原因。我從來沒有看到所謂的基本技能被作為一個(gè)潛在的原因提到過一次。
我是說以上技巧不重要嗎?當(dāng)然,我不是。硬技能和軟技能都至關(guān)重要。關(guān)鍵是它們是必要的,但不是充分的。而且,它們很受歡迎,出現(xiàn)在每一個(gè)谷歌搜索上。因此,機(jī)會(huì)是你已經(jīng)知道你是否需要提高你的數(shù)學(xué)水平或團(tuán)隊(duì)合作。
我想談?wù)勁c流行的硬技能和軟技能相輔相成的技能。我稱它們?yōu)?em>工程技能。它們對(duì)于與真正的客戶一起構(gòu)建真正的產(chǎn)品特別有用。遺憾的是,工程技術(shù)很少教給數(shù)據(jù)科學(xué)家。他們帶著經(jīng)驗(yàn)來的。大多數(shù)初級(jí)數(shù)據(jù)科學(xué)家缺乏這些。
工程技能與數(shù)據(jù)工程領(lǐng)域無關(guān)。我使用術(shù)語工程技能來區(qū)分他們與純粹的科學(xué)或研究技能。根據(jù)劍橋詞典,Engineering是指運(yùn)用科學(xué)原理設(shè)計(jì)和建造機(jī)器、結(jié)構(gòu)和其他項(xiàng)目。在本文中,工程是將科學(xué)轉(zhuǎn)化為產(chǎn)品的使能器組件。如果沒有適當(dāng)?shù)墓こ蹋P蛯⒗^續(xù)在預(yù)定義的數(shù)據(jù)集上執(zhí)行。但他們永遠(yuǎn)無法接觸到真正的顧客。
重要且經(jīng)常被忽視的技能有:
“實(shí)體不應(yīng)該不必要地乘以”--奧卡姆的威廉。“簡(jiǎn)單是終極的復(fù)雜”--萊昂納多·達(dá)·芬奇?!?em>一切都應(yīng)該盡可能簡(jiǎn)單,而不是更簡(jiǎn)單”--阿爾伯特·愛因斯坦?!?em>這是我的口頭禪之一--專注和簡(jiǎn)單”--史蒂夫·喬布斯。
我本可以用簡(jiǎn)單的引文填滿整頁。研究人員、設(shè)計(jì)師、工程師、哲學(xué)家和作家稱贊簡(jiǎn)單,并表示簡(jiǎn)單有其自身的價(jià)值。他們的理由變了,但結(jié)論是一樣的。你達(dá)到完美不是在沒有什么可添加的時(shí)候,而是在沒有什么可刪除的時(shí)候。
軟件工程師絕對(duì)意識(shí)到簡(jiǎn)單性的價(jià)值。關(guān)于如何使軟件更簡(jiǎn)單的書籍和文章數(shù)不勝數(shù)。我記得親吻原則--保持簡(jiǎn)單,愚蠢--甚至在我的一門本科課程上教過。簡(jiǎn)單的軟件維護(hù)成本更低,更容易更改,更不容易出現(xiàn)bug。對(duì)此有廣泛的共識(shí)。
在數(shù)據(jù)科學(xué)中,情況就大不相同了。有許多文章,例如,“簡(jiǎn)單性的優(yōu)點(diǎn):關(guān)于算法交易中的ML模型”byKristian Bondo Hansenor“Alfredo Gemma的簡(jiǎn)單性在數(shù)據(jù)科學(xué)革命中的作用”。但它們是一個(gè)例外,而不是規(guī)則。數(shù)據(jù)科學(xué)家的主流往好里說并不關(guān)心,往壞里說更喜歡復(fù)雜的解決方案。
在繼續(xù)討論為什么數(shù)據(jù)科學(xué)家通常不關(guān)心,為什么他們應(yīng)該關(guān)心,以及如何處理這些問題之前,讓我們看看簡(jiǎn)單性意味著什么。根據(jù)劍橋詞典,是容易理解或做的品質(zhì),是平平淡淡的品質(zhì),沒有不必要的或額外的東西或裝飾。
我發(fā)現(xiàn)定義簡(jiǎn)單性的最直觀的方法是通過negativa,作為復(fù)雜性的對(duì)立面。根據(jù)同一詞典,復(fù)雜性是由許多相互聯(lián)系的部分或元素組成的;復(fù)雜。雖然我們不能總是說某件事很簡(jiǎn)單,但我們通常可以說某件事很復(fù)雜。我們的目標(biāo)不是復(fù)雜,也不是創(chuàng)造復(fù)雜的解決方案。
在數(shù)據(jù)科學(xué)中尋求簡(jiǎn)單性的原因與在所有工程學(xué)科中的原因相同。更簡(jiǎn)單的解決方案要便宜得多?,F(xiàn)實(shí)生活中的產(chǎn)品不是Kaggle比賽。需求是不斷修改的。當(dāng)復(fù)雜的解決方案需要適應(yīng)新的條件時(shí),它很快就變成了維護(hù)的噩夢(mèng)。
很容易理解為什么數(shù)據(jù)科學(xué)家,尤其是應(yīng)屆畢業(yè)生,更喜歡復(fù)雜的解決方案。他們剛從學(xué)院來。他們已經(jīng)完成了論文,甚至可能發(fā)表了一篇論文。一份學(xué)術(shù)出版物的評(píng)判標(biāo)準(zhǔn)是準(zhǔn)確性、數(shù)學(xué)的高雅性、新穎性和方法論,而很少是實(shí)用性和簡(jiǎn)單性。
一個(gè)把精確度提高0.5%的復(fù)雜想法對(duì)任何學(xué)生來說都是巨大的成功。同樣的想法對(duì)于一個(gè)數(shù)據(jù)科學(xué)家來說是失敗的。即使它的理論是合理的,它也可能隱藏潛在的假設(shè),這些假設(shè)將被證明是錯(cuò)誤的。在任何情況下,增量改進(jìn)都不值得復(fù)雜性的代價(jià)。
那么,如果你、你的老板、你的同事或你的下屬喜歡復(fù)雜的“最佳”解決方案,該怎么辦?如果是你的老板,你很可能注定要失敗,你最好開始找一份新工作。在其他情況下,保持簡(jiǎn)單,愚蠢。
俄羅斯文化有一個(gè)“沃斯”的概念。維基百科將其描述為“盲目信任神圣的天意,指望純粹的運(yùn)氣”。Avos是卡車司機(jī)決定超載的幕后黑手。它隱藏在任何非魯棒的解決方案后面。
什么是穩(wěn)健性?或者具體地說,什么是數(shù)據(jù)科學(xué)中的健壯性?與我們的討論最相關(guān)的定義是“算法的魯棒性是它對(duì)假設(shè)模型和現(xiàn)實(shí)之間的差異的敏感性”,來自Mariano Scain論文。對(duì)現(xiàn)實(shí)的不正確假設(shè)是數(shù)據(jù)科學(xué)家問題的主要來源。它們也是上面那位卡車司機(jī)的問題來源。
細(xì)心的讀者可能會(huì)說,健壯性也是一個(gè)算法在執(zhí)行過程中處理錯(cuò)誤的能力。他們會(huì)是對(duì)的。但它與我們的討論不太相關(guān)。它是一個(gè)具有定義良好的解決方案的技術(shù)主題。
在大數(shù)據(jù)和深度之前的世界里,建立強(qiáng)大系統(tǒng)的必要性是顯而易見的。特征和算法的設(shè)計(jì)都是手工完成的。測(cè)試通常是在數(shù)百個(gè),也許數(shù)千個(gè)例子上進(jìn)行的。即使是最聰明的算法創(chuàng)建者也從未假設(shè)他們能想到所有可能的用例。
大數(shù)據(jù)時(shí)代是否改變了健壯性的本質(zhì)?我們?yōu)槭裁匆P(guān)心我們是否可以使用代表所有可以想象的場(chǎng)景的數(shù)百萬數(shù)據(jù)樣本來設(shè)計(jì)、訓(xùn)練和測(cè)試我們的模型呢?
它發(fā)現(xiàn)魯棒性仍然是一個(gè)重要的尚未解決的問題。每年頂級(jí)期刊都會(huì)發(fā)表關(guān)于算法魯棒性的論文來證明這一點(diǎn),例如“提高深度神經(jīng)網(wǎng)絡(luò)的魯棒性”和“基于模型的魯棒深度學(xué)習(xí)”。數(shù)據(jù)的數(shù)量沒有轉(zhuǎn)化為質(zhì)量。用于培訓(xùn)的信息量并不意味著我們可以覆蓋所有的用例。
而如果牽涉到人,現(xiàn)實(shí)總會(huì)出乎意料,難以想象。我們大多數(shù)人都很難說出午飯吃什么,更不用說明天了。數(shù)據(jù)很難幫助預(yù)測(cè)人類的行為。
那么,怎樣做才能使您的模型更加健壯呢?第一個(gè)選擇是閱讀適當(dāng)?shù)恼撐牟?shí)施他們的想法。這樣很好。但這些論文并不總是可以概括的。通常,你不能把一個(gè)想法從一個(gè)領(lǐng)域復(fù)制到另一個(gè)領(lǐng)域。
我想提出三個(gè)一般做法。遵循這些實(shí)踐并不能保證健壯的模型,但它大大降低了脆弱解決方案的機(jī)會(huì)。
性能安全裕度。安全裕度是任何工程的基礎(chǔ)。通常的做法是為了安全起見,采取需求并添加20-30%。一部能裝1000kg的電梯,輕松就能裝1300kg。而且,它被測(cè)試為容納1300kg而不是1000kg。工程師為意外情況做準(zhǔn)備。
在數(shù)據(jù)科學(xué)中,安全邊際的等價(jià)物是什么?我認(rèn)為這是KPI或成功標(biāo)準(zhǔn)。即使發(fā)生了意想不到的事情,你仍然會(huì)在門檻之上。
這種做法的重要后果是,您將停止追逐增量改進(jìn)。如果您的模型將KPI增加1%,您就不可能健壯。在所有的統(tǒng)計(jì)顯著性測(cè)試中,環(huán)境中的任何微小變化都將扼殺您的努力。
過度測(cè)試。忘記單一的測(cè)試/訓(xùn)練/驗(yàn)證部門。您必須在所有可能的組合上交叉驗(yàn)證您的模型。你有不同的用戶嗎?按照用戶ID劃分,做幾十次。你的數(shù)據(jù)隨時(shí)間變化嗎?根據(jù)時(shí)間戳進(jìn)行劃分,并確保每天在驗(yàn)證組中出現(xiàn)一次。用隨機(jī)值“垃圾郵件”您的數(shù)據(jù),或者在您的數(shù)據(jù)點(diǎn)之間交換某些特性的值。然后在臟數(shù)據(jù)上測(cè)試。
我發(fā)現(xiàn)假設(shè)我的模型有錯(cuò)誤非常有用,直到證明不是這樣。
關(guān)于數(shù)據(jù)科學(xué)和ML測(cè)試的兩個(gè)有趣的來源--亞歷克斯·古德的博客“用Python進(jìn)行機(jī)器學(xué)習(xí),一種測(cè)試驅(qū)動(dòng)的方法”。
不要在沙子上建造城堡。減少對(duì)其他未測(cè)試組件的依賴。不要在另一個(gè)高風(fēng)險(xiǎn)且未經(jīng)驗(yàn)證的組件上構(gòu)建模型。即使該組件的開發(fā)人員發(fā)誓不會(huì)發(fā)生任何事情。
模塊化設(shè)計(jì)是所有現(xiàn)代科學(xué)的基本原則。它是分析方法的直接結(jié)果。分析方法是一個(gè)將大問題分解成小塊的過程。分析方法是科學(xué)革命的基石。
你的問題越小越好。這里的“更好”不太好。這是必須的。它將節(jié)省大量的時(shí)間、精力和金錢。當(dāng)一個(gè)問題很小,定義明確,并且不附帶大量假設(shè)時(shí),解決方案是準(zhǔn)確的,易于測(cè)試。
大多數(shù)數(shù)據(jù)科學(xué)家都熟悉軟件設(shè)計(jì)中的模塊化。但是即使是最優(yōu)秀的程序員,他們的python代碼非常清晰,也經(jīng)常不能將模塊化應(yīng)用到數(shù)據(jù)科學(xué)本身。
失敗很容易證明。模塊化設(shè)計(jì)需要一種方法將幾個(gè)較小的模型組合成一個(gè)大模型。目前還沒有這樣的機(jī)器學(xué)習(xí)方法。
但我發(fā)現(xiàn)有一些實(shí)用的指導(dǎo)方針是有用的:
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é)家專注于低垂的果實(shí)。他們的邏輯很清楚。他們說,企業(yè)只關(guān)心水果的數(shù)量和它們生長(zhǎng)的地方。水果越多,我們做得越好。他們拋出了各種各樣的流行語--帕累托、MVP、最好的是好的敵人等等。
另一方面,數(shù)據(jù)科學(xué)家指出,低掛的水果腐敗快,味道不好。換句話說,解決簡(jiǎn)單的問題影響有限,治標(biāo)不治本。通常,這是學(xué)習(xí)新技術(shù)的借口,但通常它們是對(duì)的。
就我個(gè)人而言,我在兩種觀點(diǎn)之間移動(dòng)。讀過p之后。泰爾的零對(duì)一確信低垂的果實(shí)是浪費(fèi)時(shí)間。在初創(chuàng)企業(yè)呆了將近七年后,我確信創(chuàng)造一個(gè)低級(jí)的MVP是正確的第一步。
最近,我開發(fā)了自己的方法,將這兩個(gè)極端統(tǒng)一起來。一個(gè)數(shù)據(jù)科學(xué)家的典型環(huán)境是一個(gè)動(dòng)態(tài)的、怪異的世界,樹在四面八方生長(zhǎng)。樹木一直在切換方向。它們可以倒著生長(zhǎng),也可以側(cè)著生長(zhǎng)。
最好的水果確實(shí)在頂端。但是如果我們花太多時(shí)間建造梯子,樹就會(huì)移動(dòng)。因此,最好的是瞄準(zhǔn)頂部,但要不斷監(jiān)測(cè)頂部在哪里。
從隱喻到實(shí)踐,在漫長(zhǎng)的發(fā)展過程中,事情總是有可能發(fā)生變化。原來的問題會(huì)變得無關(guān)緊要,新的數(shù)據(jù)源會(huì)出現(xiàn),原來的假設(shè)會(huì)被證明是錯(cuò)誤的,KPI會(huì)被替換等等。
目標(biāo)是最好的,但記住在每隔幾個(gè)月推出一個(gè)工作產(chǎn)品的同時(shí)也要做到這一點(diǎn)。產(chǎn)品可能不會(huì)帶來最好的水果,但你會(huì)更好地感受到水果是如何生長(zhǎng)的。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10