編者按:Deliveroo數(shù)據(jù)科學(xué)家Jonny Brooks-Bartlett分享了進(jìn)行真實(shí)世界數(shù)據(jù)科學(xué)項(xiàng)目的經(jīng)驗(yàn)教訓(xùn)。
引言
大多數(shù)關(guān)于如何“完成”數(shù)據(jù)科學(xué)任務(wù)的文章通常討論的是如何編寫(xiě)解決問(wèn)題的算法。例如,如何分類文本文檔或預(yù)測(cè)財(cái)經(jīng)數(shù)據(jù)。然而,這樣的任務(wù)僅僅是完成一個(gè)數(shù)據(jù)科學(xué)項(xiàng)目這一過(guò)程中的一小部分。即使你能完美寫(xiě)出求解多類文本分類問(wèn)題的算法,你仍將面臨很多問(wèn)題:它在商業(yè)上有實(shí)際價(jià)值嗎?這一問(wèn)題當(dāng)前有什么解決方案,你做了什么樣的評(píng)測(cè)能說(shuō)服用戶信任你編寫(xiě)的算法的輸出?算法部署到生產(chǎn)環(huán)境后,你能持續(xù)獲取反饋以了解算法輸出是否仍然有用嗎?
我將在這篇文章中討論一些開(kāi)發(fā)維護(hù)高效、可持續(xù)的數(shù)據(jù)科學(xué)項(xiàng)目的指導(dǎo)意見(jiàn)。這篇指南基于我在自己的數(shù)據(jù)科學(xué)項(xiàng)目中得到的教訓(xùn),還結(jié)合了我看到的其他人進(jìn)行數(shù)據(jù)科學(xué)項(xiàng)目所犯的錯(cuò)誤。其中一些經(jīng)驗(yàn)未必適用于所有數(shù)據(jù)科學(xué)家,因?yàn)椴煌臄?shù)據(jù)科學(xué)家工作范圍不同。我所處的團(tuán)隊(duì)沒(méi)有專門的商業(yè)分析師、產(chǎn)品經(jīng)理、數(shù)據(jù)科學(xué)經(jīng)理。這意味著我本人需要承擔(dān)這些角色的部分職責(zé),我經(jīng)常在這方面做得不好。不過(guò),對(duì)我而言,這是很有價(jià)值的學(xué)習(xí)體驗(yàn),我將在后文介紹我學(xué)到的一些東西。
特別提示:不管你是否同意我的胡扯,你應(yīng)該看下Warby Parker數(shù)據(jù)科學(xué)主管Max Shron的視頻Stakeholder-Driven Data Science at Warby Parker(利益相關(guān)者驅(qū)動(dòng)的數(shù)據(jù)科學(xué))。這是一個(gè)很棒的視頻,介紹了很多真實(shí)世界數(shù)據(jù)科學(xué)項(xiàng)目的情況。
成功項(xiàng)目應(yīng)該滿足哪些條件?
我發(fā)現(xiàn),在解決一個(gè)問(wèn)題前,首先厘清怎樣才算成功是很有用的。(這里我們假定已經(jīng)清楚問(wèn)題是什么,但請(qǐng)不要低估辨識(shí)出需要解決的問(wèn)題的難度。)這有助于我制定達(dá)到最終目標(biāo)的策略。
你為何進(jìn)行這個(gè)項(xiàng)目?例如,這個(gè)項(xiàng)目帶來(lái)了什么價(jià)值,它為數(shù)據(jù)團(tuán)隊(duì)更大的目標(biāo)做了什么貢獻(xiàn)?
誰(shuí)是這個(gè)項(xiàng)目的主要利益相關(guān)者?
這一問(wèn)題的當(dāng)前解決方案是什么?
是否存在可以快速實(shí)施的簡(jiǎn)單高效的解決方案?
你是否努力獲取相關(guān)人員的注意和信息?
你是否找人評(píng)估過(guò)你的方案的合理性?
你是否努力確保代碼的魯棒性?
你是否努力確保項(xiàng)目容易理解,方便移交給別人維護(hù)?
如何在生產(chǎn)環(huán)境中驗(yàn)證你的模型?
如何收集解決方案的反饋?
就我的經(jīng)驗(yàn)而言,如果這些問(wèn)題都能找到合適的答案,那么這個(gè)項(xiàng)目基本上就成了。當(dāng)然,取決于項(xiàng)目的具體情況,這并不是確鑿無(wú)疑的,上面的列表也遠(yuǎn)遠(yuǎn)沒(méi)有窮盡成功的條件。但不管怎么說(shuō),上面的列表是一個(gè)良好的開(kāi)始。
如果你瞧不上我列出的問(wèn)題,可以參考Kate Strachnyi的20個(gè)問(wèn)題:https://towardsdatascience.com/20-questions-to-ask-prior-to-starting-data-analysis-6ec11d6a504b
下面介紹的步驟有助于應(yīng)對(duì)這些問(wèn)題。
數(shù)據(jù)科學(xué)項(xiàng)目的五步方針
第一步:初步評(píng)估項(xiàng)目的潛在價(jià)值
為什么進(jìn)行這一步?這個(gè)問(wèn)題有助于你設(shè)定項(xiàng)目的優(yōu)先級(jí)。你應(yīng)該能夠恰當(dāng)?shù)鼗卮馂槭裁匆粋€(gè)項(xiàng)目應(yīng)該在另一個(gè)項(xiàng)目之前完成。這個(gè)問(wèn)題也讓我們更好地理解項(xiàng)目和團(tuán)隊(duì)、公司的目標(biāo)的一致性。此外,也為我們應(yīng)該優(yōu)化模型的哪些測(cè)度提供了指引。
這一步涉及什么?大致評(píng)估下收益,例如,節(jié)省的資金,增加的收益,節(jié)省的人力。有人不主張進(jìn)行這項(xiàng)評(píng)估,因?yàn)樽鲞@個(gè)評(píng)估很難,而且收益并不總是能夠量化。對(duì)此,我的回應(yīng)是:如果你或者利益相關(guān)者弄不清楚項(xiàng)目的價(jià)值,那么為什么要浪費(fèi)你或者利益相關(guān)者的時(shí)間呢?評(píng)估的數(shù)值不必完美,大概估計(jì)下就行。這一步也包括判定誰(shuí)是主要的利益相關(guān)者。
如果不做這一步會(huì)怎么樣?我們可能花費(fèi)大量時(shí)間進(jìn)行一個(gè)無(wú)人獲益的項(xiàng)目。我曾經(jīng)見(jiàn)過(guò)一個(gè)項(xiàng)目,需要數(shù)據(jù)科學(xué)團(tuán)隊(duì)識(shí)別值得營(yíng)銷團(tuán)隊(duì)聯(lián)系的最能帶來(lái)收益的客戶列表。創(chuàng)建模型之后,我們決定花幾個(gè)月的時(shí)間改進(jìn)這一模型。盡管新模型給出了更好的結(jié)果,但營(yíng)銷團(tuán)隊(duì)調(diào)整了閾值,因?yàn)樗麄儾辉诤鯙槊總€(gè)客戶生成的評(píng)分,只打算聯(lián)系固定數(shù)目的客戶。所以,花在改進(jìn)模型上的時(shí)間很可能毫無(wú)意義。(當(dāng)然,可能聯(lián)系的固定數(shù)目的客戶實(shí)際上能帶來(lái)更多收益,因?yàn)槟P透昧?,但因?yàn)闆](méi)有測(cè)量這方面的數(shù)據(jù),所以我們并不知道這點(diǎn)是否成立。)
這一步的輸出是什么?項(xiàng)目?jī)r(jià)值的大概估計(jì)和簡(jiǎn)短的項(xiàng)目總結(jié)。注意,取決于公司和項(xiàng)目的情況,可能只需說(shuō)明數(shù)據(jù)模型能夠帶來(lái)可以觀測(cè)到的收益,而無(wú)需估計(jì)具體數(shù)值。不過(guò)這很大程度上取決于公司政治。
有用資源:A Simple way to Model ROI of any new Feature(建模新特性ROI的簡(jiǎn)單方法)給出了一個(gè)簡(jiǎn)單的公式:期望ROI = (惠及用戶 × 新使用量/增加的使用量 × 商業(yè)價(jià)值) - 開(kāi)發(fā)成本。Prioritizing data science work(為數(shù)據(jù)科學(xué)工作設(shè)定優(yōu)先級(jí))和Product and Prioritisation(產(chǎn)品和優(yōu)先級(jí)指定)這兩篇文章也值得一讀。
第二步:判定現(xiàn)有方法/創(chuàng)建基線模型
圖片來(lái)源:Rama Ramakrishnan
為什么進(jìn)行這一步?當(dāng)前的解決方法提供了一個(gè)評(píng)測(cè)的目標(biāo)。如果當(dāng)前存在解決方法,所有有用的模型都應(yīng)該勝過(guò)當(dāng)前方法。如果面臨的問(wèn)題當(dāng)前尚無(wú)解決方案,那么你應(yīng)該開(kāi)發(fā)一個(gè)基線模型?;旧?,基線模型就是不用機(jī)器學(xué)習(xí)的方案。復(fù)雜方案很可能只能提供一點(diǎn)增值,所以你需要評(píng)估下創(chuàng)建更復(fù)雜的模型是否值得。
這一步涉及什么?找利益相關(guān)者談下,他們當(dāng)前是怎么做的,取得了哪些成功。很可能他們并未測(cè)量成功程度,所以有時(shí)你需要自行估計(jì)/計(jì)算。創(chuàng)建基線模型不應(yīng)該設(shè)計(jì)任何復(fù)雜、需要大費(fèi)周折的方法。基線模型應(yīng)該是相當(dāng)迅速、原始的,甚至可能直接使用計(jì)數(shù)這樣簡(jiǎn)單的方法。
這一步的輸出是什么?基于基線量化評(píng)估成功模型(對(duì)利益相關(guān)者有用)需要達(dá)到什么樣的表現(xiàn)。評(píng)估是否值得創(chuàng)建復(fù)雜模型。
如果不做這一步會(huì)怎么樣?你可能浪費(fèi)時(shí)間創(chuàng)建了一個(gè)復(fù)雜的模型,結(jié)果發(fā)現(xiàn)不值得投入這些時(shí)間提高這點(diǎn)精確度,甚至不能戰(zhàn)勝當(dāng)前方法。我們創(chuàng)建自己的推薦引擎的時(shí)候就忽略了這一點(diǎn)。我們沒(méi)有檢查算法是否優(yōu)于實(shí)用的基線(推薦最流行的內(nèi)容)。很可能推薦算法沒(méi)有提供對(duì)得起投入的開(kāi)發(fā)成本的價(jià)值。
有用資源Create a Common-Sense Baseline First(首先創(chuàng)建常識(shí)基線模型)和總是從蠢模型開(kāi)始,強(qiáng)調(diào)了這一點(diǎn)。
第三步:“團(tuán)隊(duì)”討論
為什么進(jìn)行這一步?目前為止,我們已經(jīng)得出結(jié)論,項(xiàng)目值得進(jìn)行(第一步),有可行性(第二步),所以,是時(shí)候和相關(guān)人員談?wù)劻?,比?a target="_blank">工程師和其他數(shù)據(jù)科學(xué)家。應(yīng)該編寫(xiě)什么代碼,需要什么數(shù)據(jù),應(yīng)該做哪些測(cè)試,使用哪些測(cè)度評(píng)估表現(xiàn),嘗試哪些模型方法,這些你現(xiàn)在應(yīng)該比較清楚了。你自己可能覺(jué)得需要做什么一清二楚,但是和別人討論一下常常有助于找到你遺漏的東西或者可以改進(jìn)的地方。不要低估讓不同視角的人參與討論的重要性。
這一步涉及什么?至少和另一個(gè)數(shù)據(jù)科學(xué)家聊一下,展示你已經(jīng)取得的結(jié)果。也許他們能告訴你如何改進(jìn)你的想法。開(kāi)始開(kāi)發(fā)模型前的討論必不可少,因?yàn)閷?xiě)好模型后通常就不怎么方便大改了。同時(shí),和你討論的數(shù)據(jù)科學(xué)家也許會(huì)評(píng)審你的代碼,事先討論一下有助于他們了解上下文。和項(xiàng)目工程師聊下,他們負(fù)責(zé)產(chǎn)品化你的工作。他們可能需要知道可以期待什么,也可能提一些有助于產(chǎn)品化代碼的建議。
這一步的輸出是什么?沒(méi)有什么具體的輸出。這一步不過(guò)是在第一時(shí)間保證項(xiàng)目質(zhì)量。確保相關(guān)人員了解項(xiàng)目。
如果不做這一步會(huì)怎么樣?最好的情況,你獨(dú)自想出了怎么做這個(gè)項(xiàng)目,并避開(kāi)了所有的坑。然而,更可能的情況是你沒(méi)有考慮到所有事情,漏掉了一些重要的事情。會(huì)碰到的典型問(wèn)題包括將模型轉(zhuǎn)移到生產(chǎn)環(huán)境時(shí),難以遷移、處理存儲(chǔ)文件。模型輸出缺乏標(biāo)記,沒(méi)有給出最有用的格式。這是我開(kāi)發(fā)一個(gè)模型時(shí)碰到的情況。我編寫(xiě)的代碼中,有很多API調(diào)用是不必要。在本地的小數(shù)據(jù)集上,模型運(yùn)行得很好,但在生產(chǎn)環(huán)境中,加載數(shù)據(jù)很吃力。直到我求助一個(gè)工程師后才解決了問(wèn)題(這個(gè)工程師幫助我查明了問(wèn)題)。
第四步:模型研發(fā)
為什么進(jìn)行這一步?不用多說(shuō),最終解決問(wèn)題靠的是模型。
這一步涉及什么?這取決于具體的項(xiàng)目。需要注意的是,模型研發(fā)并不等于創(chuàng)建模型。有太多關(guān)于如何編寫(xiě)機(jī)器學(xué)習(xí)算法解決特定問(wèn)題的文章了,所以我這里就不多說(shuō)了。我想強(qiáng)調(diào)一些有助于產(chǎn)生高質(zhì)量產(chǎn)品代碼的步驟。通常情況下你不是唯一一個(gè)看代碼的人,所以代碼審閱和文檔對(duì)項(xiàng)目的壽命而言至關(guān)重要。在生產(chǎn)環(huán)境幾乎一定會(huì)碰到bug和意料之外的輸入,所以你可以通過(guò)代碼測(cè)試來(lái)緩解這些問(wèn)題,增強(qiáng)代碼的魯棒性。這包括單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試,用戶接受測(cè)試(UAT)。關(guān)于如何使代碼便于產(chǎn)品化的規(guī)范,不同團(tuán)隊(duì)可能有所不同,不過(guò)有一些東西是相通的:在隔離環(huán)境下工作(虛擬環(huán)境或Docker容器),記錄日志,使用配置文件。
這一步的輸出是什么?一個(gè)共享的代碼倉(cāng)庫(kù),其中包含解決項(xiàng)目所定義的問(wèn)題所需的文件和可以工作的模型。
如果不做這一步會(huì)怎么樣?如果代碼未經(jīng)測(cè)試,邏輯上的錯(cuò)誤可能直到部署到生產(chǎn)環(huán)境后才暴露出來(lái)。如果代碼沒(méi)有經(jīng)過(guò)他人評(píng)審或者沒(méi)有文檔,你離職或者休年假的時(shí)候其他人很難接手。我之前做過(guò)的一些項(xiàng)目就不斷出問(wèn)題。我現(xiàn)在還需要給9個(gè)月前“完工”的一個(gè)項(xiàng)目修bug. 這占用了我做其他有價(jià)值的事情的時(shí)間,令所有項(xiàng)目相關(guān)人員沮喪。在開(kāi)發(fā)階段額外花一點(diǎn)時(shí)間保證代碼的魯棒性,長(zhǎng)期來(lái)看,可以節(jié)省你很多時(shí)間。
資源How to write a production-level code in Data Science?(如何編寫(xiě)生產(chǎn)環(huán)境級(jí)別的數(shù)據(jù)科學(xué)代碼?)是一篇全面的指南,覆蓋了我能想到的一切東西。如果你是一個(gè)編寫(xiě)生產(chǎn)環(huán)境級(jí)別的代碼的數(shù)據(jù)科學(xué)家,你應(yīng)該讀一下這篇文章。另外推薦Code Reviewing Data Science Work(數(shù)據(jù)科學(xué)工作的代碼審閱)和Doing Code Review Solo & Writing Good Code(自我審閱代碼 & 寫(xiě)好代碼)這兩篇關(guān)于代碼審閱的文章。后一篇文章介紹了如何通過(guò)自我審閱代碼提高自己編寫(xiě)的代碼的質(zhì)量,這并不能代替實(shí)際的代碼審閱。Code Documentation Guide(代碼文檔指南)介紹了如何恰當(dāng)?shù)鼐帉?xiě)文檔。我個(gè)人很喜歡numpy風(fēng)格的docstring。關(guān)于代碼測(cè)試,我推薦How to unit test machine learning code(如何單元測(cè)試機(jī)器學(xué)習(xí)代碼)這篇指南,還有semaphore的Testing Python Applications with Pytest(使用Pytest測(cè)試Python應(yīng)用),我自己一個(gè)項(xiàng)目開(kāi)始編寫(xiě)測(cè)試的時(shí)候參考了這篇教程。semaphore上還有一篇Getting Started with Mocking in Python(Python偽造數(shù)據(jù)入門),介紹了如何為測(cè)試偽造數(shù)據(jù)。Python unit testing with Pytest and Mock(使用Pytest和Mock進(jìn)行Python單元測(cè)試)則是另一篇值得一讀的指南。
第五步:模型監(jiān)測(cè)和反饋
為什么進(jìn)行這一步?這是為了確保產(chǎn)品在生產(chǎn)環(huán)境中的表現(xiàn)符合期望。解決方案的輸出應(yīng)該是穩(wěn)定可靠的。如果出現(xiàn)了錯(cuò)誤,我們應(yīng)該是第一個(gè)知道的。模型的表現(xiàn)比期望的差嗎?生產(chǎn)環(huán)境的數(shù)據(jù)和訓(xùn)練數(shù)據(jù)的格式不一樣嗎?數(shù)據(jù)不正確嗎?自動(dòng)化檢測(cè)可以節(jié)省大量手工查看輸出、追查代碼以確保一切符合期望的時(shí)間。為公司提供價(jià)值是我們的職責(zé),所以我們應(yīng)該測(cè)量解決方案的影響力。是否良好運(yùn)作?需要調(diào)整嗎?創(chuàng)造了多少利潤(rùn)?使用有多頻繁?我們可以向管理層報(bào)告這些,以顯示數(shù)據(jù)科學(xué)的商業(yè)價(jià)值。
這一步涉及什么?在模型部署到生產(chǎn)環(huán)境后的一段時(shí)間內(nèi)(也許是兩三周),主動(dòng)地手工檢查所有一切運(yùn)作良好。然后自動(dòng)化檢測(cè)過(guò)程,也許可以創(chuàng)建一個(gè)控制面板和一套郵件預(yù)警系統(tǒng),和/或一個(gè)異常檢測(cè)系統(tǒng)。也許利益相關(guān)者也需要進(jìn)行監(jiān)測(cè),所以可能需要調(diào)整監(jiān)測(cè)方案,使其對(duì)非技術(shù)同事更友好。至于反饋方面,可能涉及和利益相關(guān)者討論如何接受反饋?定量反饋還是定性反饋?你可以在產(chǎn)品中編寫(xiě)記錄使用數(shù)據(jù)的代碼,這樣不用明確要求利益相關(guān)者報(bào)告使用習(xí)慣。
這一步的輸出是什么?確保模型恰當(dāng)工作、提供解決方案使用量和價(jià)值的定性或定量反饋的方法和產(chǎn)品。可能也包括出錯(cuò)時(shí)的通知/預(yù)警系統(tǒng)。
如果不做這一步會(huì)怎么樣?如果沒(méi)有恰當(dāng)?shù)乇O(jiān)測(cè)我們的產(chǎn)品,我們將承擔(dān)產(chǎn)品出錯(cuò)時(shí)商業(yè)利益相關(guān)者喪失信任的風(fēng)險(xiǎn),同時(shí)也可能導(dǎo)致商業(yè)損失,團(tuán)隊(duì)嘗試修復(fù)問(wèn)題也可能花掉大量時(shí)間。我曾經(jīng)碰到過(guò)的一個(gè)情況是,我們創(chuàng)建的數(shù)據(jù)分析工具給出了離譜的圖表。結(jié)果發(fā)現(xiàn)是原始數(shù)據(jù)提供商搞砸了數(shù)據(jù)。但是,利益相關(guān)者在團(tuán)隊(duì)之前發(fā)現(xiàn)了問(wèn)題。之前模型研發(fā)階段描述過(guò)的魯棒性測(cè)試和自動(dòng)預(yù)警系統(tǒng)本應(yīng)該偵測(cè)到這個(gè)問(wèn)題,但我們并沒(méi)有配備這些。當(dāng)數(shù)據(jù)最終回歸正常之后,利益相關(guān)者以為數(shù)據(jù)還是錯(cuò)的。我們數(shù)據(jù)團(tuán)隊(duì)花了2周時(shí)間檢查數(shù)據(jù),最后得出結(jié)論數(shù)據(jù)沒(méi)有出錯(cuò)!我們損失了2周的時(shí)間。自動(dòng)化監(jiān)測(cè)系統(tǒng)本可以將2周降至2分鐘!此外,如果我們不收集反饋,那我們就會(huì)對(duì)項(xiàng)目是否有用,甚至項(xiàng)目是否還在使用一無(wú)所知。我們?cè)诤褪袌?chǎng)團(tuán)隊(duì)的一次會(huì)議中詢問(wèn)“你們?cè)谑褂眠@個(gè)模型嗎?”我們本不應(yīng)該提出這個(gè)問(wèn)題,因?yàn)?1) 在第一步和第二步,我們應(yīng)該確保模型具有價(jià)值,并且超過(guò)了當(dāng)前解決方案/基線模型的表現(xiàn) 2) 我們應(yīng)該將監(jiān)測(cè)系統(tǒng)作為項(xiàng)目的一部分,而不是在一次不相關(guān)的會(huì)議中詢問(wèn)利益相關(guān)者是否使用我們的項(xiàng)目。這顯示了我們并沒(méi)有測(cè)量模型的影響力。
沒(méi)提到的步驟
我的好朋友Michael Barber提醒我遺漏了一個(gè)重要步驟:評(píng)估。模型評(píng)估是一個(gè)極為重要的部分,不恰當(dāng)?shù)脑u(píng)估可能導(dǎo)致模型在生產(chǎn)環(huán)境中發(fā)生意料之外的退化。這方面,F(xiàn)ast.ai的Rachel Thomas寫(xiě)過(guò)一篇出色的文章How (and why) to create a good validation set(如何/為何創(chuàng)建良好的驗(yàn)證集)。
此外,我完全忽略了試驗(yàn)。判定你的數(shù)據(jù)科學(xué)方案是否具備預(yù)想的影響力的最好方法之一是進(jìn)行試驗(yàn),A/B測(cè)試。Julia Silge寫(xiě)過(guò)一篇出色的文章From Power Calculations to P-Values: A/B Testing at Stack Overflow(從功效計(jì)算到P值:StackOverflow的A/B測(cè)試)。
這里我不會(huì)深入這兩方面的細(xì)節(jié),因?yàn)檫@篇文章已經(jīng)太長(zhǎng)了。第三步和利益相關(guān)者討論的環(huán)節(jié)應(yīng)當(dāng)討論如何進(jìn)行模型評(píng)估和A/B測(cè)試。
結(jié)語(yǔ)
上面介紹了我覺(jué)得進(jìn)行一個(gè)成功的數(shù)據(jù)科學(xué)項(xiàng)目需要遵循的五大步驟。需要注意的是,數(shù)據(jù)科學(xué)家不一定要完全施行這5個(gè)步驟,因?yàn)橛行﹫F(tuán)隊(duì)有專門的成員負(fù)責(zé)其中一些任務(wù)。例如,商業(yè)分析師或產(chǎn)品經(jīng)理可能負(fù)責(zé)和利益相關(guān)者溝通,以決定一個(gè)項(xiàng)目是否有價(jià)值,需求是什么。同時(shí),不是所有的項(xiàng)目都需要這些步驟。如果項(xiàng)目是一次性分析,那么創(chuàng)建持續(xù)檢測(cè)輸出的面板就毫無(wú)必要。
現(xiàn)實(shí)一點(diǎn),你不需要遵循所有這些步驟以創(chuàng)建一個(gè)成功的數(shù)據(jù)科學(xué)項(xiàng)目。在大多數(shù)情形下,編寫(xiě)一整套測(cè)試和文檔,同時(shí)為利益相關(guān)者配置監(jiān)測(cè)面板,一旦出現(xiàn)異常報(bào)警,不太實(shí)際。更可能的情況是,你需要權(quán)衡這些事情中哪些值得做,以便在(可能不合理)的截止日期前完成項(xiàng)目。我承認(rèn),我沒(méi)有一個(gè)項(xiàng)目完成了所有這些步驟,不過(guò)我當(dāng)時(shí)意識(shí)到了自己在做什么,以及為何在特定時(shí)刻這么做是一個(gè)實(shí)用的決策。
我還想指出的另一件重要的事是這些步驟僅僅是一些有助于項(xiàng)目成功的指導(dǎo)原則。而想要成為一個(gè)成功的數(shù)據(jù)科學(xué)家,還需要具備一些品質(zhì),掌握一些技能。我推薦閱讀My two cents on what makes a good data scientist nowadays?(今時(shí)今日的優(yōu)秀數(shù)據(jù)科學(xué)家需要具備什么條件,我的一點(diǎn)看法)和4 Must Have Skills Every Data Scientist Should Learn(數(shù)據(jù)科學(xué)家必備的4項(xiàng)技能)這兩篇文章。
-
算法
+關(guān)注
關(guān)注
23文章
4588瀏覽量
92505 -
數(shù)據(jù)科學(xué)
+關(guān)注
關(guān)注
0文章
164瀏覽量
10039
原文標(biāo)題:如何構(gòu)建有價(jià)值的真實(shí)世界數(shù)據(jù)科學(xué)項(xiàng)目
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論