當前位置:
首頁 > 知識 > 數據科學工作者 的日常工作內容包括什麼?

數據科學工作者 的日常工作內容包括什麼?

本文作者阿薩姆,本文整理自作者在知乎《數據科學工作者(Data Scientist) 的日常工作內容包括什麼?》問題下的回答。AI 研習社已獲得轉載授權。眾所周知,數據科學是這幾年才火起來的概念,而應運而生的數據科學家(data scientist)明顯缺乏清晰的錄取標準和工作內容。即使在2017年,數據科學家這個崗位的依然顯得「既性感又曖昧」。

學歷要求:碩士以上學歷,博士優先。統計學、計算機科學、數學等相關專業。

工作經歷: 3年以上相關工作經驗。

專業技能: 熟練掌握HiveSQLHadoop,熟悉大規模數據挖掘、機器學習、自然語言處理(NLP)

分析語言: R, Python, SAS, JAVA

額外要求: 對數據敏感,具備良好的邏輯思維能力、溝通技巧、組織溝通能力、團隊精神以及優秀的問題解決能力

在個人理解的前提下,我想談談:1. 數據科學家為什麼是「科學家」?2. 數據科學家的工作內容有什麼? 3. 一些對於數據分析的感悟 4. 如何成為一個合格的數據科學家?

1. 什麼是數據科學家?「科學家」是否言過其實?

數據科學家成為了一個跨學科職位。我將數據科學家定義為: 能夠獨立處理數據,進行複雜建模,從中攫取商業價值,並擁有良好溝通彙報能力的人。

關於數據科學家這個崗位怎麼來的,說法不一。我自己的理解是隨著機器學習和更多預測模型的發展,數據分析變得"大有可為"。為了區分擁有建模能力的高端人才和普通商業分析師/數據分析師(data analyst),數據科學家這個職位自然就產生了。通過這個新崗位,行業可以與時俱進的吸收高端人才。在機器學習沒有大行其道,也沒有大數據支撐之前,這個崗位更貼近統計科學家(statistician),和研究科學家(research scientist)也有一點點相似。

對於科學家,我們的一般的定義是在特定領域有深入研究的人,因此潛台詞一般是「擁有博士學位的人」。而數據科學家的基本要求是碩士以上學歷,甚至有時候本科學歷也會被接受,而且似乎數據科學家的工作並不會在特定領域有深度。那麼數據科學家是否言過其實了?

我的看法是:不,數據科學家的「廣度"就是其"深度"。從另外一個角度來看,數據科學家的優勢在於其優秀的跨領域技能,既可以抓取數據,也可以分析,進行建模,還能將有用的信息用抓人的眼球提供給決策層。能擁有這樣解決問題能力的人,似乎並不愧對一聲「科學家」。

而正因為數據分析更要求的廣度而不是深度,所有現在只有紐約大學提供科學博士,而現在大部分從業的博士都是統計學/計算機/數學/物理背景。正是這個原因,這個行業對於數據科學家的要求是碩士及以上,而計算機或者統計的人更適合的原因是其在機器學習/統計學習方面的積累,其他所需技能可以以很低的代價趕上。相對應的,如果一個心理學博士想要從事這一行就會發現需要補充的技能太多,而因此不能適應這個崗位。

與研究科學家(research scientist)相比,數據科學家更像是全能手但在特定領域深度不足。和普通分析師(analyst)相比,數據科學家應該有更強的建模和分析能力。在和數據工程師相對比時,數據科學家應該具備更強的彙報和溝通能力。

2. 數據科學家的日常工作內容包括什麼?

我最近在和朋友閑聊時,驚訝的發現大家的工作內容都很相似。主要包括:

2.1. 分析數據和建模

