怎樣成為數據科學家 - 來自資深從業者的經驗

本文來自數問社區偏統計方向的分析師。文章提供了一條非常好且全面的入門途徑。這裡將學習方向和方法介紹給大家,希望對大家有幫助。

從事Data Analytics或Data Science需要具備以下技能:

Programming (Hack)

這個方面比較廣泛,並不是純粹指編程技能,要不然對於非CS的同學會覺得遙不可及。幾個點說一下:

1. Linux, Bash, 後台相關的命令

一個成熟的數據從業者應該懂得靈活的運用數據尋找,獲取,安裝,Debug,分享,團隊合作,Linux是知名的開源系統,在這個系統下環境的配置將變得非常容易和透明。各種包的安裝也會事半功倍,建議是用虛擬機建一個Ubuntu系統來處理自己的數據,再利用pip,conda,git等命令來安裝包,鏈接github,clone優秀的案例並push自己的發現。這裡推薦兩個學習資源,當然你也可以參考網上的各種博客和官方教程。

Linux:

linkedin.com/learning/l

Github:

linkedin.com/learning/l

2. SQL和資料庫相關的技能

資料庫是另外一個比較重要的部分,想像一下你不可能一直使用Excel去處理數據,畢竟超過十萬行的數據用Excel就比較吃力了。這個時候SQL就是必須要用的,可以說這個是一個核心技能。有的人可能會說SQL非常簡單,但是當你實際應用的時候你會發現你在學校學的那些簡單Query完全就跟不上需求了。下面說一些基本的Query,大家看看掌握的情況:

    • where, group by, order by, having, like, count, sum, min, max, distinct, if, join, left join, limit, and, or, cast, row_number, substr, convert, contact

除了基本的SQL,這裡我指相關的relational資料庫(MySQL, PostgreSQ等),如果你想分析一些unstructured的數據,比如文字或者image等等,你可以學習一下NoSQL,本人只用過MongoDB和Cassandra,也是主流的兩個資料庫。感興趣的可以自己學習一下,這裡我覺得兩個學習資源不錯,一個是codecademy的課程,可以互動式的學習SQL的code,一個是老牌的w3schools的SQL教程,非常的全面。另外MongoDB有自己的線上University,大家有興趣也可以關注一下。

codecademy:

codecademy.com/learn/le

w3schools:

w3schools.com/sql

MongoDB Univeristy:

https://university.mongodb.com

3. Python/R語言

是否具備code的能力是數據分析的一個分水嶺,senior的數據分析師會至少精通一種數據分析語言,並且如果想做數據挖掘,網路爬蟲,交互可視化等等都是需要一定的代碼處理和理解能力的。這裡主要說Python和R,兩者在數據分析領域可以說是各有千秋。

先說一下Python,就我理解Python是一種萬能的語言,適用性非常強,除了數據分析還能夠做很多的事情,比如編寫程序,網站開發,深度學習等等。如果你決定使用Python,那麼你需要了解的點主要是各種包的搜索和調用,函數的編寫和嵌套,數據類型的把握(list, tuple, series, dict),條件判斷,循環迭代等等。最好的開發環境我推薦Anaconda。

其次說一下R,它是一個統計學家編寫的語言,所以對於各類統計函數的調用,繪圖,模型驗證,R有著先天的優勢。很多參數都可以通過summary直接導出,有的時候在做模型選擇優化的時候會覺得得心應手。如果你在使用R,那麼了解數據結構(matrix, array, data.frame, list),數據讀取,畫圖(ggplot2),統計函數(mean, median, sd, var, scale)等就是你的重點了解方向。開發環境建議使用Rstudio。

當然除了我上述的很多功能,兩種語言都非常強大,從小的數學計算到大型的deep learning模型,都可以實現。只是兩者有明顯的使用習慣的區別,建議初學者先選擇一種入手,等熟悉之後再雙管齊下,最後做到靈活的運用不同的語言到不同的project中去。

現在說一下素材推薦,其實這兩種語言最好都是結合我後面將要說的統計知識來一起學習,這樣可以更加深入的理解代碼和實際問題之間的關係。當然,這裡先介紹一下我認為不錯的素材,後面說統計方面的時候會更深入的推薦一下。我們上面說了很多線上課程,這裡我想先說一下書,個人比較喜歡看書LOL。第一本推薦學習python的寶典:ORELLY的《Learning Python》,相當全面,但是也很厚。另外兩本《Python Cookbook》和《Python for Data Analysis》也是重點推薦的。我個人的方法是,分析主要看《Python for Data Analysis》,數據結構看《Python Codebook》,《Learning Python》作為你的字典一樣的存在,所有的問題都可以回去找。這樣一個組合可以讓你在學習Python和數據分析過程中事半功倍。

