從事數據科學工作需要掌握哪些技能?
本文通過國外KDnuggets論壇上Simplilearn的統計結果和國內某知名招聘網站的招聘要求信息進行分析,詳細介紹在數據科學的工作中,需要掌握哪一些技能以及工具,以及當下數據科學工作中,哪些技能和工具是從業人員的學習首選。
國外KDnuggets網站曾發起民意測驗調查,提出了以下問題:
1)您目前擁有哪些與數據科學/機器學習相關的技能?
2)您想學習或進修哪些技能?
KDnuggets調查結果分析
該民意調查獲得了1500份以上有效的答卷,樣本足夠大,由此做出來的推論是比較有參考意義的。本次調查僅有兩個問題,我們將通過這兩個問題的結果:現已掌握&計劃學習這兩個指標進行分析。調查結果顯示,平均每個人具有10種技能,平均每個人希望學習或進修6.5種技能。
下面的圖1顯示了主要發現,X軸顯示已有技能,對應第一個調查問題的結果,Y軸顯示想要技能,對應第二個調查問題的結果。每個圓圈的大小與擁有該技能的人數的比例成正比,而顏色則取決于需求/已有的比率(紅色高-大于1,藍色低-小于1)。

我們注意到此圖中的兩個主要類別。 圖表右側藍色虛線矩形中的第一類中包含了擁有率超過40%的技能,其需要/擁有的比率小于1。我們稱其為核心數據科學技能。

其中,最需要增加或改進的技能是機器學習(41%)和Python(37%)。增長最少的技能是Excel-只有7%的人希望增加或提高其Excel技能。
第二個集群,是圖1左側用紅色邊框標記的那些,包括當前不那么受歡迎(%Have <30%),但是使用比例可能卻在增長的技能,需求/已有比超過1。我們稱其新興的數據科學技能。
有趣的是,盡管有觀點認為Hadoop在下降,但在這次調查中,有更多的人希望學習Hadoop,而不是已經知道的東西,因此它仍可能越來越流行。
盡管Julia的需求/已有率高達3.4,但我們并未將其包括在熱門/新興技能中,因為僅有2%的總占比,比例太低,沒有有效的數據支撐。
其余技能劃分為第三類,包含了XGBoost,軟件工程,Java,MATLAB,SAS,雖然占比在10%至30%間,使用率并不算低,但并沒有增長,需求/已有比率<1。

具體技能的排名情況如下所示,分別以已有率和需求率的高低進行排序展示。