此處的工作特指根據客戶需求,從數據中攫取商業價值,而這個過程中一般都會涉及統計模型(statistical learning)和機器學習模型(machine learning)。如果在數據沒有處理的情況下,我們的工作偶爾也涉及清理數據。有時候我們反而希望數據是未經過處理的,因為很多重要信息都在被處理中遺失了。一般的項目遵循以下幾個流程:

確定商業痛點 - 明白要解決的問題是什麼?

獲得數據並進行清理,常見的數據預處理包括: a. 缺失值處理 b.特徵變數轉化 c.特徵選擇和維度變化(升維或者降維) d. 標準化/歸一化/稀疏化。涉及文字的時候可能還要使用一些自然語言處理的手段,更多的相關方法可以看我最近的回答[1]。

模型選擇與評估。這個過程常常是比較粗暴的,往往需要做多個模型進行評估對比。

提取商業價值,編寫報告或意見書,並向相關負責人彙報。

2.2. 與團隊其他成員的溝通

與純粹的機器科學工程師不同,數據科學家的重要工作內容是交流溝通。如果無法了解清楚客戶的需求是什麼,可能白忙活一場。如果無法了解數據工程師在採集數據時的手段,我們使用的原始數據可能有統計學偏見。如果不能講清楚如何才能有效的評估模型,負責在雲端運行模型的工程師可能給出錯誤的答案。因此,數據科學家除了建模必須親手來做以外,其他的環節可以「外包」給別人。在數據量特別大的時候,這個需求變得更為明顯。

2.3. 開會/彙報/寫報告

良好的溝通能力不僅僅是指和團隊成員的溝通,向老闆和客戶的彙報也很考察數據科學家的能力。作為一個數據科學家,我們一般有幾個原則:

彙報時避免「黑話」,避免給不同背景的老闆和客戶造成疑惑。

直擊重點而不炫技。盡量簡明扼要,不要過分介紹模型的內部構造,重心是得到的結論。

實事求是不誇大模型能力。很多機器學習模型其實都已經不同程度過擬合,不刻意避開交叉驗證而選擇「看似表現良好的」過擬合模型。

給出可以進一步優化和提高的方向,為項目提出新的方向。

在彙報時盡量用可視化來代替枯燥的文字。

以我去年做的一個項目為例:

我們公司的領導層希望了解為什麼我們的員工離職率很高,如何才可以避免這一點。遵循我上面介紹的流程:

從人事部門收集數據,清楚的告訴他們我需要的數據時間跨度,變數。並和法務部門一起將數據中的隱私部分去除。

進行數據預處理,建模並評估。

從中挖掘商業價值,如 a. 為什麼員工會離職(將變數重要性進行排序,用決策樹可視化分類結果) b. 什麼樣的員工值得留住?

製作報告,並像領導層彙報我的發現,過程設計可視化等。

和其他部門的同事將這個項目包裝成一個案例,賣給我們的其他客戶。

這個基本包括了數據分析項目的基本流程,對於這個項目的一些有趣發現可以看我的另一個回答[2]。但不難看出,整個流程中有大量的溝通過程,甚至還包括銷售的部分,這在一次體現了數據科學家的工作廣度。

3. 對於數據科學家的一些感悟

3.1. 不要沉迷於自己的「職位」

數據科學家是個聽起來非常「性感的」的崗位,別忘了我們小時候的夢想都是成為一個科學家。但拋開這些虛的東西,我們必須認清這個崗位的核心就是將很多技能封裝到一個人身上。而我們工作的正常開展少不了其他同事的支持和幫助,所以千萬不要看不起別人的工作內容。沒有數據工程師進行數據採集,沒有分析師幫我們美化圖表和提出質疑,我們無法得到最好的結果。

數據分析項目一直都是眾人拾柴火焰高,沒有人可以當超人。所以在得到這樣「高薪性感」的職位後,我們更應該把心裝回肚子里,腳踏實地。

3.2. 不要盲目迷信演算法

承接上一點,雖然我們的工作重點之一是建模,但請不要神話演算法,也不要挾演算法以令同事,覺得只有自己做的部分才有價值。

