如何成為一名數據科學家?

2021-02-20 經濟金融網

本文總結了數據科學領域的資源,很大程度上參考了Quora的這篇文章,根據博主的經驗在內容上做了適當的調整,僅供參考。


1.基礎知識

課程方面要學的有:多值微積分、數值分析、線性幾何、概率論、Python。

微積分在機器學習和各種求概率中非常重要。線性幾何、矩陣對於機器學習的大多數概念都是必不可少的。Python這種程式語言非常適合搞數據科學。其他的知識(比如隨機森林,pandas,A/B測試)隨著你的工作開展和學習會慢慢接觸到,這些都不是基本的問題。

如果你還是學生,一定要學好計算科學和統計學,選課的時候要記得選線性幾何、矩陣、計算科學、概率論等相關的課程。


2.Python是數據科學家最重要的語言

Python有著像matlab一樣強大數值計算工具包NumPy;有著繪圖工具包matplotlib;有著科學計算工具包SciPy(基於Numpy和matplotlib的)。這三者為Python提供了像Matlab一樣強大的矩陣控制能力,這是Python完勝Perl和Ruby的地方。

當然,除了Python之外,R,Matlab/Octave,Mathematica/Sage也正在崛起。這些語言也有著一些優勢。不過,就拿R來說,R的數據框架和相關的控制能力已經被Python的pandas工具包實現了。Scikit-learn也提供了像R一樣強大的機器學習算法庫。 Mathematica/Sage中「notebook」的概念也被IPython notebooks實現了。


當然,Python也不是萬能的,比如:

語法比起Matlab和Octave來說還是笨重了,R的語法就好很多。

缺少像ggplot2這種靜態圖和D3這種可交互圖,matplotlib用起來還是比較複雜。

處理大數據時,Numpy和pandas這些庫有些捉襟見肘,Continuum正在致力於解決這個問題,目前來看還沒有完成。

對於數據控制,缺少像LINQ那樣的內置的聲明式的語言。Pandas對數據控制的能力還是比較低級,而且當你深入研究Pandas的時候很可能會被它的語法整崩潰。

缺少面向數據科學家的專門的IDE,R的R Studio就不錯。

對於數據科學家而言,Python可能是最重要的語言了,如前文所述,它有著非常豐富的生態系統。

R語言能夠在處理過的數據上運行機器學習算法,但是Python直接能夠處理數據,而Pandas幾乎可以像SQL那樣對數據進行控制。Matplotlib能夠讓你對數據和結果進行可視化,以便快速理解你的數據。Scikit-learn提供了機器學習算法支持,Theano提供了深度學習框架(還可以使用GPU加速)。用過R、matlab、Octive、Python、SAS和Microsoft Analysis Services的人都推薦用Python。


3.加入社區


Meetup:到Meetup上找一些你感興趣的talk,在線的學習數據科學,認識一些數據科學家或者將來的數據科學家。


博客:這裡有個國外比較具有影響力的數據科學家的博客列表,可以選一些follow。


Quora、twitter:數據科學第一手的信息資源的來源一般是twitter、Quora上的用戶,例如:

Jeff Hammerbacher @hackingdata

Peter Skomoroch @peteskomoroch

Ryan Rosario @datajunkie

Michael E Driscoll @medriscoll

Joseph Turian @turian

Nathan Yau @flowingdata

Peter Skomoroch @peteskomoroch

Russell Jurney @rjurney

Bradford Cross @bradfordcross

J.D. Long @cmastication,Jimmy Lin @lintool

Kevin Weil @kevinweil

Mat Kelcey @mat_kelcey

Edwin Chen @edchedch

Data Drinking Group @chrisalbon/data-drinking-group

Big Data @dataspora/bigdata

Data Science @pinoystartup/sim-data-team

Strata Program Committee @strataconf/strata-committee

到Quora和Twitter上去follow這些人吧,別忘了follow自己這個領域最牛的那幾個人,比如博主follow了Socher。另外,這個網站分析了twitter上哪些人在數據科學領域最具影響力。Quora上有很多資源,跟stackoverflow不同的是,Quora比較像知乎,會有人給你一些像survey類型的經驗,一般問題都比較抽象,回答比較系統;stackoverflow更擅長具體的問題,尤其是編程方面的細節問題。


