|
作者:羅賓
羅賓,世界500強全球化IT項目中國區(qū)負(fù)責(zé)人,服務(wù)于快速消費品、零售行業(yè)十余年。某領(lǐng)先BI公司大中華區(qū)高級顧問,豐富的BI行業(yè)知識以及BI項目咨詢、管理和實施經(jīng)驗。 博客專欄: https://ask./blog/luobin

這張完美的圖,囤了好久了,今天拿出來,仔細(xì)研讀一下,分享給大家。
先把全文整體瀏覽一遍……,主要是走這8步: 學(xué)好統(tǒng)計、數(shù)學(xué)和機器學(xué)習(xí) 學(xué)會編程 理解數(shù)據(jù)庫 探索數(shù)據(jù)科學(xué)工作流 提升到大數(shù)據(jù)層面 成長、交流和學(xué)習(xí) 全身心投入工作 混社會(社區(qū)和論壇)
好了,先來熱個身,什么是數(shù)據(jù)科學(xué)(家)? 
2010的解讀和2015的還不太一樣,2010認(rèn)為是“數(shù)學(xué)好,業(yè)務(wù)精,技術(shù)強”,也就是說: 理論基礎(chǔ)要扎實——數(shù)學(xué)和統(tǒng)計學(xué)要掌握的好 豐富的行業(yè)知識——對所在的業(yè)務(wù)領(lǐng)域、行業(yè)知識要精通 技術(shù)牛人或大神——裝的了機,調(diào)的通網(wǎng),寫的了代碼,玩的轉(zhuǎn)數(shù)據(jù)……
以上是修成正果的節(jié)奏,要是跑偏了呢,一般會這樣:
數(shù)學(xué)不太好——很危險!沒有嚴(yán)謹(jǐn)?shù)姆椒ㄕ摚ɡ碚撘罁?jù)),就有可能在瞎折騰; 業(yè)務(wù)不太熟——運用不到工業(yè)界(企業(yè)),就只會是個紙上談兵的理論家; 技術(shù)不太強——沒有現(xiàn)代IT技術(shù)的武裝,就只會是個搞傳統(tǒng)研究的老專家;
下面這張圖,很好的解釋了這些細(xì)節(jié): 
但是2015這張圖,又是幾個意思呢? 人工智能包含機器學(xué)習(xí),機器學(xué)習(xí)又包含了深度學(xué)習(xí);大數(shù)據(jù)領(lǐng)域跟三者都有交叉,但又是另外一個全新的領(lǐng)域。 數(shù)據(jù)挖掘(Data Mining),是AI人工智能和Big Data都會涉及到的領(lǐng)域,主要就是那些基礎(chǔ)算法,預(yù)測、分類、聚類、關(guān)聯(lián)等。 數(shù)據(jù)科學(xué),就在此應(yīng)運而生,跟AI和Big Data都有交叉,但不涉及深度學(xué)習(xí)。
太混亂了,一句話解釋:數(shù)據(jù)科學(xué)(家)就是人工智能、機器學(xué)習(xí)和大數(shù)據(jù)領(lǐng)域的復(fù)合型學(xué)科(人才) 再來看看需要什么樣的學(xué)歷背景: 
一句話概括:技校就行,本科不錯,碩士最好,博士當(dāng)然可以,但人不多(總?cè)祟^就不多) 下面那句名言,說數(shù)據(jù)科學(xué)家基本就是這種人:你跟他談技術(shù),他和你談業(yè)務(wù);你要談業(yè)務(wù),他就搬理論……想不到,你是這樣的數(shù)據(jù)科學(xué)家。 小結(jié)一下,數(shù)據(jù)科學(xué)家就是復(fù)合型人才,差不多智商的都可以上。但是,以我敏銳的洞察和經(jīng)驗,注意到這是DataCamp做的宣傳圖,它會把這事描述的相對容易,門檻低嘛大家都有興趣來學(xué),這樣的圖,其實也是軟文的一種(老外的軟文)。下圖是DataCamp的首頁,主要是提供在線的、收費的數(shù)據(jù)科學(xué)課程的 
好,我們把書翻到第1頁,先來看第1步——學(xué)好統(tǒng)計、數(shù)學(xué)和機器學(xué)習(xí)(走遍天下都不怕) 
首先,關(guān)于數(shù)學(xué),有一些非常好的資源可以利用:
可汗學(xué)院 官網(wǎng)是https://www. 網(wǎng)易公開課(可汗學(xué)院)也有部分翻譯過的課程 麻省理工學(xué)院MIT的OCW https://ocw./index.htm
其次,關(guān)于統(tǒng)計學(xué): 優(yōu)達(dá)學(xué)城的統(tǒng)計學(xué)入門(Intro to Statistics) https://cn./ OpenIntro的Statistics https://www./ DataCamp自己也有幾門課程
最后,關(guān)于機器學(xué)習(xí) 斯坦福在線的ML課程,應(yīng)該就是大大牛Andrew Ng的課程 Coursera的practical machine learning 這里搜一下就有:https://www./ 約翰霍普金斯大學(xué)的課程 DataCamp自己也有幾門課程
好了,發(fā)散一下思路,現(xiàn)在好的課程,在網(wǎng)上已經(jīng)是鋪天蓋地了,只要你有本事,想學(xué)什么都可以。所以,現(xiàn)在擠破頭的學(xué)區(qū)房,10年以后可能會是個大笑話;當(dāng)然,擠進(jìn)名校,還有提升圈子、階層的作用,這樣看,又不好笑了…… 翻到第2頁,再來看第2步——學(xué)會編程 
想起一個說法,說以后編程可能會是像英語一樣的,每個人的最基礎(chǔ)的技能了,所以,程序員可以先偷著樂一下。 首先你要具備一些計算機科學(xué)的基礎(chǔ)知識 然后嘗試一些基礎(chǔ)性的開發(fā)工作 再選定一門好的(或你喜歡的)編程語言 開源的R和Python(當(dāng)前最火) 商業(yè)工具:SAS, SPSS 等等 交互式的去學(xué)吧!就是學(xué)習(xí)、練習(xí)、交流、實踐、思考,反復(fù)學(xué)習(xí),刻意練習(xí)。(DataCamp剛才還很含蓄,現(xiàn)在憋不住要推自己的課程了……)
好,再來看第3步——理解數(shù)據(jù)庫 
既然要跟數(shù)據(jù)打交道,那么對數(shù)據(jù)存放和管理的地方——數(shù)據(jù)庫的深刻理解,一定必不可少:
MySQL:經(jīng)典的關(guān)系型數(shù)據(jù)庫,開源,體積小,速度快,成本低;中小型網(wǎng)站或企業(yè)開發(fā)之必備;同Linux,Apache,PHP形成最高效、經(jīng)典的開發(fā)環(huán)境LAMP Oracle:領(lǐng)先的企業(yè)級數(shù)據(jù)庫,高效率,功能強大,可移植性好,高可靠性,高吞吐量 Cassandra:高可用性和高可擴展性的NoSQL數(shù)據(jù)庫(屬于列式存儲),支持大規(guī)模分布式數(shù)據(jù)存儲和高并發(fā)數(shù)據(jù)訪問 CouchDB:一個Erlang語言開發(fā)的Apache的頂級開源項目,是一個面向文檔的NoSQL數(shù)據(jù)庫 PostgreSQL:加州大學(xué)伯克利分校研發(fā)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS) MongoDB:也是一個面向文檔的NoSQL數(shù)據(jù)庫,非關(guān)系數(shù)據(jù)庫中最像關(guān)系數(shù)據(jù)庫的,對數(shù)據(jù)結(jié)構(gòu)要求不嚴(yán)格
需要對數(shù)據(jù)庫加深理解的,可以移步至: MongoDB University https://university./
斯坦福在線(又來了) Introduction to Database Datastax https://www./
TutorialsPoint http://www./
好,再來看第4步——探索數(shù)據(jù)科學(xué)工作流 
此處,對于數(shù)據(jù)科學(xué)家的日常,我們又分為6小步走: 數(shù)據(jù)收集 運用各種方法(復(fù)制、導(dǎo)出,爬蟲等),將原始數(shù)據(jù)收集起來,存儲到一個地方(文本文件,Excel,數(shù)據(jù)庫等)。 數(shù)據(jù)探索 使用一些基本的數(shù)據(jù)可視化工具,對數(shù)據(jù)做一個初步探查,看看大致的狀況和數(shù)據(jù)分布情況。 數(shù)據(jù)清理 對重復(fù)數(shù)據(jù),錯誤數(shù)據(jù)進(jìn)行處理;對數(shù)據(jù)格式、規(guī)范進(jìn)行統(tǒng)一;對部分?jǐn)?shù)據(jù)進(jìn)行分拆或者合并。 數(shù)據(jù)建模 根據(jù)需要求解的問題,選用合適的數(shù)據(jù)模型進(jìn)行建模,并輸出數(shù)據(jù)分析的結(jié)果。 數(shù)據(jù)驗證 選用合適的統(tǒng)計分析工具,對數(shù)據(jù)分析輸出的結(jié)果進(jìn)行驗證,確認(rèn)分析結(jié)果在合理的誤差范圍或精度要求之內(nèi)。 制作報告 將數(shù)據(jù)分析的結(jié)果和由此得出的結(jié)論,結(jié)合業(yè)務(wù)實際,制作出合理的數(shù)據(jù)分析報告。
這里,需要了解幾個通俗的說法: 程序——幾行代碼,完成一個輸入到輸出的函數(shù),或者過程,我們叫程序。 程序包(或者庫)——預(yù)先寫好的,通用的,規(guī)范的一堆程序文件,可以在我們的程序里調(diào)用。 工具(開發(fā)環(huán)境,IDE,軟件)——通常是圖形化界面下的,可以進(jìn)行程序開發(fā)的一整套工具(軟件)。
那么,對于以上6個步驟,就可以簡單的解釋了: 數(shù)據(jù)收集 Python:可以調(diào)用Numpy和Pandas等科學(xué)計算的“庫”來做 R語言:可以調(diào)用readxl, data.table等“庫”來做 數(shù)據(jù)探索 Python:可以調(diào)用Bokeh或Matplotlib等數(shù)據(jù)可視化“庫”來做 R語言:可以調(diào)用ggvis, ggplot2等“庫”來做 其它:可以使用可視化軟件vega來實現(xiàn) 數(shù)據(jù)清理 Python:可以調(diào)用Pandas等“庫”來做 R語言:可以調(diào)用dplyr, data.table等“庫”來做 其它:可以使用數(shù)據(jù)清理和轉(zhuǎn)化軟件Data Wrangler來實現(xiàn) 數(shù)據(jù)建模 Python:可以使用開源機器學(xué)習(xí)框架Scikit-learn來做 R語言:可以調(diào)用caret這個機器學(xué)習(xí)“包”來做 其它:可以使用數(shù)據(jù)挖掘工具rapidminer來實現(xiàn) 數(shù)據(jù)驗證 Python:可以調(diào)用statsmodels庫來做 R語言:可以調(diào)用statmod庫來做 其它:可以使用開源數(shù)據(jù)挖掘軟件KNIME來實現(xiàn) 制作報告 Python:可以使用Jupyter工具來實現(xiàn) R語言:可以使用R Studio自帶的R Markdown來實現(xiàn) 其它:可以使用商業(yè)化BI軟件Tableau, Spotfire等來實現(xiàn)
不錯,已經(jīng)走完一半了,接下來,我們走第5步——提升到大數(shù)據(jù)層面 
首先,我們來理解,所謂的“大數(shù)據(jù)”到底比“小數(shù)據(jù)”,大在哪里? 流行的說法有4V和3V之說,其中3個V是指: Velocity——更快的數(shù)據(jù)產(chǎn)生速度。主要歸因于進(jìn)入新的數(shù)據(jù)時代(比如從PC時代-->互聯(lián)網(wǎng)-->移動互聯(lián)網(wǎng)-->物聯(lián)網(wǎng)),數(shù)據(jù)產(chǎn)生速度的量級開始猛增 Volume——更大、更多的數(shù)據(jù)量。數(shù)據(jù)產(chǎn)生快了,量自然就多了 Variety——更多樣的數(shù)據(jù)種類。除了以前的結(jié)構(gòu)化數(shù)據(jù),還有文本、文檔;圖片、圖像;音頻、視頻;XML、HTML等等大量的非結(jié)構(gòu)化數(shù)據(jù)
4V就是在此基礎(chǔ)上增加了一個Value,數(shù)據(jù)的價值。 其次,我們來看看最經(jīng)典的大數(shù)據(jù)框架——Hadoop,曾經(jīng)這個以“黃色小象”為logo的hadoop,就幾乎是大數(shù)據(jù)的代名詞。簡單理解hadoop,它就是一個分布式的大數(shù)據(jù)系統(tǒng)基礎(chǔ)架構(gòu): 因為數(shù)據(jù)“大”了,一臺服務(wù)器(單機)處理不過來了,所以需要團結(jié)一個個的服務(wù)器(集群),來協(xié)同處理;或者說,把一個大的數(shù)據(jù)任務(wù),分解出來,處理完成,再合并起來。Hadoop就把這個分布式系統(tǒng)的框架,搭好了。 計算機的兩個重要組成部分,處理器CPU負(fù)責(zé)計算,內(nèi)存(硬盤)負(fù)責(zé)存儲,所以,對應(yīng)的,MapReduce就是Hadoop的分布式計算框架;HDFS就是Hadoop的分布式文件存儲系統(tǒng)。
最后,關(guān)于Spark,業(yè)界其實一直流傳著Hadoop是一個大坑的說法,實施起來并沒有傳說中那么好,(當(dāng)然也造就了一大批hadoop填坑的工作崗位)。主要問題在于MapReduce,計算引擎這塊,Spark算是第二代引擎,對大數(shù)據(jù)計算時的中間輸出結(jié)果,使用內(nèi)存計算進(jìn)行了優(yōu)化,大大提升了數(shù)據(jù)處理速度(號稱提升了100倍),所以可用于大規(guī)模的實時數(shù)據(jù)流處理和交互式分析。 接下來,我們再來看第6步——成長、交流和學(xué)習(xí) 
學(xué)了這么多,也該出來練練手了: 參加一些數(shù)據(jù)挖掘或算法挑戰(zhàn)競賽 最著名的是Kaggle,國內(nèi)有阿里的天池。將所學(xué)的技能,去解決工業(yè)界(企業(yè))遇到的實際問題,并獲取一定的獎金,何樂而不為? 結(jié)交各路豪杰(現(xiàn)在叫大牛/大神) 一個人學(xué)容易閉門造車,或者一個問題卡死在哪里,無從下手。多認(rèn)識一些志同道合的朋友,可以增長見識,開拓思路,學(xué)習(xí)進(jìn)度也可以大大提升。 參與一些實際項目(積累項目經(jīng)驗) 跟幾個人創(chuàng)建一個合作小團隊,實打?qū)嵉娜ネ瓿梢粋€實際的小項目,會在很大程度上提升你的個人資歷和背景,實踐出真知。 提升你的直覺(心理表征) 反復(fù)的學(xué)習(xí)、演練、實踐、再學(xué)習(xí),便可以讓個人知識、技能和經(jīng)驗不斷螺旋式上升,慢慢的,以前棘手的問題,已經(jīng)可以下意識的給出結(jié)論或者解決辦法,就像可以完全依靠直覺來處理一樣,其實,這就是刻意練習(xí)所強化出來的心理表征的作用。
下面看第7步——全身心投入工作 
演練完了,就找一份全職的工作吧,可以從實習(xí)生做起,一路打怪升級,做到真正的數(shù)據(jù)科學(xué)家。你的實踐經(jīng)驗也會在這個過程中,繼續(xù)得到更大的提升。
另外,類似Kaggle這樣的平臺,也提供數(shù)據(jù)科學(xué)家的工作招聘,你可以把競賽的成績直接顯示到你的簡歷里。能力如果足夠出色,薪水從來不是問題。 居然要寫完了……來看最后一步,天龍8步——混社會(社區(qū)和論壇) 
工作也有了,收入也杠杠的,那么……好山好水好無聊啊,總得找點事情做做,那就去混社會吧(當(dāng)然是數(shù)據(jù)科學(xué)家的社會),有好多種操作方式:
時刻關(guān)注行業(yè)或領(lǐng)域最新資訊,保證不落伍,談資滿滿。 不能一味索取,也要貢獻(xiàn)一些產(chǎn)出,知識經(jīng)驗分享,代碼共享,思路分享……不一而足。
|