簡單來說,可以通過沒有免費的午餐定理(No Free Lunch Theorem -> NFL Theorem)來解釋。NFL由Wolpert在1996年提出,其應用領域原本為經濟學。和那句家喻戶曉的"天下沒有免費的午餐"有所不同, NFL講的是優化模型的評估問題。

在機器學習領域,NFL告訴機器學習從業者:"假設所有數據的分布可能性相等,當我們用任一分類做法來預測未觀測到的新數據時,對於誤分的預期是相同的。" 簡而言之,NFL的定律指明,如果我們對要解決的問題一無所知且並假設其分布完全隨機且平等,那麼任何演算法的預期性能都是相似的。這個定理對於「盲目的演算法崇拜」有毀滅性的打擊。例如,現在很多人沉迷「深度學習」不可自拔,那是不是深度學習就比其他任何演算法都要好?在任何時候表現都更好呢?未必,我們必須要加深對於問題的理解,不能盲目的說某一個演算法可以包打天下。

周志華老師在《機器學習》一書中也簡明扼要的總結:「NFL定理最重要的寓意,是讓我們清楚的認識到,脫離具體問題,空泛的談『什麼學習演算法更好』毫無意義。」

在這個深度學習就是一切的時代,作為數據科學家,我們要有自己的獨立判斷。

3.3. 重視數據可視化和模型可解釋度

數據科學家作為一個更偏商業應用的崗位,而不是研究崗位,需要重視數據可視化的重要性以及模型可解釋度的意義。原因很簡單,如果客戶看不懂我們做的是什麼,或者客戶不相信我們做的東西的可靠性,你即使有再酷炫的模型,也只是浪費時間。在大部分中小型的數據分析項目中,用深度學習的機會是很有限的。原因包括但不限於:

數據量要求很大

調參成本太高且奇淫巧技太多

模型可視化即解釋度低