新浪微博:由於博主只是一個普通的微博用戶,且個人較偏向於文本方向,對大咖們的了解還不夠深入,難免有缺漏,如果有缺漏了請多包涵且告知。以下是我個人關注的微博大咖們:

王威廉

王偉DL

劉知遠THU

張棟_機器學習

李航博士

丕子

winsty

黃亮-算法時代

梁斌penny

licstar

老師木

數盟社區

52nlp

好東西傳送門

西瓜大丸子湯

數據挖掘研究院

愛可可-愛生活

龍星鏢局

另外,好東西傳送門的日報每天都會收錄微博精華,懶得刷微博的同學可以看這裡http://memect.com/


個人加的幾個QQ群

自然語言處理 174735435

龍星課程-機器學習 163973179

神經網絡 / 深度學習 385206220

Deep Learning高質量 209306058

生物醫學文本挖掘BIONLP 290210559

數盟【數據分析1群】 321311420

4.配置你的環境

Python的安裝

R和R studio

Sublime Text(比notepad++和ue更適合寫代碼,個人用的eclipse+PyDev)

5.學習相關工具的使用


Python: 可以結合官方教程、笨辦法學Python(英文原版)、Think Python:How to Think Like a Computer Scientist來學習。書可以從這裡找幾本。當然,找到最適合自己的方式是最好的,以上只是提供一些選擇而已,博主當時是學的Udacity的programming language外加Natural Language Processing With Python。


R: 推薦swirl,一個數據科學和R配套學習的教程。


Sublime Text:這個網站還不錯,從配置到快捷鍵,裡邊的視頻在youtube上。


SQL: 個人感覺這個不太重要,而且SQL相對來說較簡單,對找工作也許有點用處。


結合概率統計來學習: 以上這些語言比起C、Java來說語法很簡單,有基礎的同學很輕鬆就能掌握,對於這類同學來說,可以結合概率統計順便把程式語言給學了。例如:針對Python的Think Stats(pdf)、針對R的An Introduction to Statistical Learning(MOOC)、應該掌握的統計學知識點可以參考這裡。

6.哈佛的data science公開課

不必多說,看了再說,視頻,配套PPT,配套實驗,配套作業。

7.到Kaggle上找一些基礎的競賽練手

剛開始的時候最好不要直接參加由獎金的競賽,因為這些競賽的數據往往很大、複雜、晦澀,不適合學習。可以先學(wan)學(wan)Scikit-learn,拿這個簡單的二元分類任務練手:Data Science London + Scikit-learn。

接下來可以進軍第二個任務:Titanic: Machine Learning from Disaster,這個任務比第一個要稍微複雜那麼一點(有枚舉類型的變量categorical variables,丟失的變量這些情況了)。

第三個任務,可以嘗試Forest Cover Type Prediction。

第四個任務,可以嘗試Bike Sharing Demand,這裡邊有一些時間戳數據。

第五個任務,嘗試一些自然語言處理的任務,如情感分析。

做完這些之後,再找些自己感興趣的競賽做做。

8.數據科學相關的知識


產品指標會教你公司裡邊關心什麼、看重什麼、他們是怎麼衡量產品的:The 27 Metrics in Pinterest’s Internal Growth Dashboard


優化方法能幫你理解統計學和機器學習:Convex Optimization - Boyd and Vandenberghe


A/B測試其實在醫學上已經應用多年了,只是換了個名字而已:How do I learn about A/B Testing?


用戶行為This Explains Everything " User Behavior

Feature Engineering一些經驗,一個案例


大數據技術針對大數據技術的工具、框架How do I learn big data technologies?


Machine LearningHow do I learn Machine Learning?


Natural Language Processing自然語言處理需要把文本數據數學化,並且要儘量不丟失文本的「含義」。文本挖掘會讓你接觸全新的、令人興奮的數據(做了都說好,誰做誰知道)How do I learn Natural Language Processing (NLP)?


時間序列分析How do I learn about time series analysis?


數據文明data-driven.pdf

9.參與/solo個頂層產品

用已掌握的數據科學和軟體工程技能做出個讓別人看了會點讚的成品出來,可以是網站、處理數據的新方法、炫酷的可視化等等。要做這麼個成品,可以先看看以下內容:

