資料科學家的自我修養 | 哪些技能是必不可少的?
作者: Jeff Hale
編譯: Mika
CDA 資料分析師原創作品,轉載需授權
市場上對資料科學家的要求特別多:需要掌握機器學習、電腦科學、統計學、數學、資料視覺化,深度學習等知識。要想全部掌握這些方面的知識,科學家需要學習數十種語言、框架和技術。那麼,為此資料科學家應該如何合理地分配時間,該掌握哪些技能呢?
在本文中,我對求職網站進行搜尋,找出對資料科學家的技能要求。我分別分析了通常的資料科學技能和特定語言以及工具。我具體搜尋了2018年10月10日LinkedIn、Indeed、SimplyHired、Monster、以及AngelList這些求職網站。以下圖表顯示了在每個網站中釋出了多少資料分析師工作。
本文對LinkedIn、Indeed等主流招聘網站進行資料收集,分析了資料科學家最需要掌握哪些技能
我分析了許多工作列表和調查,想列出當中最常見的技能要求。”管理”這類詞沒有包含在內,因為許多求職釋出中都會包含這個詞。
全部搜尋都是針對美國地區,關鍵詞中帶有“資料科學家”的職位釋出,並使用精確匹配搜尋減少了結果數量。但是,這種方法確保結果與資料科學家職位相關,並且影響所有搜尋項。
AngelList中提供的是招聘資料科學家的公司數量,而不是職位數量。我將AngelList排除在這兩種分析之外,因為它的搜尋演算法是OR的邏輯搜尋,而且無法將其修改為AND。如果你搜索”資料科學家”“TensorFlow”這類關鍵詞,AngelList表現還不錯,但如果你搜索“資料科學家”“react.js”也會返回不招聘資料科學家的公司。
Glassdoor也被我排除在外。網站上表示美國目前釋出了26,263個“資料科學家”的職位,然而實際只顯示了不到900個的職位。此外,Glassdoor釋出的資料科學家職位也不可能比起其他主流平臺的三倍要高。
最終分析採用了在LinkedIn上400多個職位資訊分析通用技能,針對200多個職位資訊分析特定技能。當中有一些重複,結果記錄在Google Sheet中。
https://docs.google.com/spreadsheets/d/1df7QTgdAOItQJadLoMHlIZH3AsQ2j2_yoyvHOpsy9qU/edit?usp=sharing
我下載了.csv檔案並將其匯入JupyterLab。然後,我計算出每個百分比,並對招聘網站上的數量進行平均。
此外,我將結果與Glassdoor 在2017年上半年釋出的資料科學家職位研究進行比較,並且結合KDNuggets的調查資訊。從中可以發現,對於資料科學家而言,有些技能變得越來越重要,而其他技能則逐漸不再重要。之後我們將具體看到。
Glassdoor
https://www.glassdoor.com/research/data-scientist-personas/
KDNuggets
https://www.kdnuggets.com/2018/05/poll-tools-analytics-data-science-machine-learning-results.html/2
可以在我的Kaggle Kernel 中看到互動式圖表和分析。我使用Plotly進行視覺化,在寫本文時,使用Plotly和JupyterLab有一些難點,具體說明在 Kaggle Kernel 最後的Plotly文件中
Kaggle
https://www.kaggle.com/discdiver/the-most-in-demand-skills-for-data-scientists/
Plotly 文件
https://github.com/plotly/plotly.py
1.通用技能
以下是僱主最希望資料科學傢俱備的通用技能。
結果表明,通用技能中資料分析和機器學習是資料科學家工作的核心。從資料中收集分析見解是資料科學的主要功能。機器學習是關於開發建立預測效能的系統,這也是十分受歡迎的技能。
資料科學家需要統計學和電腦科學技能,這並不驚訝。統計學、電腦科學和數學也是大學專業,這也可能提高了這些技能出現的頻率。
有趣的是,近一半的職位要求中都提到了溝通能力。資料科學家需要能夠傳達自己的見解,並與他人合作。
人工智慧和深度學習並不像其他術語那樣經常出現。但是,它們是機器學習的子集。深度學習被用於越來越多的機器學習任務中,之前主要是使用其他演算法。例如如今,用於大多數自然語言處理問題的最佳機器學習演算法是深度學習演算法。我預計將來深度學習技能將被越來越明確,而且機器學習將於深度學習越來越類似。
那麼僱主希望資料科學家使用哪些特定軟體工具?接下來,讓我們看到這個問題。
2.技術技能
以下是僱主最希望資料科學家掌握的前20種特定語言,庫和科技工具。
讓我們簡要介紹一下最常見的技術技術。
Python是最受歡迎的語言。這種開源語言已經非常普及。對初學者而言,這種語言很好上手,有許多支援的資源。絕大多數資料科學工具都與之相容。Python是資料科學家主要的使用語言。
R與Python相差不遠。它曾經是資料科學的主要語言,很驚訝地看到R語言的需求仍然很大。這種開源語言的根源在於統計資料,它非常受統計學家的歡迎。
Python或R語言幾乎是每個資料科學家的必備條件。
SQL的需求也很高。SQL指的是Structured Query Language(結構化查詢語言),是與資料庫互動的主要方式。在資料科學領域,SQL有時會被忽視,但如果想找資料科學方面的工作,這項技能是很重要的。
接下來是Hadoop和Spark,它們都是Apache的大資料開源工具。
Apache Hadoop是一個開源軟體平臺,用於分散式儲存和分散式處理大型資料集,這些資料集是由商用硬體構建的計算機叢集。
Apache Spark是一種快速的記憶體資料處理引擎,具有強大且富有表現力的開發API,能夠讓資料工作者有效地執行流、機器學習或SQL,這些情況需要對資料集進行快速迭代訪問。
與Python,R和SQL相比,很少有求職者具備這些技能。如果你會Hadoop和Spark的經驗,那麼你更有可能在求職中成功。
接下來是Java和SAS。我驚訝地發現在職位描述中,這兩種語言出現的頻率也很高。通常,Java和SAS在資料科學界的關注度都不高。
接下來是Tableau。這個分析平臺和視覺化工具功能強大,易於使用且越來越受歡迎。它有一個免費的公共版本,但如果你想保持資料私密就需要花錢。
如果你不熟悉Tableau,那麼強烈推薦Udemy的 Tableau 10 A-Z 。
下圖技能列表顯示的語言、框架和其他資料科學軟體工具更多。
3.歷史比較
GlassDoor 曾在網站上釋出了2017年1月至2017年7月期間,資料科學家的10種最常見的軟體技能。這裡將GlassDoor的資料與LinkedIn,Indeed,SimplyHired和Monster在2018年10月的平均值進行比較。
結果非常相似。根據我的分析和GlassDoor的調查,Python、R和SQL都是是最受歡迎的技能。而且前九個技能排名稍微有些不同。
結果表明,與2017年上半年相比,R語言、Hadoop、Java、SAS和MatLab的需求量減少,而Tableau的需求量增加。根據局KDnuggets開發人員調查等分析,這也並不意外。在這份調查中顯示,R語言、Hadoop、Java和SAS在近年來使用量呈都下降趨勢,Tableau呈明顯的上升趨勢。
4.建議
根據這些分析的結果,以下是對資料科學家的一些建議。
-
證明自己的資料分析能力,並專注熟練掌握機器學習。
-
提高你的溝通技巧。推薦閱讀《Made to Stick》這本書”,幫助你提升自己觀點的影響力。還可以試試Hemmingway Editor這款app,提高寫作的邏輯性。
-
掌握深度學習框架。精通深度學習框架在機器學習方面越來越重要。
-
如果你在猶豫選擇Python還是R語言之間做出選擇,請選擇Python。如果你數量掌握Python,那麼可以也考慮學習R語言,這會讓你在行業中更佔優勢。
當僱主在尋找具有Python技能的資料科學家時,他們也期望求職者掌握常見的Python資料科學庫:numpy、pandas、scikit-learn和matplotlib。如果你在學習這些工具,建議你使用以下資源:
-
DataCamp,DataQuest。
兩者都是價格合理的線上SaaS資料科學教育產品,你可以在程式設計時學習,當中都教授了許多技術工具。 -
Data School
擁有各種資源,還包括一系列很讚的YouTube視訊,解釋各種資料科學概念。 -
McKinney的《Python for Data Analysis 》
這本書主要關注本書由熊貓圖書館的主要作者注重pandas,還討論了基礎的Python,numpy和scikit-learn等功能。 -
Müller和Guido的《Introduction to Machine Leaning with Python》
Müller是scikit-learn的主要維護者。這是一本關於用scikit-learn學習機器學習的好書。
如果你想學習深度學習,我建議先學習Keras或FastAI,然後在學習TensorFlow或PyTorch。Chollet的《Deep Learning with Python》這本書是學習Keras的絕佳資源。
除此之外,我建議你瞭解你感興趣的內容,儘管這裡需要考慮到時間分配等因素。
如果你想通過線上入口網站找資料科學家的工作,我建議試試LinkedIn,這上面可找到的工作資訊是最多的。
在招聘網站找公司時,關鍵詞很重要。關鍵詞方面“ 資料科學 ”得到的結果會是“ 資料科學家 ”的3倍。但是,如果你想準確地找資料科學家的工作,那麼最好還是搜尋“ 資料科學家 ”。
我建議你製作一個線上作品集,能夠展示技能的的熟練程度。我還建議在你的LinkedIn個人資料寫出你的技能。