《Learning Python》:

shop.oreilly.com/produc

《Python Codebook》:

shop.oreilly.com/produc

《Python for Data Analysis》:

shop.oreilly.com/produc

除了上述書籍我在說一下線上課程,首先是codecademy和DataCamp都有互動式的課程可以讓你瞬間上手編程,其次LinkednIn Learning也有相關的Essential Training課程,如果你已經有了LinkedIn的Premium,那麼這些課程都是免費的,學習之後還可以獲得LinkedIn的certificate,對於找工作來說是非常棒的。除了上述的當然還有Coursera,Udemy, Udacity和edX,大家可以根據自己的感覺來學習,當然還是要注意自己的學習成本,不要貪多不厭。

codecademy:

codecademy.com/learn/le

DataCamp:

datacamp.com/courses/te

LinkedIn:

linkedin.com/learning/p

edX:

edx.org/course/analytic

Ok, Python的素材就先說到這裡,後面的統計和機器學習部分還會介紹一些python相關的教程。下面我們來說一下R,首先不得不提的就是非常著名的《R in action》一書,它可以算是R語言大數據的101教材了。如果你沒有任何編程背景,那麼通過這本書入門的時候可以搭配R CRAN的官方文檔和數問dataquestion等線上問題集。不管怎麼說,我覺得這是一本入門R語言分析的好書。其實還有一本R與統計相關的實戰書,我放在後面推薦給大家。線上教程方面就更多了,還是首推DataCamp的互動式課程,然後其他的主流MOOC上也有很多,大家自己可以根據之前介紹python的網址自行搜索。

《R in action》:

kek.ksu.ru/eos/DataMini

DataCamp:

datacamp.com/courses/fr

Statistics(Foundation)

Ok,總算寫完了Programming的部分,感覺還是有很多沒有涉及到,但是這個話題就是非常複雜的,有的時候code參雜著統計,統計擦雜著machine learning,還有visualization和各種domain信息的亂入,導致想分的特別細去介紹數據科學是非常的困難。但是我還是希望用這種邏輯讓你明白,這是一個複合型的事業,你想要走的更遠就必須不斷的學習,讓我們一起努力吧,我會在後面的部分盡量補充好相關的教材推薦。

統計部分是我最喜歡的部分,因為我認為這一塊是你做數據分析的基礎,所以大家不要小瞧統計哦!從最簡單的均值,中位數,標準差,方差,概率,假設檢驗,顯著性,抽樣等概念到比較深入的模型構建,參數選擇,虛擬量化,dummy變數,時間序列,forecasting等,你需要有統計來幫你去得到相應的選擇。上文說的代碼,編程語言將會是你的工具,而統計將會是你的主導思想。你需要將這種思想結合到你的domain知識里,然後才能夠解決相應的project。

就個人經驗推薦一些書籍和課程,第一本叫做《Naked Statistics》,這是我最喜歡的統計入門書,作者的語言相當的生動,利用自己學習統計的經歷來闡述一些複雜的問題,由於語言比較通俗易懂,所以很多書中的例子可以用在日後工作中來給非統計背景的人來舉例,非常的有用。第二本是我最推薦的進階書,不僅僅只是統計,包括machine learning我也推薦這本,叫做《The Element of Statistical Learning》,結構相當的完整而且前瞻性非常強。主要是用R語言做了很多模型和演算法,我覺得這是很關鍵的。有的時候我們總是覺得導入了幾個庫用了幾個包,什麼模型啊機器學習啊都做的出來,可是當你帶入數據發現結果往往都不好。但是如果你透徹地理解了模型和演算法本身,你再去調整模型的時候效果往往會好很多。

另外Freedman的經典中的經典《Statistics》永遠是所有喜歡統計的人的必讀書目之一。《A Introduction to Statistical Learning with Applications in R》也是一本實戰的書籍,系統的講解了如何利用R語言來解決市場調研中的數據問題,相信對於從事市場方向的同學有一定的幫助。《Regression Analysis by Example》也是一本非常不錯的講解回歸模型的書,裡面詳細介紹了做回歸模型需要的相關知識,比如transformation of variables, weighted least squares, correlated errors, collinear data, variable selection, logistic regression, GLM, PRM, robust regression等。由於可能回歸是我們最常用的統計模型,所以這本書也是強烈建議細讀的。

《Naked Statistics》:

amazon.com/Naked-Statis

《The Element of Statistical Learning》:

web.stanford.edu/~hasti

《A Introduction to Statistical Learning with Applications in R》:

www-bcf.usc.edu/~gareth First Printing.pdf

《Regression Analysis by Example》:

amazon.com/Regression-A

《Reading and Understanding Multivariate Statistics》:

amazon.com/Reading-Unde

《Reading and Understanding More Multivariate Statistics》:

amazon.com/Reading-Unde

除了這些書籍之外,還有一些網路課程在這裡推薦給大家。edX的ColumbiaX系列裡面又統計和機器學習相關的tracking,叫做Statistical Thinking for Data Science and Analytics,我覺得是一個不錯的選擇,但是需要耐下心來看。另外還有更全面的一個是Penn State University的網路課程,它其實是一個online的applied statistics degree,但是所有的教材都是公開的,我個人是從中學到了非常多的知識。

edX:

courses.edx.org/courses

Penn State University:

onlinecourses.science.psu.edu

Machine Learning (Data Science)

說完了programming和statistics,現在來說一下machine learning。我上文提到的《The Element of Statistical Learning》在這裡我再提一遍,因為其內容也涉及了很多machine learning的部分,是一本綜合性很好的書。三位作者,Trevor,Robert和Jerome也是Stanford的大牛。對於線上課程我推薦Coursera上Andrew的machine learning課程作為入門,因為吳恩達的風格就是通過精挑細選的課程,長短合適的視屏與精準設置的信息塊共同呈現,讓你從最基本的理論來了解機器學習。他的新課deep learning也在上周在Coursera上線了,以神經網路原理為主要課程體系,不僅講了很多machine learning中遺漏的信息,還能讓你學會構建複雜神經網路的所有核心知識。除了吳恩達,Coursera上還有一門叫做Applied Data Science with Python的課程,來自於University of Michigan,大家也知道這又是一統計強校,其內容從實踐的角度上來告訴你如何使用python來進行machine learning,text mining等,其內容都使用線上jupyter notebook,讓你的學習效率更佳。當你學習到以上一些內容了之後,估計你已經對機器學習的基本演算法有了一定的了解,但是可能沒有一種大局觀,對實際問題和數據insight上的把握可能有待提高,這裡我推薦一本中文書,是李航老師的《統計學習方法》,其中深入淺出的介紹了很多機器學習的概念,作為系統地把握machine learning的大局觀有很大的幫助。

Coursera-Machine Learning:

coursera.org/learn/mach

Coursera-Deep Learning:

https://www.coursera.org/specializations/deep-learning

Coursera-Applied Data Science with Python:

coursera.org/specializa

《統計學習方法》:

goo.gl/wt5V9K

由於樓上已經介紹了Udacity的課程,個人認為也是非常有幫助的,大家可以根據自己的需要來選擇。

Visualization

最後一個點簡單的提一下,畫圖可以由簡單的Excel Chart到非常複雜的D3.js互動式動態配置,可以說是一個非常不一樣的tracking,個人建議如果是focus在分析方面的小夥伴可以不需要投入過多的精力,因為這個東西學習成本太大了,你只需要會用python的matplotlib,seaborn,R的ggplot2,還有現在比較流行的plotly,tableau什麼的就夠了。如果想進階的去學習visualization的話,那你就得專攻一下java之類的去寫D3和reactjs之類的了。這裡介紹一個權威的網站和我認識的一個大牛的作品(給Google做的)供大家參考。

ThePudding:

pudding.cool/

An Interactive Visualization of Every Line in Hamilton:

pudding.cool/2017/03/ha

總結,上述了四個方面,希望對大家有所幫助,如果四個方面你都有所涉獵,那麼未來還有很多的tracking在等著你,比如大數據spark,Hadoop等計算框架,比如圖像處理,深度學習,再比如NLP自然語言處理,語音識別等。如果大家對這些領域也有興趣,我們可以一起來探討一下,希望大家都能夠不斷學習,共同進步。

以上資源轉自數問-數據科學家社區

原文鏈接:[置頂]【求職轉行】想往數據分析,偏statistic方向轉行,有什麼推薦的MOOC課程和平台呢? - Data Question 數問


推薦閱讀:

R語言實戰 第三章 圖形初階-知識點
神策2017數據驅動大會傳遞了哪些前沿認知?
數據分析/數據挖掘/機器學習---- 必讀書目
R Markdown與RStudio IDE深度結合
Zynga數據分析全盛期

TAG:数据科学 | 大数据 | 数据分析 |