數據科學中的toy problem

如何搭建一個推薦引擎

怎麼利用利用閒暇時間快速搭建Python項目

如何衡量一個twitter用戶的影響力

開放的大規模數據集

郵件優先級相關算法

一些優秀的數據科學project

10.公開和社交

在github上創建公開的倉庫,寫博客,把你的研究工作、參與的項目、Kaggle競賽的解決方案、見解和想法都貼出來,這會讓你提升影響力,為你的簡歷準備素材,跟通靈玉的其他人建立聯繫。

11.獲得數據科學的實習或工作

BAT都有相關領域的實習崗位,另外這裡有些國外的提供實習機會的公司

搞不清自己該申請數據科學還是軟體開發的實習?

現在很多公司在初秋一直到冬天都會招聘數據科學崗位實習,僅僅是實習的話,記得不要花過多的時間去準備,直接去應聘就行。

12.在線書籍

Elements of Statistical Learning: data mining, inference, and prediction. 2nd Edition.

Introduction to Statistical Learning: Page on usc.edu

Think Stats: Probability and Statistics for Programmers

13.像數據科學家一樣思考

以上已經詳細的介紹了數據科學家所需要的具體技巧。想要像數據科學家一樣思考,建立正確的態度,只有這些技術是遠遠不夠的。以下列出了成為合格數據科學家的7項挑戰:

(1) 保持對數據的好奇

作為一名數據科學家,你要自己找問題並且自己做出回答。數據科學家要自然而然的對他們看到的數據產生好奇,並找到解決問題的創新性方法。

很多時候數據科學並不只是分析,而是找出一個有趣的問題並且找到解決方案。

這裡有兩個典型的案例:

Hilary: the most poisoned baby name in US history

A Look at Fire Response Data

總結: 對你感興趣的問題或者主題進行思考,然後用數據的方式作出回答。

(2) 用懷疑的眼光閱讀新聞

數據科學家的很多貢獻往往是,他們從一堆信息裡找出了哪些是重要的、哪些是假的(這是機器很難取代數據科學家的原因),這種習慣性的懷疑的眼光在任何科學領域都是有益的,尤其是在發展速度快的領域,因為這些領域更容易被假象誤導。

看新聞的時候練習批判性的眼光吧,很多文章本質上都是有瑕疵的。這裡有兩個例子,評論裡有答案:

Easier:You Love Your iPhone. Literally

Harder:Who predicted Russia’s military intervention?

總結:每當你看到新的文章時,記得持懷疑的態度,對文章進行評論,並指出它的問題在哪。

(3) 把數據看成是改善消費者產品的工具

試著了解一款網際網路產品,檢查它的主要渠道。有沒有結帳渠道?註冊渠道?訂單渠道?

反覆的檢查這些渠道,然後提出一些假設方案來提升核心指標(比如轉化率、用戶分享數、註冊用戶數量等)。設計實驗來驗證你的假設是否真的會改變這些指標。

總結:通過反饋郵件跟這個網站分享你的idea

(4) 像貝葉斯一樣思考

像貝葉斯一樣思考,用先驗來作判斷。這意味著,要想樹立起數據科學家的思維方式,就必須一方面能夠周詳考慮新觀測到的信息,另一方面又需要以往的直覺和經驗(貝葉斯裡的先驗)。

比如,檢查下數據,發現今天的用戶參與量明顯下降了,下面哪種原因是最有可能的呢?

用戶參與量就是會突然的減少

網站的某些功能down掉了

登陸模塊down掉了

儘管1也能夠作為一種解釋,但是2和3看上去比1更靠譜,因為根據先驗概率來看,2和3的概率要比1更大。

再比如,你是Tesla公司的高級工程師,而在上個月中,5輛Tesla S著火了。有可能是什麼原因呢?

生產質量下降了,現在Tesla的安全性應當被重新測試

安全性不是問題,因為與其他同行汽油車相比,Tesla S著火的概率已經算很低的了

即使沒什麼經驗的人也可能會得出1這樣的結論,如果你經常做質量測試,那你的先驗對2是否正確就會更有把握。不過,你應該繼續尋找分別支持兩個結論的信息,並繼續尋找提升質量的辦法,那麼問題來了:什麼樣的信息應該值得留意呢?