而比較常用的機器學習模型是: 廣義線性模型(generalized linear models),如最普通的邏輯回歸;還有以決策樹為基底的模型,如隨機森林和Gradient Boosting Tree等。這兩種模型都有很好的可解釋性,而且都可以得到變數重要性係數。以Sklearn官方文檔(http://t.cn/Rcy2uci)中的簡單的決策樹可視化為例:

我們可以清楚的看到一個數據點如何從上至下被分到了不同的類別當中。作為一個需要和不同背景的人溝通的職業,分類器可視化是一個很好溝通基礎。

而可視化的好處遠不止於此,在數據建模初期的可視化可以避免我們走很多彎路。以ISL[3]中附帶的線性回歸為例,我們一眼就可以看出最右邊的圖不像左邊的圖中的數據可以通過簡單的線性回歸進行擬合,可以直接跳過線性回歸來節省時間。

3.4. 避免統計學偏見 & 給出嚴謹的結論

承接上一點,對於一個問題我們通常無法得到所有的相關變數,這導致了大部分數據分析的結果其實或多或少都有偏見。講個經典的統計學笑話,夏天溺水身亡的人數相比冬天大幅度上升,而夏天吃冰激凌的人數也上升,所以得到結論: 「吃冰激凌」會導致「溺水」。這種數據會說謊的本質就在於我們無法獲得所有的隱變數,如夏天去海邊的人數上升,游泳的人數上升等。

而在數據分析的項目中,大部分謬誤無法像上面這個例子一眼就可以看穿,我們常常會獲得很多看起來很可信但實則大誤的結論。作為一個數據科學家,請在分析時小心在小心,謹慎再謹慎,因為我們的分析結果往往會直接影響到公司或者客戶的收益。假設你做人事分析的項目,錯誤的結論可能導致優秀的員工被解僱。

所以萬望大家不要總想搞個大新聞,對於沒有足夠顯著性的結論請再三檢查,不要言過其實。這是我們的責任,也是義務。

4. 如何成為一個合格的數據科學家?

假設你已經有了基本的從業資格:即有相關領域的學位,掌握了數據分析和建模的基礎能力,也懂得至少一門的分析語言(R或Python)和基本的資料庫知識。下面的這些小建議可以幫助你在這條路上走的更遠。

4.1. 紮實的基本功

像我在另一個機器學習面試回答[4]中提到過的,保證對基本知識的了解(有基本的廣度)是對自己工作的基本尊重。什麼程度就算基本了解呢?以數據分析為例,我的感受是:

對基本的數據處理方法有所了解

對基本的分類器模型有所了解並有所使用(調包),大概知道什麼情況使用什麼演算法較好

對基本的評估方法有所掌握,知道常見評估方法的優劣勢

有基本的編程能力,能夠獨立的完成簡單的數據分析項目

有基本的數據挖掘能力,可以對模型進行調參並歸納發現

至於其他軟實力,暫時按下不表。

4.2. 從實踐中培養分析能力

屠龍之技相信大家都有,我常常聽別人說他已經刷完了X門在線課,熟讀了X本經典書籍,甚至現代、優化、概率統計都又學了一遍,但為什麼Kaggle上還是排名靠後或者工作中缺乏方向?

簡單來說,上面提到的這些儲備,甚至包括Kaggle經驗,都屬於屠龍之技。數據分析領域的陷阱隨處可見,遠不是幾本書幾篇論文就能講得清楚。最好的方法只有從工作中實踐,跟著你的師傅學習怎麼分解項目,怎麼提取價值。

我記憶很深的一個例子是:有一次我和我的老闆為某國家鑄幣中心制定最優的紀念幣定價方案,來最大化收益。但根據客戶給我們的例子,我們的優化模型效果很差,誤差極大。我的老闆給了我幾個建議:1. 把回歸問題轉為分類問題,犧牲一部分精度 2. 捨棄掉一部分密度很低的數據,對於高密度區域根據密度重建模型 3. 如果不行,對於高密度區域用有限混合模型(Finite Mixture Model)再做一次。採納了老闆的建議,最終我們對於百分之75%的紀念幣做到了最佳的優化結果,為客戶帶來了價值。客戶對於剩下25%無法預測表示理解,因為他們無法提供更多的市場數據。

那個時候的我總覺得不能捨棄數據,但我的老闆用行動告訴我客戶最需要的是獲得價值,而不是完美的模型。而這種感悟,我們只有在實際工作中才能獲得。所以當你作為數據科學家開始工作時,請多想想如何產生價值,而不是一味地炫屠龍之技。

4.3. 平衡技術與溝通能力

數據科學家的重要工作內容就是彙報和寫報告,因而良好的"講故事"(storytelling)能力非常重要。在學習的過程中,請不要把全部的重心放在技術能力上。技術能力可以保證你有東西可以說,但講故事這種軟實力可以保證你的辛苦沒有白費,你的能力獲得大家的認可。同時,這種溝通能力也可以讓你在社交中更加如魚得水,一改理工科給人留下的沉悶的印象。輕溝通,重技術,是一種工程師思維,但這並不適用於數據科學家。

最後想不恰當的引用一句西方諺語:「欲戴王冠,必承其重。」在這個數據為王的時代裡面,成為優秀的數據科學家不僅僅代表著高薪,還代表著我們對於這個時代的貢獻與價值。然而道路阻且長,還有太多太多需要我們學習和完善的方向。

與君共勉:)

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據,教程,論文】

一篇文章告訴你如何成為數據科學家


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

用面向對象的神經規划進行文本理解
以不同的思考側重介紹卷積神經網路
深度學習在語音增強方向上的前沿研究
深度學習系列之一:基礎入門與全連接神經網路
谷歌的新CNN特徵可視化方法,構造出一個華麗繁複的新世界

TAG:AI研習社 |