數據科學團隊的運營不是通過觀看Coursera和Udemy上的講座和視頻就可以學會的。不要誤解我們的意思,這兩個網站是學習數據科學和機器學習理論及實踐問題的好地方。
不過,它們不教授有效的商業實踐,也不教授如何運營商業環境里的數據團隊。了解算法,知道如何使用Hadoop,并不足以讓我們擁有一個高效的數據團隊。
給數據科學團隊的建議
團隊需要和其他部門一起工作,他們需要維護軟件,向主管報告,當然,帶來商業價值!與分析和商務智能一樣,數據科學也只是讓企業更高效地賺錢的工具。
大多數數據科學課程都沒有提及上述內容。這就是為什么不僅自定義數據科學算法和模型是我們的重點之一,數據科學團隊建設也是我們的重點之一。
我們希望提供一些好的方法,幫助數據科學團隊取得更大的成功。這與算法和模型無關,一切都是關于企業里的數據專家如何運營數據團隊。
ROI Vs. 算法與技術
作為程序員、數據科學家和工程師,對于我們的數據項目或者正在開發的軟件,我們大多數人都把更多的注意力放在了技術方面。我們開發產品不只是為了錢,而是為了證明我們能做什么。這是一個挑戰!我們是問題解決者。
也許我們希望證明,我們能夠開發出一個算法,預測一款產品是否受歡迎。僅僅是為了好玩!
不過,歸根結底,我們數據科學家、數據顧問和軟件工程師都受雇于企業,而那些企業希望看到財政營收。你是使用了基于神經網絡的算法,還是基于支持向量機的算法,這并沒什么關系,只要最大限度地節省成本,或者帶來最大的收益。
重要的是記住,數據科學家或大數據分析師越快弄清楚這個問題,就越能有效地發揮他們的作用。數據科學家都要有一點企業家精神。
數據科學家尋找機會為企業省錢,或者發現新的價值流。我們經常是正確的,因為我們不僅了解業務,我們還有數據支撐我們的觀點。
這就是有一個與企業步調一致的數據團隊的價值之一。他們有推動決策的數據。
數據工程
有個方面有時候會完成得比較倉促,那就是數據工程。它可能看上去不重要,可能看上去很容易修改。但是,如果數據的設計規劃不便于操作和開發,那么數據科學家在設計算法和下游工作流時會陷入時間地獄。
這是indeed.com上數據工程師的職位需求占比高于數據科學家的原因之一。
數據的組織方式在分析方面非常重要。我們團隊有幾名成員最初就是數據工程師,這就是為什么他們如此重要。他們不僅能夠創建優美的算法,還能夠創建數據管道,讓數據能夠自然地從點A到點B,從數據倉庫到算法。
經過良好設計規劃的數據易于修改,容易接入新模塊及報告新指標,等等。它可能看起來奇怪,但借助良好的數據工程,一切都是有可能的!
系統設計也是為了數據科學家
在設計算法的時候很容易忘記,設計結果是需要真正地在生產環境中實現的。
數據科學家不能只是設計算法并就此止步。相反,那通常需要某種形式的數據倉庫或數據存儲中心,而且作為一個系統,既提供數據,又記錄來自開發好的模型的數據。算法不是一個本身可以創造美元的獨立島嶼。
通常也會有一些某種形式的接口,用戶可以與之交互。
舉例來說,這可能是一個網站或者一個故事板。其目的是讓終端用戶對直接傳達給他們的東西有可行且可理解的見解,而不用他們轉換模型產生的隨機數和輸出。
當我們只是在課堂上做一個Kaggle題目或者創建一個項目時,這會被忽略。這就是為什么像Galvanize這樣的項目會讓他們的學生和實際的企業建立合作伙伴關系,因為將一個算法投入生產環境所需要完成的工作比只是開發它要多。
需要操作老系統,篩選API文檔,還有缺陷、變通方案,當然還有公司政治。
公司政治,是的,你會卷入的
企業總是有政治,沒有辦法可以繞過。數據科學高管和項目負責人需要能夠和其他團隊共事,像其他部門一樣籌集資金。
這需要了解其他高管想要什么又需要什么,務必保證他們支持你的項目。如果他們不支持你的項目,如果他們等待機會背后搗鬼(而且那種情況出現了),那么你的項目就會失敗。
不要控制,而是要引導其他團隊的負責人,讓他們同意你的觀點,或交換方案,或折中方案。務必確保你沒有觸到任何人的痛點……至少,在你的數據團隊多次證明自己之前不要。即使已經多次證明過自己,也不要讓自己變得難以共事。
否則,沒有人會為你的業務團隊提供資源。
文檔是數據團隊的朋友
好吧,有件事85%的程序員都得承認,就是他們討厭文檔。沒關系,這不是最有趣的事。不過,堅持編寫文檔非常重要。
不要等項目結束了再寫文檔?。?!
數據科學算法、數據結構、軟件都需要不斷地記錄到文檔上。
沒有人要求數據團隊再寫一本《湯姆·索亞歷險記》。務必保證注釋清晰易懂,任何程序員都可以理解。
你永遠不知道一個團隊成員何時會離開,從而留下一堆進行到一半而又沒有文檔的項目。
因此,為了保持可維護性,務必讓你的數據團隊隨著項目進行編寫項目文檔。那會讓你的團隊節省大量處理技術債務的時間,并確保你的項目可以繼續運轉下去。
數據科學項目需要有軟件QA和生命周期
數據科學是軟件開發的一部分。就是說,需要有一個流程來確保開發出的代碼健壯、可維護。
怎么做?
針對代碼和數據設定一個不錯的QA流程,確保代碼從開發環境進入生產環境有一個標準化的流程。
不,你不應該在生產環境中測試代碼!
問題就是那樣出現的!??!
不要誤解我們的意思,你需要推出代碼,但不能以破壞構建為代價。
同行審查、QA和單元測試可以幫數據團隊避免許多麻煩。確保不要出現持續的干擾,如一名工程師花很長的時間對其他人的代碼進行同行審查。
同時,確保你沒有讓開發出的代碼直接進入生產環境里!!
算法不是數據科學的全部
事實上,數據科學和分析并不是一顆魔彈。它只是另外一種工具,企業可以用它增加收益,降低成本。如果運營得當,它會產生巨大的競爭優勢。如果數據設計規劃良好,那么團隊其他的業務也會運轉良好。
查看英文原文:Practically Managing A Data Science Team