總結:回想一下你上一次沒有用先驗來指導思考就得出結論是什麼時候,從現在開始避免再犯類似的錯誤。

(5) 了解每種工具的能力

「Knowledge is knowing that a tomato is a fruit, wisdom is not putting it in a fruit salad.」 - Miles Kington

知識會指導你實現經典的線性回歸,而經驗會告訴你這在實際當中幾乎不會用到。

知識會讓你了解k-means聚類的5種變種,而經驗會告訴你實際當中幾乎不會單獨在數據上聚類,以及k-means在特徵過多的時候表現是多麼的不如人意。

知識會告訴你一堆複雜的技術,而經驗會告訴你怎麼在有限的時間裡從這裡邊為你的公司選擇一個最能產生效益的。

當你到Coursera或EdX上學一門課的時候,你可能會隨著課程開發出一堆工具,除非你能搞清楚在什麼場合下用哪個合適,否則這一堆工具毫無實際作用。

總結:在真實數據上嘗試各種工具,發現他們各自的優點和不足。哪種工具在這種場合下最好,為什麼?

(6) 給別人講一個複雜的概念

Richard Feynman是怎麼判斷哪個概念他能懂,哪個不懂呢?

Feynman稱得上是一位偉大的老師,他能夠向一些什麼都不懂的學生講明白一些較深的知識,這一點他為自己感到自豪。有人告訴他說:「Dick,跟我解釋一下,為什麼自選1/2粒子服從費米 - 狄拉克統計」,他考慮了一下聽眾的知識水平,然後說,「我會針對這個專門為新生講一次課的。」過了幾天他說:「我做不到。這個知識沒有辦法簡化到新生能聽懂的地步。這意味著我們並沒有真的搞懂了這個知識點」

Richard Feynman與眾不同的地方就在於他能夠提煉複雜的概念,把他們轉換成可以理解的想法。類似的,一流的數據科學家與眾不同的地方就是他們能夠誠懇的分享他們的想法並且對這些想法作出解釋和分析。

總結:把你懂的一種技術概念介紹給你的朋友吧,也可以是在知乎、Quora或者優酷、youtube上。

(7) 說服其他人什麼才是重要的

對一個數據科學家來說,比解釋他們的分析更重要的,可能是與大家交流某個見解的價值和潛在的影響。

數據科學的某個具體的任務將會商品化編程數據科學工具,然後不斷的完善。新工具會讓一些任務更新迭代,比如手寫版應用、data wrangling(數據清洗)、甚至是某些預測建模。

然而,數據科學家發現並和別人分享什麼才是重要的,這種能力永遠不會過時。數據量在逐漸增加,對數據的一些潛在的見解也在增加,公司總會需要數據科學家來找出該怎麼做才能對任務進行優化。

數據科學家在企業中扮演的角色,是數據和公司之間的使者。數據科學家成功與否,關鍵在於他/她是怎麼講故事的、以及對公司帶來了什麼樣的影響,其他的技能都是對這種能力的一种放大。

總結:從統計學的角度來講故事吧,跟別人交流你在數據上的重要發現,針對觀眾關心的事做些具有說服力的presentation。

14.關於找工作(點擊圖片放大)

(作者:Edwin Jarvis)

欲了解「不同人群如何成為數據科學家定製版」,請點擊閱讀原文。