我們可以發現,當前和有抱負的數據科學家最想要學習的進修的技能是深度學習,Tensorflow,機器學習和Python。
根據調查,我們發現有一些核心的、穩定的數據科學技能,它們有些是使用率很高,有些是當前非常重要、熱門的技能。
技術技能:計算機科學
1、教育
數據科學家受過高等教育,并且有高達88%的人至少具有碩士學位,46%的人擁有博士學位。盡管有例外,但通常需要非常強的教育背景,以發展成為數據科學家所需的知識深度。要成為數據科學家,您可以獲得計算機科學,社會科學,物理科學和統計學的學士學位。最常見的研究領域是數學和統計學(32%),其次是計算機科學(19%)和工程學(16%)。這些課程中的任何一個學位都將為您提供處理和分析大數據所需的技能。 完成學位課程后,并不意味著已經成功。事實是,大多數數據科學家都擁有碩士學位或博士學位,并且他們還接受在線培訓以學習特殊技能,例如如何使用Hadoop或大數據查詢。因此,可以通過學習數據科學,數學,天體物理學或任何其他相關領域的碩士學位課程。利用在大學學到的技能使您輕松過渡到數據科學。 除了課堂學習之外,您還可以通過構建應用程序,創建博客或探索數據分析來練習在課堂上學到的知識,以使您學到更多。比如CSDN、Github、Kaggle等。
2、R編程
在過去,通常首選R語音作為對數據科學的分析工具。R是有統計學家,專門為數據科學需求而設計的。可以使用R解決在數據科學中遇到的任何問題。實際上,現在有43%的數據科學家正在使用R來解決統計問題。但是,R具有陡峭的學習曲線。
相對現在非常熱門的python而言,R很難學習,尤其是如果您已經掌握了編程語言。但是,互聯網上有大量資源可以幫助學習,對于有抱負的數據科學家來說,這是一個巨大的資源。
3、Python編碼
不同于Java,Perl或C / C ++,Python是數據科學工作中通常使用到的最常見的編碼語言。對于數據科學家而言,Python是一種很棒的編程語言。這就是為什么接受調查的受訪者中有40%表示,使用Python作為其主要編程語言的原因。
由于它的多功能性,使用者幾乎可以將Python用于數據科學過程中涉及的所有步驟。它可以采用各種格式的數據,并且使用者可以輕松地將SQL表導入代碼中。可以創建數據集,并且可以在Google上找到所需要的任何類型的數據集。
4、Hadoop平臺
盡管Hadoop并不是必需的,因為他是大數據平臺,但在許多情況下,它是首選。擁有Hive或Pig的經驗也是一個強項。熟悉諸如Amazon S3之類的云工具也可能會有所幫助。在對3490個數據科學工作者進行的一項研究調參中,Hadoop以49%的占比被評選為數據科學家第二重要技能。 作為數據科學家,可能會遇到這樣一種情況,即擁有的數據量超出了系統的內存,或者需要將數據發送到其他服務器,這就是Hadoop的用武之地。使用者可以使用Hadoop來快速將數據傳輸到各種服務器。同時可以使用Hadoop進行數據探索,數據過濾,數據采樣和匯總等各項工作。
5、數據庫/SQL編碼
盡管NoSQL和Hadoop已經成為數據科學的重要組成部分,但仍需要能夠在SQL中編寫和執行復雜的查詢。SQL(結構化查詢語言)是一種編程語言,可以執行數據庫中添加,刪除和提取數據之類的操作。它還可以執行分析功能和轉換數據庫結構。 作為數據科學家,需要精通SQL。這是因為SQL是專門為訪問、通信和處理數據而設計的。它具有簡潔的命令,可以節省時間并減少執行困難查詢所需的編程量。
6、Apache Spark
Apache Spark正在成為全球很受歡迎的大數據技術。就像Hadoop一樣,它是一個大數據計算框架。唯一的區別是Spark比Hadoop快。這是因為Hadoop讀寫磁盤,這使其速度變慢,但是Spark將其計算緩存在內存中。 Spark專為數據科學而設計,可幫助更快地運行其復雜算法。處理大量數據時,它有助于傳播數據處理,從而節省時間。它還可以幫助數據科學家處理復雜的非結構化數據集。可以在一臺或多臺計算機上使用它。
Spark使數據科學家可以防止數據科學中的數據丟失。Spark的優勢在于其速度和平臺,這使得執行數據科學項目變得容易。使用Spark,可以進行從數據獲取到分布式計算的分析。
7、機器學習與人工智能
大量數據科學家并不精通機器學習領域和技術。這包括神經網絡,強化學習,對抗學習等。如果您想在其他數據科學家中脫穎而出,則需要了解機器學習技術,例如監督機器學習,決策樹,邏輯回歸等。這些技能將幫助您解決基于主要組織成果預測的不同數據科學問題。 數據科學需要在機器學習的不同領域中應用技能。Kaggle在其一項調查中顯示,一小部分數據專業人員具備高級機器學習技能,例如有監督的機器學習,無監督的機器學習,時間序列,自然語言處理,離群值檢測,計算機視覺,推薦引擎,生存能力分析,強化學習和對抗學習。
8、數據可視化
商業世界經常產生大量數據。需要將這些數據轉換為易于理解的格式。人們自然比原始數據更了解圖表和圖形形式的圖片。 作為數據科學家,必須能夠借助數據可視化工具(例如ggplot、BI、Matplottlib和Tableau)可視化數據。這些工具將幫助您將項目中的復雜結果轉換為易于理解的形式。例如很多人不了解序列相關性或p值等專業性的較強的詞匯所表達的意思。您需要直觀地向他們展示這些術語在您的結果中代表什么。 數據可視化使組織能夠直接使用數據,可以快速掌握見解,從而幫助他們把握新的商機并保持競爭優勢。
9、非結構化數據
數據科學家能夠處理非結構化數據至關重要。非結構化數據是不適合數據庫表的未定義內容。例如包括視頻,博客文章,客戶評論,社交媒體文章,視頻供稿,音頻等。它們是復雜的文本、音頻匯集在一起。 因為這些類型的數據沒有被簡化,所以很難對其進行排序。 由于非結構化數據的復雜性,大多數人將其稱為“黑暗分析”。使用非結構化數據可幫助您揭示對決策有用的見解。作為數據科學家,必須具備理解和操縱非結構化數據的能力。
非技術技能
10、求知欲
“我沒有特殊才能。我只是充滿好奇。” --愛因斯坦。 好奇心可以定義為獲取更多知識的愿望。作為數據科學家,需要能夠提出有關數據的問題,因為數據科學家花費大約80%的時間來發現和準備數據。這是因為數據科學領域是一個發展迅速的領域,數據科學家必須學習更多以跟上步伐。 數據科學家需要通過在線閱讀內容并閱讀有關數據科學趨勢的相關書籍來定期更新知識。不要被遍布互聯網的龐大數據量所淹沒,數據科學家必須要能夠知道如何理解所有數據。好奇心是成功成為數據科學家所需的技能之一。例如,他可能不會對所收集的數據有太多了解,但好奇心使他可以篩選數據以找到答案和更多見解。
11、商業頭腦
要成為數據科學家,需要對自身所從事的行業有扎實的了解,并且知道本公司正在試圖解決哪些業務問題。在數據科學方面,除了確定業務應該利用其數據的新方法之外,還要能夠辨別哪些問題對于業務而言至關重要。 為此,必須了解解決的問題是如何影響業務的。
12、溝通技巧
尋找強大數據科學家的公司正在尋找可以清楚,流利地將其技術發現轉化到非技術團隊的人員,例如市場或銷售部門。數據科學家除了了解非技術同事的需求以適當地整理數據外,還必須通過用量化的見解武裝他們來使企業做出決策。 除了說公司所能理解的相同語言外,還需要使用數據講故事進行交流。作為數據科學家,必須知道如何圍繞數據創建故事情節,以使任何人都易于理解。例如,呈現數據表,并不像以講故事的方式共享來自那些數據的見解那樣有效。講故事將幫助您正確地將您的發現傳達給您的雇主。交流時,請注意在分析數據中嵌入結果和值。大多數企業所有者不希望知道您所分析的內容,而是對它如何對他們的業務產生積極影響感興趣。學會專注于通過交流傳遞價值并建立持久的關系。
13、團隊合作
數據科學家不能獨自工作。必須得和公司高管一起制定戰略,與產品經理和設計師一起創造更好的產品,與市場人員一起開展轉換效果更好的活動,與客戶和服務器軟件開發商一起創建數據管道并改善工作流程。實際上,數據科學家將必須與公司中的每個人,甚至包括客戶一起工作。 本質上,數據科學家將與團隊成員合作開發數據產品,了解解決問題所需的業務目標和數據。并且需要知道解決問題的正確方法,解決問題所需的數據以及如何將結果轉換和呈現為所涉及的每個人都易于理解的內容。
數據分析某知名招聘網站的招聘信息
相對于國外的情況,國內的情況又是如何呢?進行數據分析相關工作又需要哪些工作技能呢?為此,特意爬取某招聘網站的有關數據分析相關職位的相關信息來進行分析,探索國內數據分析工作的技能要求。
將工具提取出來制作成詞云圖,其中字體越大,顏色越深的工具出現的頻率越高,說明也越多企業希望能招到掌握此技能的員工。可以很明顯的看出,python是其中需求較高的技能,其次還有SQL、Spark、Hadoop、Excel等。

根據工具與其出現的詞頻,繪制成條形圖:

- python作為近年來最熱門的編程語言,在數據科學領域也有這舉足輕重的地位,在所有招聘數據分析工作者的崗位中,有多達1329家企業明確希望找到能使用python的員工。
- 而作為傳統統計分析編程軟件的R,位列第六,崗位需求僅有不到800,遠不及python的需求量。
- 同為編程語言的Hadoop和Spark分別位列第二、第四,均有1000上下的需求,說明當前大數據方向在數據科學中的重要性,市場對擁有大數據分析技能的人才有著很大的需求。
- 作為非傳統數據處理、清洗、分析的編程軟件Java和C語言,同樣在這一領域有這不少的需求量,也在側面說明了編程能力對于數據科學領域是一個重要的能力。
- 在數據庫方面,Hive、Hbase、MySQL、Oracle出現的頻數較高,sql作為數據庫的編程語句,并不屬于一種獨立的軟件,其實也包括了MySQL、Oracle在內的一些數據庫,所以MySQL和Oracle實際會有更高的市場人才需求。
- Excel、SAS、SPSS也是數據分析工作中較多人使用的工具,目前市場上對掌握此類技能的人才也有這大量的需求。