相關焦點

  • 成為一名數據科學家的學習三部曲
    如果你看到這篇文章的題目開始閱讀本文,那麼一定是數據科學激起了你的興趣。你肯定希望2016年成為你的轉運年,對不對?如果你從今天起堅持去執行這些新年計劃,轉運的可能性就會更大。要知道,成為一名數據科學家不能一蹴而就,需要的是一個過程。因此,朝目標邁進的過程中一定要充滿耐心。根據發展階段的不同,我在此給大家分享一些每個數據科學家都應該做的新年計劃。
  • 「我克服了抑鬱症成為了一名數據科學家:這是我的故事」
    拉維·斯裡達(Ravi Sreedhar)是一位在NeenOpal Intelligent Solutions工作的略有成就的數據科學家。然而誰又能想到,他是一名抑鬱症患者,在抑鬱症的泥潭中反覆掙扎過。但他最終成功地克服了抑鬱症,並且成為了一名數據科學家。下面我們來看看他本人是怎麼講述這個故事的。
  • Science最新:如何成為一名合格的科學家
    2020年8月5日,Science發表了一篇文章,講述了對待科研生活的一些建議—如何才能成為一名合格的科學家。小編將文章核心內容總結如下,希望可以幫助到科研路上的各位同學們。 真正的科學發現需要時間,會遇到很多坎坷,甚至爭議。
  • 如何成為一名大數據工程師?
    在如今有時候有數據的地方就叫大數據,這未免有些誇張,在本文中統稱為數據工程師和數據科學家。先了解一下,數據工程師究竟做什麼事?一個人怎麼樣成為數據工程師?我們將討論這個有趣的領域以及如何成為數據工程師。數據工程師都做什麼?
  • 一名數據科學家的新年計劃
    如果你看到這篇文章的題目開始閱讀本文,那麼一定是數據科學激起了你的興趣。你肯定希望2016年成為你的轉運年,對不對?如果你從今天起堅持去執行這些新年計劃,轉運的可能性就會更大。要知道,成為一名數據科學家不能一蹴而就,需要的是一個過程。因此,朝目標邁進的過程中一定要充滿耐心。根據發展階段的不同,我在此給大家分享一些每個數據科學家都應該做的新年計劃。
  • 如何成為一名合格的數據分析師,數據分析師需要哪些技能?
    隨著大數據時代的到來, 企業對數據分析師崗位的需求量也是越來越大。但是如何才能成為一名合格的數據分析師,為企業創造更好的價值,是一名數據分析師時刻反省的核心問題。當然還有部分即將就業、剛入行久、轉行加入數據分析領域的群體,對如何成為一名合格的數據分析師,數據分析師需要哪些技能還存在諸多疑惑,那麼今天們就一起探討一下。1、 理論基礎篇作為一名合格的數據分析師,你需要有應用數學、統計學、數量經濟學專業數學知識背景。
  • 數據科學家vs數據分析師,到底有啥區別?
    有人會說,要成為一名數據科學家,要先從數據分析的工作做起。作者在兩個領域都待過,本文旨在闡明成為數據科學家和數據分析師到底意味著什麼。一起來看看~ 之前我是數據分析師的時候,我想繼續深造成為一名數據科學家,我意識到兩者有很大不同。
  • 你想成為數據科學家嗎?不要把機器學習當成入門第一課
    所以當我尋找學習數據科學的切入點時,也受其影響。這是我犯過的最大錯誤,也是本文重點:如果想要成為一名數據科學家,請不要從機器學習開始。顯然,要成為一名「真正全能」的數據科學家,最終必須掌握機器學習的概念。但你會驚訝於沒有它你能走多遠。為什麼不從機器學習開始呢?
  • 成為偉大的數據科學家需要掌握的基本數學
    現代數據科學的幾乎所有技術,包括機器學習,都有深厚的數學基礎。毫無疑問,想要成為一個頂級的數據科學家,需要在各個方面都具有優勢如編程能力、一定的商業智慧、以及獨特的分析能力等。但了解「引擎蓋下的機械原理」總是有好處的。對算法背後的數學機制有一個深入的理解,將使你在同行中具有優勢。
  • 如何自學成為數據科學家或AI工程師?你需要攻克這九點
    熟練掌握一種程式語言數據科學家、人工智慧和機器學習工程師使用的語言多種多樣,其中最常用的語言是 Python、R、Java、Julia 和 SQL。v=r-uOLxNrNk8學會如何獲取數據數據通常不會直接送到你手裡,有時根本就沒有現成的數據,但無論如何,你必須找到一種方法來獲得能使用的數據。你工作的地方可能有一不錯的數據收集系統,如果這樣那你就可以省心了。
  • 身為一名數據科學家「過來人」,我為什麼更建議你去做軟體工程師
    數據科學的價值雖然有目共睹,但不是每個公司都有條件來實現數據驅動的商業願景,每個公司的數據基礎設施水平層次不齊,有些遠達不到數據科學家可以大展拳腳的水平。  作為前數據科學家和現軟體工程師,作者給出了過來人的建議。讓我們聽聽他為什麼勸想做數據科學家的勇士不如去做軟體工程師。  當有人問我如何進入數據科學領域時,我建議他們去做程式設計師。  這只是我的個人觀點。
  • 成為數據科學家、人工智慧和機器學習工程師的自學之路
    v=zOjov-2OZ0E熟練使用一種程式語言如今,數據科學家,人工智慧和機器學習工程師使用多種語言來完成工作,其中最常用的語言是Python,R,Java,Julia和SQL。否則,你必須找到一種獲取數據的方法,不僅可以獲取任何數據,還能獲取可以用來實現目標的高質量數據。獲取數據並不直接意味著挖掘數據,它是數據挖掘下的一個過程。你可以在網際網路上的許多地方獲得免費和開源的數據,有時你可能不得不從網站上抓取數據。網絡抓取非常重要,我懇請每個人都學習它,因為在你作為數據科學家,人工智慧或機器學習工程師的職業生涯中可能會需要它。這是有關網絡抓取的好教程。
  • 2011中考英語作文範文:我想成為一名科學家
    新東方網>英語>英語學習>英語寫作>中小學英語作文>正文2011中考英語作文範文:我想成為一名科學家 2011-10-18 09:07 來源:幫考網 作者:
  • 作為一名數據科學家,必須要會使用SQL嗎?
    作為一名數據科學家,你使用什麼方法?你還有其它方法嗎?數據科學家必須要會使用SQL嗎?本文將討論SQL在數據科學中的作用,以及結構化查詢語言(SQL)的替代方法。SQL是否需要了解SQL具體取決於個人所屬公司和數據科學團隊。
  • 開發者和IT人士成為數據科學家的學習路線
    在閱讀完之後,你們會對轉行數據分析所需要做的準備有個清晰的認識。IT從業者通常熟悉代碼,經常和資料庫打交道以及使用各種框架。在成為一名開發者的幾年後,你會了解一些開發語言:Java、ASP.net、Javascript、C++、C、HTML、Python、PHP;同時你也會用到多種資料庫:SQL, MongoDb, Oracle 等等。
  • 自學轉型成為數據科學家必須明白的10件事
    圖靈TOPIA來源:towardsdatascience編譯:劉靜圖靈聯邦編輯部出品如何成為一名數據科學家數據科學家的學習成長路徑是怎樣的?要學習數據科學,我需要學習哪些課程?這是大多數想轉型成為數據科學家的自學者最關心的三個問題。
  • 在未來,留學生如何成為一名大數據工程師,你需要會什麼技能?
    這群人在國外被叫做數據科學家(Data Scientist),這個頭銜最早由D.J.Pati和Jeff Hammerbacher於2008年提出,他們後來分別成為了領英(LinkedIn)和Facebook數據科學團隊的負責人。
  • 蹩腳數據科學家的10種現象
    優秀的數學家可以成為頂尖的數據科學家,但光是會在筆記本上寫公式可不行,他們還必須熟練地運用計算機來處理數據。如果他們的所有經驗都來自學術機構,當他們面對現實問題時,可能會束手無策。許多計算機專家和程式設計師都會把自己說成是數據科學家,但實際上,真正出色的數據科學家通常擁有數學背景。優秀的數學家可以成為最好的數據科學家,但數學不好的程式設計師不行。
  • 數據科學家的八大關鍵技能
    那麼,成為真正的數據學家(DS)需要具備怎樣的技能呢?1. 統計學知識:這不僅僅是了解統計數據而已,還要了解模型和方法論,以及如何最好地運用它們。一個統計學家,需要具有出色的分析能力,掌握豐富的數據分析工具,比如R,Python等。2.
  • 銳眼洞察|2018年,成為數據科學家需要哪些技能?(翻譯)
    據Glassdoor,數據科學家是2017年美國的頭號職業。這並不意外,因為這一領域的中位基本工資達到了12萬3千美元。但數據科學家的就業市場遠不飽和,僅在美國就有19萬的人才空缺。如果你在考慮轉換跑道成為數據科學家,2018年提供了充足的機會。這篇文章旨在幫助梳理如何在2018年成為數據科學家。