怎樣進行大數據的入門級學習?

請問有什麼好的方式、材料、心得等?


我在去年年底的時候曾應一位前輩的要求,寫了一個學習「數據科學:從入門到進階」的經驗貼,我就直接把它貼在下面了。雖然題主問的是大數據的入門,但在我看來「大數據」就是數據科學的一個高階狀態。以下內容中除個別情況,我基本上都會使用「數據科學」這個概念。

---------------------------------正 文-----------------------------------

數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分散式計算,雲計算,信息可視化等技術或方法來對付數據。但從狹義上來看,我認為數據科學就是解決三個問題:
1. data pre-processing;
2. data interpretation;
3.data modeling and analysis.
這也就是我們做數據工作的三個大步驟:
1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;
2、我們想看看數據「長什麼樣」,有什麼特點和規律;
3、按照自己的需要,比如要對數據貼標籤分類,或者預測,或者想要從大量複雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。
這三個步驟未必嚴謹,每個大步驟下面可能依問題的不同也會有不同的小步驟,但按我這幾年的經驗來看,按照這個大思路走,數據一般不會做跑偏。

這樣看來,數據科學其實就是門複合型的技術,既然是技術就從編程語言談起吧,為了簡練,只說說R和Python。但既然是薦數據科學方面的書,我這裡就不提R/Python編程基礎之類的書了,直接上跟數據科學相關的。

  • R programming

如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:

R in action:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料,如官方發布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的問題集(Newest "r" Questions),遇到複雜的問題可在上面搜索,總會找到解決方案的。這樣一來,用這本書拿來入門學習也問題不大。而且這本書作者寫得也比較輕鬆,緊貼實戰。

Data analysis and graphics using R:使用R語言做數據分析的入門書。這本書的特點也是緊貼實戰,沒有過多地講解統計學理論,所以喜歡通過情境應用來學習的人應該會喜歡這本入門書。而且這本書可讀性比較強,也就是說哪怕你手頭沒電腦寫不了代碼,有事沒事拿出這本書翻一翻,也能讀得進去。

但如果你先用R來從事實實在在的數據工作,那麼上面兩本恐怕不夠,還需要這些:

Modern applied statistics with S:這本書里統計學的理論就講得比較多了,好處就是你可以用一本書既複習了統計學,又學了R語言。(S/Splus和R的關係就類似於Unix和Linux,所以用S教程學習R,一點問題都沒有)

Data manipulation with R:這本書實務性很強,它教給你怎麼從不同格式的原始數據文件里讀取、清洗、轉換、整合成高質量的數據。當然和任何一本注重實戰的書一樣,本書也有豐富的真實數據或模擬數據供你練習。對於真正從事數據處理工作的人來說,這本書的內容非常重要,因為對於任何研究,一項熟練的數據預處理技能可以幫你節省大量的時間和精力。否則,你的研究總是要等待你的數據。

R Graphics Cookbook:想用R做可視化,就用這本書吧。150多個recipes,足以幫你應付絕大多數類型的數據。以我現在極業餘的可視化操作水平來看,R是最容易做出最漂亮的圖表的工具了。

An introduction to statistical learning with application in R:這本書算是著名的the element of statistical learning的姊妹篇,後者更注重統計(機器)學習的模型和演算法,而前者所涉及的模型和演算法原沒有後者全面或深入,但卻是用R來學習和應用機器學習的很好的入口。

A handbook of statistical analysis using R:這本書內容同樣非常紮實,很多統計學的學生就是用這本書來學慣用R來進行統計建模的。

  • Python

Think Python,Think Stats,Think Bayes:這是Allen B. Downey寫的著名的Think X series三大卷。其實是三本精緻的小冊子,如果想快速地掌握Python在統計方面的操作,好好閱讀這三本書,認真做習題,答案鏈接在書里有。這三本書學通了,就可以上手用Python進行基本的統計建模了。

Python For Data Analysis: 作者是pandas的主要開發者,也正是Pandas使Python能夠像R一樣擁有dataframe的功能,能夠處理結構比較複雜的數據。這本書其實analysis講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。

Introduction to Python for Econometrics, Statistics and Data Analysis:這本書第一章就告訴你要安裝Numpy, Scipy, Matplotlib, Pandas, IPython等等。然後接下來的十好幾章就是逐一介紹這幾個庫該怎麼用。很全面,但讀起來比較枯燥,可以用來當工具書。

Practical Data Analysis: 這本書挺奇葩,貌似很暢銷,但作者把內容安排得東一榔頭西一棒子,什麼都講一點,但一個都沒講透。這本書可以作為我們學習數據分析的一個索引,看到哪塊內容有意思,就順著它這個藤去摸更多的瓜。

Python Data Visualization Cookbook: 用Python做可視化的教材肯定不少,我看過的也就這一本,覺得還不錯。其實這類書差別都不會很大,咬住一本啃下來就是王道。

  • Exploratory Data Analysis 和 Data Visualization

Exploratory Data Analysis:John Tukey寫於1977年的經典老教材,是這一領域的開山之作。如今EDA已經是統計學裡的重要一支,但當時還是有很多人對他的工作不屑一顧。可他愛數據,堅信數據可以以一種出人意料的方式呈現出來。正是他的努力,讓數據可視化成為一門無比迷人的技術。但這本書不推薦閱讀了,內容略過時。要想完整地了解EDA,推薦下一本:

Exploratory Data Analysis with MATLAB:這本書雖然標題帶了個MATLAB,但實際上內容幾乎沒怎麼講MATLAB,只是每講一個方法的時候就列出對應的MATALB函數。這本書的重要之處在於,這是我讀過的講EDA最系統的一本書,除了對visualization有不輸於John Tucky的講解外,對於高維的數據集,通過怎樣的方法才能讓我們從中找到潛在的pattern,這本書也做了詳盡的講解。全書所以案例都有對應的MATALB代碼,而且還提供了GUI(圖形用戶界面)。所以這本書學起來還是相當輕鬆愉悅的。

Visualize This:中譯本叫「鮮活的數據」,作者是個「超級數據迷」,建立了一個叫http://flowingdata.com的網頁展示他的數據可視化作品,這本書告訴你該選擇什麼樣的可視化工具,然後告訴你怎樣visualize關係型數據、時間序列、空間數據等,最後你就可以用數據講故事了。如果你只想感受一下數據可視化是個什麼,可以直接點開下面這個鏈接感受下吧!A tour through the visualization zoo(A Tour Through the Visualization Zoo)

  • Machine Learning Data Mining

這一塊就不多說了,不是因為它不重要,而是因為它太太太重要。所以這一部分就推兩本書,都是」世界名著「,都比較難讀,需要一點點地啃。這兩本書拿下,基本就算是登堂入室了。其實作為機器學習的延伸和深化,概率圖模型(PGM)和深度學習(deep learning)同樣值得研究,特別是後者現在簡直火得不得了。但PGM偏難,啃K.Daphne那本大作實在太燒腦,也沒必要,而且在數據領域的應用也不算很廣。deep learning目前工業界的步子邁得比學術界的大,各個domain的應用如火如荼,但要有公認的好教材問世則還需時日,所以PGM和deep learning這兩塊就不薦書了。

The Element of Statistical Learning:要學機器學習,如果讓我只推薦一本書,我就推薦這本巨著。Hastie、Tibshirani、Friedman這三位大牛寫書寫得太用心了,大廈建得夠高夠大,結構也非常嚴謹,而且很有前瞻性,納入了很多前沿的內容,而不僅僅是一部綜述性的教材。(圖表也做得非常漂亮,應該是用R語言的ggplot2做的。)這本書注重講解模型和演算法本身,所以需要具備比較紮實的數理基礎,啃起這本書來才不會太吃力。事實上掌握模型和演算法的原理非常重要。機器學習(統計學習)的庫現在已經非常豐富,即使你沒有完全搞懂某個模型或演算法的原理和過程,只要會用那幾個庫,機器學習也能做得下去。但你會發現你把數據代進去,效果永遠都不好。但是,當你透徹地理解了模型和演算法本身,你再調用那幾個庫的時候,心情是完全不一樣的,效果也不一樣。

Data Mining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 數據挖掘的教材汗牛充棟,之所以推薦這本韓家煒爺爺的,是因為雖然他這本書的出發點是應用,但原理上的內容也一點沒有落下,內容非常完整。而且緊跟時代,更新的很快,我看過的是第二版,就已經加進去了social network analysis這種當時的前沿內容。現在已經有第三版了,我還沒看過,但應該也加入了不少新內容。其實這本書並不難讀,只是篇幅較長,啃起來比較耗時。

其實這兩本書里單拎出來一塊內容可能又是幾本書的節奏,比如bayesian方法,再拿出兩三本書來講也不為過,我個人用到的比較多,而且也確實有不少好書。但並非是所有data scientist都要用到,所以這一塊就不再細說。

還有一些印象比較深刻的書:
Big Data Glossary: 主要講解大數據處理技術及工具,內容涵蓋了NoSQL,MapReduce,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。

Mining of Massive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapReduce的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。

Developing Analytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapReduce在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用how to become a data scientist的邏輯把他近幾年的博客文章串聯了起來。

Past, Present and Future of Statistical Science:這本書是由COPSS(統計學社主席委員會,由國際各大統計學會的帶頭人組成)在50周年出版的一本紀念冊,裡面有50位統計學家每人分別貢獻出的一兩篇文章,有的回憶了自己當年如何走上統計學這條路,有的探討了一些統計學的根本問題,有的談了談自己在從事的前沿研究,有的則給年輕一代寫下了寄語。非常有愛的一本書。

  • 其它資料

Harvard Data Science:這是H大的Data science在線課,我沒有修過,但口碑很好。這門課需要費用8千刀左右,比起華盛頓大學的4千刀的Data science在線課雖貴一倍,但比斯坦福的14千刀要便宜將近一半(而且斯坦福的更偏計算機)。如果想自學,早有好心人分享了slides: (https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0kusp=sharing)和homeworks and solutions: (https://github.com/cs109/content)

PyData:PyData是來自各個domain的用Python做數據的人每年舉行一次的聚會,期間會有各路牛人舉行一些規模不大的seminar或workshop,有好心人已經把video上傳到github,有興趣的去認領吧(DataTau/datascience-anthology-pydata · GitHub)

  • 工具

R/Python/MATLAB(必備):如果是做數據分析和模型開發,以我的觀察來看,使用這三種工具的最多。R生來就是一個統計學家開發的軟體,所做的事也自然圍繞統計學展開。MATLAB雖然算不上是個專業的數據分析工具,但因為很多人不是專業做數據的,做數據還是為了自己的domain expertise(特別是科學計算、信號處理等),而MATLAB又是個強大無比的Domain expertise工具,所以很多人也就順帶讓MATLAB也承擔了數據處理的工作,雖然它有時候顯得效率不高。Python雖然不是做數據分析的專業軟體,但作為一個面向對象的高級動態語言,其開源的生態使Python擁有無比豐富的庫,Numpy, Scipy 實現了矩陣運算/科學計算,相當於實現了MATLAB的功能,Pandas又使Python能夠像R一樣處理dataframe,scikit-learn又實現了機器學習。

SQL(必備):雖然現在人們都說傳統的關係型資料庫如Oracle、MySQL越來越無法適應大數據的發展,但對於很多人來說,他們每天都有處理數據的需要,但可能一輩子都沒機會接觸TB級的數據。不管怎麼說,不論是用關係型還是非關係型資料庫,SQL語言是必須要掌握的技能,用什麼資料庫視具體情況而定。

MongoDB(可選):目前最受歡迎的非關係型資料庫NoSQL之一,不少人認為MongoDB完全可以取代mySQL。確實MongoDB方便易用,擴展性強,Web2.0時代的必需品。

Hadoop/Spark/Storm(可選): MapReduce是當前最著名也是運用最廣泛的分散式計算框架,由Google建立。Hadoop是基於MapReduce的框架建立起來的分散式計算系統,Spark在Map Reduce的基礎上利用有向無環圖構建了RDD,目的就是為了減少Map和Reduce之間的數據交換次數,所以速度就快了。另一個區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。Hadoop因為「歷史」最為悠久,有不少技術和產品都是基於Hadoop開發的,所以在較長的時間內Hadoop並不會不會被淘汰。而Spark是目前生態最好,最活躍的分散式框架。如果剛剛起步研究分散式計算,可從Spark入手。

OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。

Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。

Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長複雜網路的可視化。

------------------------------------正 文 完-----------------------------------------

除了比較難找到資料給出鏈接之外,其餘都需要各位自己動手了。也請多多支持正版。

剛開通了值乎,歡迎來擾。

值乎 - 說點兒有用的 (二維碼自動識別)


不邀自答!
大數據方向的工作目前分為三個主要方向:

01.大數據工程師
02.數據分析師
03.大數據科學家
04.其他(數據挖掘本質算是機器學習,不過和數據相關,也可以理解為大數據的一個方向吧)

由於本人目前是是大數據工程師的角色,我就這個方向做一些介紹

本回答目錄:
一、大數據工程師的技能要求
二、大數據學習路徑
三、學習資源推薦(書籍、博客、網站)


一、大數據工程師的技能要求

附上二份比較權威的大數據工程師技能圖(圖侵刪)

總結如下:

必須技能10條:
01.Java高級(虛擬機、並發)
02.Linux 基本操作
03.Hadoop(此處為俠義概念單指HDFS+MapReduce+Yarn )
04.HBase(JavaAPI操作+Phoenix )
05.Hive(Hql基本操作和原理理解)
06.Kafka
07.Storm
08.Scala需要
09.Python
10.Spark (Core+sparksql+Spark streaming )

高階技能6條:
11.機器學習演算法以及mahout庫加MLlib
12.R語言
13.Lambda 架構
14.Kappa架構
15.Kylin
16.Aluxio

二、學習路徑

由於本人是從Java開發通過大概3個月的自學轉到大數據開發的。所以我主要分享一下自己的學習路勁。

第一階段:
01.Linux學習(跟鳥哥學就ok了)
02.Java 高級學習(《深入理解Java虛擬機》、《Java高並發實戰》)

第二階段:
03.Hadoop (董西成的書)
04.HBase(《HBase權威指南》)
05.Hive(《Hive開發指南》)
06.Scala(《快學Scala》)
07.Spark (《Spark 快速大數據分析》)
08.Python (跟著廖雪峰的博客學習就ok了)

第三階段:
對應技能需求,到網上多搜集一些資料就ok了,

我把最重要的事情(要學什麼告訴你了),
剩下的就是你去搜集對應的資料學習就ok了

當然如果你覺得自己看書效率太慢,你可以網上搜集一些課程,跟著課程走也OK 。這個完全根據自己情況決定。如果看書效率不高就很網課,相反的話就自己看書。

三,學習資源推薦:

01.Apache 官網
02.Stackoverflow
04.github
03.Cloudra官網
04.Databrick官網
05.過往的記憶(技術博客)
06.CSDN,51CTO
07.至於書籍噹噹一搜會有很多,其實內容都差不多。

最後但卻很重要一點:要多關注技術動向,持續學習。

這麼快破百贊了,又有了持續輸出乾貨的動力。


大數據是個很大的範疇,很虛的概念,基本上說給外行人聽的。
就好比寫程序,有寫前端的,寫後端的,有寫嵌入式的,有寫客戶端的,有寫APP的,從語言上來講主流的語言就幾十種。這些的入門方法都不一樣。你最好明確你的目的,並且有個確切的應用方向,是對什麼行業的數據,數據來源是什麼,關注是存儲還是分析挖掘,數據量多大,是文本類還是圖像類還是純粹的商業數字,這些工作完全不一樣。


最有用的三點:
- 多看書;
- 多寫代碼;
- 多交流。

----------------

看書的方面,@郭小賢 的答案里列得已經非常詳細了,確實都是經典。補充基本個人感覺比較有價值的:

Toby Segaran (2007) Programming Collective Intelligence, O"Reilly
http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325/

Joel Grus (2015) Data Science from Scratch, O"Reilly
http://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X/

Russell Jurney (2013) Agile Data Science, O"Reilly
http://www.amazon.com/Agile-Data-Science-Analytics-Applications/dp/1449326269/

以上三本書的共同特點是,不拘泥於具體技術細節,而是通過實例描述了end to end的整套大數據流程,同時又提供了非常down to earth的代碼,讓讀者能夠馬上上手實踐。

回國工作一段時間,有個比較突出的體會:國內的技術人才絕大部分基礎紮實,能力很強,對各種技術如數家珍,上手都非常快,比起國外同行稍顯薄弱的是分析實際業務問題,建立Technology Stack來解決之的能力。以上推薦的三本書有助於培養這方面的能力。

做為Data Scientist,本人關注的主要是Data Science相關方向的資料。和題主問題略有出入,望海涵。

---------------

寫代碼的方面,公司或研究所有現成的環境是最好的。如果沒有,自己看書在雲端搭一個。現在雲服務已然是白菜價,這些投資會物超所值。

不知道題主說的入門級是有多基礎,如果Linux, Git, Vim還不會的話,首先補上這幾課。

有了環境,選一本自己能看得下去的書,跟著把裡面的例子跑一遍,弄懂每行代碼是幹嘛的。

[ 08/28/2015 ] 評論有朋友問新手編程如何入門。 贊同 @尚鬼鬼 的回復,再補充幾點:

如果完全沒有編程基礎,目標又是數據科學方向(而非軟體工程師),不推薦從C族語言(C/C++/Java/C#)起步。直接學Python,容易入門,很快能在實際工作中用上。

高票答案中推薦了一些Python的書都不錯。Think Python是非常好的入門書,每章的例子都很短小精悍,容易理解,自己敲一遍,再把每章的習題做一做,Python入門基本就沒問題。

Think Python的問題是教材氣重了些。如果需要寫復用度高的,健壯的代碼,推薦和這本結合看:Practical Python。

手機黨查資料不方便,這裡就不給鏈接了。回到電腦前再補充。

---------------

交流的方面,多參加一些線下活動,認識朋友。
多刷Stack Overflow, Quora。
Youtube上的各種講座,會議,教程,多到你不敢相信。
Slidesshare


歡迎補充。需要講得詳細些的地方,歡迎留言。


1.Linux基礎和分散式集群技術

學完此階段可掌握的核心能力:

熟練使用Linux,熟練安裝Linux上的軟體,了解熟悉負載均衡、高可靠等集群相關概念,搭建互聯網高並發、高可靠的服務架構;

學完此階段可解決的現實問題:

搭建負載均衡、高可靠的伺服器集群,可以增大網站的並發訪問量,保證服務不間斷地對外服務;

學完此階段可擁有的市場價值:

具備初級程序員必要具備的Linux伺服器運維能力。

1.內容介紹:

在大數據領域,使用最多的操作系統就是Linux系列,並且幾乎都是分散式集群。該課程為大數據的基礎課程,主要介紹Linux操作系統、Linux常用命令、Linux常用軟體安裝、Linux網路、防火牆、Shell編程等。

2.案例:搭建互聯網高並發、高可靠的服務架構。

2.離線計算系統課程階段

1. 離線計算系統課程階段

Hadoop核心技術框架

學完此階段可掌握的核心能力:

1、通過對大數據技術產生的背景和行業應用案例了解hadoop的作用;2、掌握hadoop底層分散式文件系統HDFS的原理、操作和應用開發;3、掌握MAPREDUCE分散式運算系統的工作原理和分散式分析應用開發;4、掌握Hive數據倉庫工具的工作原理及應用開發。

學完此階段可解決的現實問題:

1、熟練搭建海量數據離線計算平台;2、根據具體業務場景設計、實現海量數據存儲方案;3、根據具體數據分析需求實現基於mapreduce的分散式運算程序;

學完此階段可擁有的市場價值:

具備企業數據部初級應用開發人員的能力

1.1 HADOOP快速入門

1.1.1 hadoop知識背景

什麼是hadoop、hadoop產生背景、hadoop在大數據云計算中的位置和關係、國內hadoop的就業情況分析及課程大綱介紹

國內外hadoop應用案例介紹

分散式系統概述、hadoop生態圈及各組成部分的簡介

1.1.2 HIVE快速入門

hive基本介紹、hive的使用、數據倉庫基本知識

1.1.3 數據分析流程案例

web點擊流日誌數據挖掘的需求分析、數據來源、處理流程、數據分析結果導出、數據展現

1.1.4 hadoop數據分析系統集群搭建

集群簡介、伺服器介紹、網路環境設置、伺服器系統環境設置、JDK環境安裝、hadoop集群安裝部署、集群啟動、集群狀態測試

HIVE的配置安裝、HIVE啟動、HIVE使用測試

1.2 HDFS詳解

1.2.1 HDFS的概念和特性

什麼是分散式文件系統、HDFS的設計目標、HDFS與其他分散式存儲系統的優劣勢比較、HDFS的適用場景

1.2.2 HDFS的shell操作

HDFS命令行客戶端啟動、HDFS命令行客戶端的基本操作、命令行客戶端支持的常用命令、常用參數介紹

1.2.3 HDFS的工作機制

HDFS系統的模塊架構、HDFS寫數據流程、HDFS讀數據流程

NAMENODE工作機制、元數據存儲機制、元數據手動查看、元數據checkpoint機制、NAMENODE故障恢復、DATANODE工作機制、DATANODE動態增減、全局數據負載均衡

1.2.4 HDFS的java應用開發

搭建開發環境、獲取api中的客戶端對象、HDFS的java客戶端所具備的常用功能、HDFS客戶端對文件的常用操作實現、利用HDFS的JAVA客戶端開發數據採集和存儲系統

1.3 MAPREDUCE詳解

1.3.1 MAPREDUCE快速上手

為什麼需要MAPREDUCE、MAPREDUCE程序運行演示、MAPREDUCE編程示例及編程規範、MAPREDUCE程序運行模式、MAPREDUCE程序調試debug的幾種方式

1.3.2 MAPREDUCE程序的運行機制

MAPREDUCE程序運行流程解析、MAPTASK並發數的決定機制、MAPREDUCE中的combiner組件應用、MAPREDUCE中的序列化框架及應用、MAPREDUCE中的排序、MAPREDUCE中的自定義分區實現、MAPREDUCE的shuffle機制、MAPREDUCE利用數據壓縮進行優化、MAPREDUCE程序與YARN之間的關係、MAPREDUCE參數優化

通過以上各組件的詳解,深刻理解MAPREDUCE的核心運行機制,從而具備靈活應對各種複雜應用場景的能力

MAPREDUCE實戰編程案例:通過一個實戰案例來熟悉複雜MAPREDUCE程序的開發。該程序是從nginx伺服器產生的訪問伺服器中計算出每個訪客的訪問次數及每次訪問的時長。原始數據樣例如下:

通過一系列的MAPREDUCE程序——清洗、過濾、訪問次數及時間分析,最終計算出需求所要的結果,用於支撐頁面展現:

1.4 HIVE增強

1.4.1 HIVE基本概念

HIVE應用場景、HIVE內部架構、HIVE與hadoop的關係、HIVE與傳統資料庫對比、HIVE的數據存儲機制、HIVE的運算執行機制

1.4.2 HIVE基本操作

HIVE中的DDL操作、HIVE中的DML操作、在HIVE中如何實現高效的JOIN查詢、HIVE的內置函數應用、HIVE shell的高級使用方式、HIVE常用參數配置、HIVE自定義函數和TRANSFORM的使用技巧、HIVE UDF開發實例

1.4.3 HIVE高級應用

HIVE執行過程分析及優化策略、HIVE在實戰中的最佳實踐案例、HIVE優化分類詳解、HIVE實戰案例--數據ETL、HIVE實戰案例--用戶訪問時長統計

HIVE實戰案例--級聯求和報表實例:

離線數據挖掘系統

學完此階段可掌握的核心能力:

1、通過對數據倉庫知識的加強初步掌握數據倉庫的核心概念和設計流程;2、通過對HADOOP生態圈關鍵輔助工具的學習掌握hadoop分析系統的整合能力;3、通過電商系統點擊流日誌數據挖掘系統實戰項目,掌握hadoop離線數據挖掘系統從數據採集、入庫、分析及報表展現的整套流程

學完此階段可解決的現實問題:

1、可根據企業具體場景設計海量數據分析系統的通用架構2、根據具體場景的特點有針對性地調整數據分析各環節的技術選型;3、根據具體需求搭建起整套離線數據分析系統;4、簡單數據倉庫模型的設計和架構5、各環節具體功能模塊的開發實現

學完此階段可擁有的市場價值:

具備企業數據部中高級應用開發和初級架構師能力

2.1 數據倉庫增強

2.1.1 數據倉庫及數據模型入門

什麼是數據倉庫、數據倉庫的意義、數據倉庫核心概念、數據倉庫的體系結構

2.1.2 數據倉庫設計

建立數據倉庫的步驟、數據的抽取、數據的轉換、數據的載入、什麼是數據模型、數據模型的常見類型、如何設計數據模型、如何選擇數據建模的架構

典型數據模型——星型建模實例

2.1.3 數據倉庫建模樣例

業務建模、領域建模、邏輯建模、物理建模

web點擊流日誌分析系統數據倉庫設計實戰:

通過對數據特點和業務需求的分析,關係梳理,設計出一個主題明確、層次合理的數據模型

2.2 離線輔助系統

2.2.1 數據採集系統

數據採集概念介紹

FLUME日誌採集框架介紹、FLUME工作機制、FLUME核心組件、FLUME參數配置說明、FLUME採集nginx日誌實戰案例

2.2.2 任務調度系統

任務調度系統概念介紹、常用任務調度工具比較、OOZIE介紹、OOZIE核心概念、OOZIE的配置說明、OOIZE實現mapreduce/hive等任務調度實戰案例

2.2.3 數據導出

數據導出概念介紹、SQOOP基礎知識、SQOOP原理及配置說明、SQOOP數據導入實戰、SQOOP數據導出實戰、SQOOP批量作業操作

2.3 web點擊流日誌分析系統實戰項目

2.3.1 項目介紹

1. 在PC時代,營銷的核心是購買,在移動互聯網時代,其核心是如何實現用戶個性化互動,對用戶傳播更為精準化的內容,而實現這一核心的基礎就是對數據的管理和分析——數據驅動型商業模型。

2. 各類互聯網服務產品(如網站、APP)都可以通過前端技術獲取用戶的詳細行為數據(如訪問的頁面,點擊的區域、登陸的頻次、註冊行為、購買的行為等),將這些點擊流日誌數據與後台商業數據綜合起來,就可以挖掘對公司運營決策意義非凡的商業價值。

3. 本項目則是一個用大數據技術平台實現的點擊流日誌分析數據挖掘系統,項目內容涵蓋一個典型數據挖掘系統中,包括需求分析、數據採集、數據存儲管理、數據清洗、數據倉庫設計、ETL、業務模型統計分析、數據可視化的全部流程。

2.3.2 需求分析

什麼是點擊流日誌、點擊流日誌的商業價值、點擊流日誌分析需求

業務模型指標體系設計——流量分析、來源分析、受訪分析、訪客分析、轉化率分析

2.3.3 系統設計及開發

1. 系統架構設計

2. 數據採集設計及開發——數據格式、數據內容分析、數據生成規律、採集系統技術選型解析、FLUME採集系統實現

3. 數據存儲設計及開發——存儲技術選型、存儲業務流程解析、存儲目錄規劃及文件命名規則、小文件合併實現

4. 數據統計設計及開發——數據預處理、數據載入、原始數據表的創建、數據入庫、數據ETL

5. 報表統計設計——數據模型設計、事實表設計、維度表梳理

6. 業務指標設計及開發——PV統計(時間維度、終端維度、地域維度)、來訪次數統計(時間維度、地域維度、終端維度)、獨立訪客統計(時間維度、終端維度、地域維度)、受訪頁面統計(時間維度、欄目維度)、頁面熱點圖、轉化率分析、來源關鍵詞分析、來源搜索引擎分析、來源廣告推廣分析

2.3.4 任務調度系統設計實現

任務調度單元實現、各環節任務運行頻次及依賴關係梳理、工作流設計及實現、工作流定義配置上傳部署、工作流啟動即狀態監控

2.3.5 數據可視化——結果報表展現

1. hive分析結果使用sqoop導出到msyql資料庫

2. 報表展現系統技術選型:

後台使用spingmvc + spring + mybatis

前端頁面使用全靜態非同步刷新技術jQuery + Echarts

3. web展現程序架構搭建,使用maven構建項目工程

4. web展現程序頁面設計開發:原型頁面設計、js代碼開發

5. 最終實現以下數據可視化效果:

(1)流量概況可視化效果:

(2)來源地域分析可視化效果:

(3)來源類型分析可視化效果:

3.Storm實時計算部分階段

實時課程分為兩個部分:流式計算核心技術和流式計算計算案例實戰。

1.流式計算核心技術

流式計算核心技術主要分為兩個核心技術點:Storm和Kafka,學完此階段能夠掌握Storm開發及底層原理、Kafka的開發及底層原理、Kafka與Storm集成使用。具備開發基於storm實時計算程序的技術能力。

學完此階段可掌握的核心能力:

(1)、理解實時計算及應用場景

(2)、掌握Storm程序的開發及底層原理、掌握Kafka消息隊列的開發及底層原理

(3)、具備Kafka與Storm集成使用的能力

學完此階段可解決的現實問題:

具備開發基於storm的實時計算程序的能力

學完此階段可擁有的市場價值:

具備實時計算開發的技術能力、但理解企業業務的能力不足

1.1、流式計算一般結構

2011年在海量數據處理領域,Hadoop是人們津津樂道的技術,Hadoop不僅可以用來存儲海量數據,還以用來計算海量數據。因為其高吞吐、高可靠等特點,很多互聯網公司都已經使用Hadoop來構建數據倉庫,高頻使用並促進了Hadoop生態圈的各項技術的發展。一般來講,根據業務需求,數據的處理可以分為離線處理和實時處理,在離線處理方面Hadoop提供了很好的解決方案,但是針對海量數據的實時處理卻一直沒有比較好的解決方案。就在人們翹首以待的時間節點,storm橫空出世,與生俱來的分散式、高可靠、高吞吐的特性,橫掃市面上的一些流式計算框架,漸漸的成為了流式計算的首選框架。如果龐麥郎在的話,他一定會說,這就是我要的滑板鞋!

上圖是流式分析的一般架構圖,抽象出四個步驟就是數據採集、數據緩衝、數據處理、數據輸出。一般情況下,我們採用Flume+kafka+Storm+Redis的結構來進行流式數據分析。實時部分的課程主要是針對Kafka、Storm進行學習

1.2、流式計算可以用來幹什麼

一淘-實時分析系統:實時分析用戶的屬性,並反饋給搜索引擎。最初,用戶屬性分析是通過每天在雲梯上定時運行的MR job來完成的。為了滿足實時性的要求,希望能夠實時分析用戶的行為日誌,將最新的用戶屬性反饋給搜索引擎,能夠為用戶展現最貼近其當前需求的結果。

攜程-網站性能監控:實時分析系統監控攜程網的網站性能。利用HTML5提供的performance標準獲得可用的指標,並記錄日誌。Storm集群實時分析日誌和入庫。使用DRPC聚合成報表,通過歷史數據對比等判斷規則,觸發預警事件。

一個遊戲新版本上線,有一個實時分析系統,收集遊戲中的數據,運營或者開發者可以在上線後幾秒鐘得到持續不斷更新的遊戲監控報告和分析結果,然後馬上針對遊戲的參數和平衡性進行調整。這樣就能夠大大縮短遊戲迭代周期,加強遊戲的生命力。

實時計算在騰訊的運用:精準推薦(廣點通廣告推薦、新聞推薦、視頻推薦、遊戲道具推薦);實時分析(微信運營數據門戶、效果統計、訂單畫像分析);實時監控(實時監控平台、遊戲內介面調用)

為了更加精準投放廣告,阿里媽媽後台計算引擎需要維護每個用戶的興趣點(理想狀態是,你對什麼感興趣,就向你投放哪類廣告)。用戶興趣主要基於用戶的歷史行為、用戶的實時查詢、用戶的實時點擊、用戶的地理信息而得,其中實時查詢、實時點擊等用戶行為都是實時數據。考慮到系統的實時性,阿里媽媽使用Storm維護用戶興趣數據,並在此基礎上進行受眾定向的廣告投放。

1.3、Storm核心技術點

基礎技術點

linux環境準備、zookeeper集群搭建、Storm集群搭建、Storm配置文件配置項講解、集群搭建常見問題解決。

Storm練習案例

根據螞蟻金服提供的最新數據,今年雙十一的交易峰值為8.59萬筆/秒,是去年3.85萬筆/秒的2.23倍。這一數據也超過了6萬筆/秒的預估。如何實時的計算訂單金額,讓公司領導層看到呢?

(圖為雙十一支付寶成交金額)

Storm基礎及原理

Storm常用組件和編程API:Topology、 Spout、Bolt、Storm分組策略(stream groupings)、Storm項目maven環境搭建、使用Strom開發一個WordCount例子、Storm程序本地模式debug、Storm消息可靠性及容錯原理、Storm任務提交流程、Strom消息容錯機制。

(圖為storm組件)

1.4、Kafka核心技術點

Storm結合消息隊列Kafka:消息隊列基本概念(Producer、Consumer、Topic、Broker等)、消息隊列Kafka使用場景、Storm結合Kafka編程API、Kafka負載均衡、Kafka消息存儲原理等。

(圖為Kafka消息隊列原理)

2.流式計算案例實戰

實戰案例部分主要有三個企業實戰案列,分別是基於點擊流的日誌分析系統、基於系統日誌的監控告警系統、基於訂單系統的交易風控系統,三個案列是企業中的典型項目。學完此階段能夠獨立根據企業的業務性質開發相關的storm程序。

學完此階段可掌握的核心能力:

1、掌握企業核心業務需求

2、掌握實時系統常見的開發流程及運營經驗

學完此階段可解決的現實問題:

可以獨立開發storm程序來滿足業務需求

學完此階段可擁有的市場價值:

熟練學習和掌握後,可滿足企業開發的初級需求,根據市場反饋數據看,薪資普遍在 15000-18000元/月。

2.1、案例:流量日誌分析

流量日誌分析之漏斗模型:大型電商網站,上億規模的用戶,千萬級別的活躍用戶,如何評估一個商品專題頁面的效果好不好呢?比如:瀏覽次數、加入購物車次數、下單次數、支付次數、完成。

(圖為日誌分析漏斗模型-數據部必備)

流量日誌分析之基礎數據分析:電商網上商品數量在千萬級別,店鋪數量在百萬級別,如何實時的計算一個每個商品頁的訪問數、用戶數、來源信息等基礎信息呢?如何實時的計算每個店鋪的訪問數、用戶數、來源信息等基礎數據呢?

(圖為頁面瀏覽分析-數據部必備)

2.2、案例:統一監控告警系統

隨著公司業務發展,支撐公司業務的各種系統越來越多,為了保證公司的業務正常發展,急需要對這些線上系統的運行進行監控,做到問題的及時發現和處理,最大程度減少對業務的影響。不同業務的會有幾十上百台伺服器去支撐,大型企業可能是成千上萬台伺服器,那麼每台伺服器的硬體狀態、業務應用狀態如何實時的監控,做到及時發現,快速解決問題呢?

(圖為企業產生日誌的系統清單)

統一監控系統觸發的簡訊告警

統一監控系統觸發的郵件告警

2.3、案例:交易風控系統

電子商務是以互聯網路為平台的貿易新模式,它的一個最大特點是強調參加交易的各方和所合作的夥伴都要通過Internet密切結合起來,共同從事在網路環境下的商業電子化應用。用戶信息容易受到計算機病毒、黑客的攻擊,商業信息和數據易於搭截偵聽、口令試探和竊取,為了防止用戶信息異常給商家和用戶帶來不必要的損失,企業期望針對用戶的訂單進行分析,對觸發規則的訂單進行風險預警,在必要情況下進行攔截及鎖定訂單。

(圖為訂單異常攔截)

4.Spark內存計算階段

學完此階段可掌握的核心能力:

1.掌握Scala函數式編程特性,熟練使用Scala開發程序,可以看懂其他用Scala編寫源碼。

2.搭建Spark集群、使用Scala編寫Spark計算程序,熟練掌握Spark原理,可以閱讀Spark源碼。

3.理解DataFrame和RDD之間的關係,熟練使用DataFrame的API,熟練使用Spark SQL處理結構化數據,通過Spark SQL對接各種數據源,並將處理後結果寫回到存儲介質中。

4.理解Spark Streaming的核心DStream,掌握DStream的編程API並編寫實時計算程序。

學完此階段可解決的現實問題:

熟練使用Scala快速開發Spark大數據應用,通過計算分析大量數據,挖掘出其中有價值的數據,為企業提供決策依據。

學完此階段可擁有的市場價值:

學習完spark並掌握其內容,將具備中級大數據工程師能力,薪水可以達到 20K~25K。

1.Scala函數式編程

介紹:Scala是一門集面向對象和函數式編程與一身的編程語言,其強大的表達能力、優雅的API、高效的性能等優點受到越來越多程序員的青睞。Spark底層就是用Scala語言編寫,如果想徹底掌握Spark,就必須學好Scala。

案例:Scala編程實戰,基於Akka框架,編寫一個簡單的分散式RPC通信框架

2.使用Spark處理離線數據

介紹:Spark是基於內存計算的大數據並行計算框架,具有高容錯性和高可伸縮性,可以在大量廉價硬體之上部署大規模集群,在同等條件下要比Hadoop快10到100倍。

3.使用Spark SQL處理結構化數據

介紹:Spark SQL的前身是Shark,專門用來處理結構化的數據,類似Hive,是將SQL轉換成一系列RDD任務提交到Spark集群中運行,由於是在內存中完成計算,要比hive的性能高很多,並且簡化了開發Spark程序的難度同時提高了開發效率。

4.使用Spark Streaming完成實時計算

介紹:Spark Streaming類似於Apache Storm,用於流式數據的處理。根據其官方文檔介紹,Spark Streaming有高吞吐量和容錯能力強等特點。Spark Streaming支持的數據輸入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和簡單的TCP套接字等等。數據輸入後可以用Spark的高度抽象原語如:map、reduce、join、window等進行運算。而結果也能保存在很多地方,如HDFS,資料庫等。另外Spark Streaming也能和MLlib(機器學習)以及Graphx完美融合

5.Spark綜合項目:

介紹:該項目使用了Spark SQL和Spark Streaming對遊戲整個生命周期產生的數據進行了分析,從玩家第一次登錄遊戲到每天產生的遊戲日誌,通過大量的數據來分析該遊戲的運營情況和玩家的各種行為:如活躍用戶、用戶留存、充值比例、遊戲收人、外掛分析等。

通過玩家登錄遊戲產生的數據分析一天之內各個時間段進入遊戲的情況

通過玩家登陸遊戲產生的數據分析玩家在全國地區的分步情況,調整廣告投放策略

用戶留存指標可以分析遊戲對玩家的吸引力,分析用戶流失原因

用戶等級信息可以分析玩家等等級分布情況、調整裝備爆率和遊戲難度

通過上面遊戲各個數據指標的分析,可以讓遊戲運維者了解遊戲的運維情況,為運維者提供各種個性化的調整策略,從而保證遊戲健康、穩定的運營。


希望可以把這個貼子推廣給所有想學習或者想從事數據科學方向的朋友,樓上的朋友已經說的比較詳細了,我作為偏統計方向的分析師也在這裡說一下自己的一些學習方向和方法,希望對大家有幫助。

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

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

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

Github:
https://www.linkedin.com/learning/learning-git-and-github

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:
https://www.codecademy.com/learn/learn-sql

w3schools:
https://www.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》:
http://shop.oreilly.com/product/0636920028154.do

《Python Codebook》:
http://shop.oreilly.com/product/0636920027072.do

《Python for Data Analysis》:
http://shop.oreilly.com/product/0636920023784.do

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

DataCamp:
https://www.datacamp.com/courses/tech:python

LinkedIn:
http://www.linkedin.com/learning/python-3-essential-training

edX:
https://www.edx.org/course/analytics-python-columbiax-bamm-101x

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

DataCamp:
https://www.datacamp.com/courses/free-introduction-to-r

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》:
https://www.amazon.com/Naked-Statistics-Stripping-Dread-Data/dp/B00CH7FWWU

《The Element of Statistical Learning》:
https://web.stanford.edu/~hastie/Papers/ESLII.pdf

《A Introduction to Statistical Learning with Applications in R》:
http://www-bcf.usc.edu/~gareth/ISL/ISLR First Printing.pdf

《Regression Analysis by Example》:
https://www.amazon.com/Regression-Analysis-Example-Samprit-Chatterjee/dp/0470905840

《Reading and Understanding Multivariate Statistics》:
https://www.amazon.com/Reading-Understanding-Multivariate-Statistics-Laurence/dp/1557982732

《Reading and Understanding More Multivariate Statistics》:
https://www.amazon.com/Reading-Understanding-More-Multivariate-Statistics/dp/1557986983

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

Penn State University:
https://onlinecourses.science.psu.edu/statprogram/

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:
https://www.coursera.org/learn/machine-learning

Coursera-Deep Learning:
https://www.coursera.org/specializations/deep-learning

Coursera-Applied Data Science with Python:
https://www.coursera.org/specializations/data-science-python

《統計學習方法》:
https://goo.gl/wt5V9K

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

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

An Interactive Visualization of Every Line in Hamilton:
https://pudding.cool/2017/03/hamilton/

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

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

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


這裡給大家提供學習線路圖,希望可以幫助到大家

阿里雲數加大數據計算服務MaxCompute學習路線圖 (持續更新中)


&>&>&>大數據是什麼?

來看看維基百科的定義

大數據(英語:Big data或Megadata),或稱巨量數據、海量數據、大資料,指的是所涉及的數據量規模巨大到無法通過人工,在合理時間內達到截取、管理、處理、並整理成為人類所能解讀的信息。在總數據量相同的情況下,與個別分析獨立的小型數據集相比,將各個小型數據集合併後進行分析可得出許多額外的信息和數據關係性,可用來察覺商業趨勢、判定研究質量、避免疾病擴散、打擊犯罪或測定實時交通路況等;這樣的用途正是大型數據集盛行的原因。

上面那段看起來比較繞,可以一起看看通俗解釋:

如果你是負責做淘寶網的產品推薦工作的,想知道購買首飾的用戶是否也會購買電子產品,然後再決定是否給三星做推薦。在這種條件下就需要調用前一段時間(例如一年)的用戶數據,只有通過大量數據的證明才能確認兩者是否有關聯性,如果使用傳統數據處理方法,就會耗費大量時間,等確認正相關的時候,三星的促銷期都已經過去了,而像淘寶、京東等每天數據量動輒以TB計數,要迅速處理、分析並給出精準恰當的投放推薦,這就是大數據的作用。

&>&>&>與大數據相關的工作?

在美國,與大數據相關的職位統稱為「數據科學家」;而在國內,與大數據相關的崗位則細分得多,主要分為數據分析、數據挖掘、數據工程師、數據架構師四類。

·數據分析:運用工具,提取、分析、呈現數據,實現數據的商業意義

·數據挖掘:機器學習,演算法實現

·數據工程師:開發運用簡單數據工具,實現數據建模等功能,需要業務理解

·數據架構師:高級演算法設計與優化;數據相關係統設計與優化,有垂直行業經驗最佳

&>&>&>大數據學習?

·統計學

·計算機(或許還能加上點機器學習的知識)

這兩門學科是大數據基礎中的基礎,跨過這兩道坎就有了從事大數據工作的資格。所以也有人說,大數據工程師是一個精通統計學的程序員,而不會編程的統計狗也不是好的大數據專家。

統計學:多元統計分析、應用回歸

計算機:R、python、SQL、數據分析、機器學習

matlab和mathematica兩個軟體也是需要掌握的,前者在實際的工程應用和模擬分析上有很大優勢,後者則在計算功能和數學模型分析上十分優秀,相互補助可以取長補短。

1、視頻

習慣網上學習的,可以參考如下資源:

·Coursera

數據分析計算:Coursera - Free Online Courses From Top Universities

網路智能與大數據:Coursera - Free Online Courses From Top Universities
MATLAB程序開發入門:Coursera - Free Online Courses From Top Universities
Python互動式編程:https://www.coursera.org/course/interactivepython
演算法思想:Coursera - Free Online Courses From Top Universities

機器學習:https://www.coursera.org/learn/machine-learning

全英文授課,分別針對每個不同領域,適合深度學習

Coursera就不用多介紹了吧,基本是國內支持最棒的國外MOOC課程平台了

像機器學習這門課程,建議沒有編程基礎的文科生們慎學,可能會hold不住難度=。=

·網易雲課堂:

Wiley:大數據工程師微專業

英文授課中文字幕,成體系化,相對集中便於速成

學術出版商wiley製作的課程(學術狗們可能因為查文獻什麼的更了解wiley),在專業領域的權威性和前沿性能得到保證。但學習這門課程需要有一定的程序設計基礎經驗,熟悉基本的 SQL 語句,初級程序員進階可以考慮。

2、書籍

《商務與經濟統計學》:Statistics for Business and
Economics

詹姆斯·麥克拉夫博士寫的,如果沒記錯的話,現在中文版已經出到第十版了吧,這本書在統計學知識和聯繫實際案例上都做得不錯,遇到過好幾個統計學專業的同學都推薦這本書。

《R語言實戰》:R in Action

卡巴科弗教授撰寫,R語言界公認的聖經,因為中文翻譯蠻通俗,在講案例的時候還會重複延伸到基礎知識,死磕起來也不會太費勁,能讓人以最快的速度進入R語言的世界。

《深入淺出數據分析》:Head First Data Analysis

對就是這本名聲在外、像磚頭一樣的書,但他字大行稀,而且插圖滿天飛,最重要的是講的真的超簡單,根本不用擔心看不懂,入門必備。要是覺得紙質書88元太貴就弄個PDF看吧,估計也是看一遍就能搞定知識點的。

《利用PYTHON進行數據分析》:Python for Data Analysis

也是入門級教材,全書最後還附了一個大約三十頁篇幅的Python快速入門,總覺得是個極大的萌點。

3、其他

豆列:Road to
Data Scientist
數據科學家之路

Road to Data Scientist 數據科學家之路

是一個很好的學習資料索引,如果英文水平還不錯可以去這裡找原版看。

書籍:《大數據時代:生活、工作與思維的大變革》:Big Data:A Revolution That
Will Transform How We Live, Work, and Think

關於大數據對社會、生活、思維影響的書,如果前面推薦的書是從技術入門,那這本書就從感性的角度解釋了大數據。書比較厚,有些重複的話可以忽略。。。

論壇:大數據中國

大數據中國|關注大數據數據產業

關於大數據在國內的進展、大數據研究、應用、資訊等都有,可以了解整個行業的動態。

實踐:

自己裝個Cassandra之類的資料庫,在上面弄個小項目試試,看看自己能力如何

最後加個自己的微信公眾號:naogustudy

剛剛開始運營,戳我每天學點新技能(●"?"●)?

http://weixin.qq.com/r/ITjv91vEoAbfrR_U920z (二維碼自動識別)


學習大數據的話,可以給你一個大綱,入門可以參考。

一般的學習方法如下:

1、Linux命令基礎實戰

大數據架構體系結構及開源組件介紹 (要掌握)

Linux基本操作 (常見的Linux命令需要會)

2:Hadoop基礎

Hadoop基礎,對Hadoop架構、核心組件HDFS/YARN做了深入淺出的介紹,讓你快速把握Hadoop的核心技術和工作原理,逐漸形成分散式思維;

Hadoop介紹

Hadoop運行模式

3:Hadoop集群搭建

Hadoop集群搭建——安裝Linux虛擬機

Hadoop集群搭建——遠程連接

Hadoop集群搭建(on Linux)——Hadoop(上)

Hadoop集群搭建(on Linux)——Hadoop(下)

Hadoop集群搭建(on Mac)——Hadoop

4:HDFS原理

番外篇-課程體系

HDFS架構原理

FS Shell命令介紹及實踐

5:YARN工作原理

YARN的產生背景

YARN的設計思想

YARN的基本架構

YARN的工作流程(小結)

6:Sqoop

Sqoop,作為關係型資料庫與Hadoop之間的橋樑,批量傳輸數據,讓你自然的從關係型資料庫過度到Hadoop平台,在關係型資料庫與Hadoop之間遊刃有餘的進行數據導入導出;

Sqoop Hive課程內容介紹

Sqoop介紹與安裝

Sqoop的基本使用

Sqoop 導入參數詳解

Sqoop導入實戰

Sqoop增量導入(上)

Sqoop增量導入(下)

Sqoop導出實戰(上)

Sqoop導出實戰(下)

Sqoop Job

7:Hive

Hive,基於Hadoop大數據平台的數據倉庫,可以讓你實現傳統數據倉庫中的絕大部分數據處理、統計分析,讓你在Hadoop大數據平台上感受到Hive QL帶來的便利的互動式查詢體驗;Mars將以日誌分析或其他示例帶大家熟練掌握Hive的應用;

Hive架構介紹(一)

Hive架構介紹(二)

Hive環境搭建(一)

Hive環境搭建(二)

Hive CLI初探

Beeline介紹

Hive數據類型

Hive表一——標準建表語句解析內、外表

Hive表二——文件及數據格式

Hive分區桶傾斜概念

Hive表——Alter

Hive視圖索引簡介

Hive表——show Desc命令

Hive數據導入--load

Hive數據導入--insert

Hive分區表實戰

Hive複雜數據類型的嵌套實例

Hive源碼閱讀環境

Hive執行原理

Hive查詢優化

UDF函數實例

Hive終極實例——日誌分析

(1)網站日誌分析的術語、架構介紹

(2)建表及數據準備

(3)數據處理及統計分析

(4)數據採集到統計分析結果的crontab定時調度

8:HBase

HBase,列式存儲資料庫,提供了快速的查詢方式,是Apache Kylin的默認數據存儲結果;

HBase介紹及架構

HBase安裝

HBase操作實戰

Hive與HBase集成實戰

9:Kylin

Kylin,基於Hadoop的OLAP分析引擎,在Kylin中可以實現傳統OLAP的各種操作,直接讀取Hive的數據或流式數據作為數據源,把這些數據根據業務模型構建成Cube,Kylin提供了基於Hadoop(MapReduce)的Cube構建,Build完成的Cube數據直接存儲於HBase中。Kylin提供了Web UI供查詢,包括一些圖表展現,是基於大數據的完美OLAP工具;

維度建模

Kylin背景及原理架構

Kylin環境搭建

維度建模知識

Kylin Cube Build步驟解析

Kylin Cube實戰

Kylin 增量Cube

Kylin 優化

10:Spark

Spark,基於內存計算的大數據計算引擎,提供了Spark SQL、Spark MLlib(基於Spark的機器學習)、SparkR等框架適應不同的應用需求,Spark專題將和大家一起實踐操作各種應用和演算法;

Spark集群搭建

Spark Core

Spark WordCount(Spark-shell/pyspark..)

IDEA IntelliJ搭建Spark開發環境

Spark編程實例

Spark SQL及DataFrame

Spark SQL實例

Spark Streaming

Spark Streaming實例

Spark MLlib

Spark MLlib應用實例

Spark R介紹

可以基於每個模版去查一些相應的資料 及教程,然後按照操作即可。。。


我們身處一個「技術爆炸」「共享、開源」的時代,先進技術的更新迭代速率超過了歷史上任何一個時期,而且這些技術也不再閉塞,人人都可以接觸並學習。終身學習已經是我們每個人不得不面對的問題,這一點在大數據/人工智慧領域體現的尤為明顯:層出不窮的新技術,一方面為我們帶來了便利,但同時也使我們面臨難以高效學習和選擇的窘境。因此,在這樣的時代背景下學習大數據知識,需要有相適應的邏輯和方法。

本文試圖幫助各位讀者用好各類「共享、開源」的學習工具以及學習渠道,躲過各類新手容易誤入的「深坑」,以最小時間成本和經濟成本,優質地完成目標技術的學習和掌握。

本文首先分析了時代背景,繼而對目前大數據領域的人才梯隊進行了劃分,最後給出了大數據/人工智慧人才從菜鳥到高手的進階指南。

一、背景鋪墊

「技術爆炸」以及「共享開源」是這個時代最有特色的標籤,筆者認為二者是互為因果且緊密聯繫的,首先在「技術爆炸」的時代,對於走在技術發展最前沿的研究團隊來說,「技術變現」的最好手段就是「共享開源」。反觀互聯網、移動互聯發展成熟之前,信息是十分閉塞的,某項技術創新一旦出現就需要第一時間註冊專利,技術需要靠政府來保護,而技術變現的唯一途徑就是出賣專利或者組織生產形成產品。

現如今互聯網及移動互聯已經發展的十分成熟,新的信息會以極低的成本在極短的時間內傳遍世界的每個角落,所以處在技術前沿的研究團隊僅需要在第一時間將自己的工作成果上傳到「arxiv」或者「github」之類中立的共享、開源網站,便會立即得到全球輿論的共同保護,這樣的力度要遠遠強於某個國家的專利保護。

隨後,只要新技術確有應用價值或者學術價值,那麼各類資本巨頭、科技大鱷以及相關的各類組織便會排著隊上門送出豐厚的offer,對於前沿團隊來說,技術變現的時間點要遠遠早於技術產品化的時間點

其次,因為「技術爆炸」總有新的技術等待著前沿團隊去研究發現,所以前沿團隊保持領先的最好方法不是捂著現有成果不放,而是儘快「共享開源」實現變現,然後投入到新的研究工作中。

最後,「共享開源」也在很大程度上促進了「技術爆炸」,無論任何技術、科技的長足發展都需要一個龐大人才體系來支撐,反觀歷史上的各個時期,分享知識、培養人才的渠道主要是「學校」,這一渠道不但形式單一而且往往具備相當的門檻,會將相當一部分「有志青年」擋在門外。

而在如今這個時代,知識傳播最快速的渠道是互聯網,由於「共享開源」,世界上最優質的教育資源以及最先進的學術、技術理念忽然間沒有了任何門檻,面向全部個體無差別開放,結果就是只要某一技術、科技領域有了很大的突破並具備廣闊的應用前景(如大數據、人工智慧),那麼相應的人才梯隊會在短時間內自動補齊跟上。

站在大數據學術前沿的研究團隊只需要一往無前地開拓疆域,其後的人才梯隊隨即會自動開展「新技術論證」「技術產品化」等「保障」工作,保障這一技術領域及相關行業的健康發展,來進一步促進資源向金字塔尖的前沿團隊匯聚,支撐其開拓工作。

我們將上文提到的人才梯隊劃分為:菜鳥築基初入江湖登堂入室以及華山論劍四個等級:

  • 菜鳥築基:本階段的人才以大數據基礎理論的學習為主,尚不能勝任真實的項目或者工作;
  • 初入江湖:本階段的人才已經具備了初步的大數據實踐的能力,建議通過實踐(做項目、打比賽等)來更好地帶動學習;
  • 登堂入室:本階段的人才需具備大數據科研論文的調研、閱讀和理解能力,能夠成功地將論文中的演算法進行復現;
  • 華山論劍:本階段的人才能夠獨立地開展大數據新技術的研究工作,具有發表原創性論文的能力。

下文將針對處於不同階段的大數據人才,給出不同的修鍊、升級建議。

二、菜鳥築基

1. 最好的資源往往是公開的

讀過背景鋪墊後相信已經不需筆者再解釋為什麼最好的資源往往是公開的,在此直接給出一些獲取高質量資源的渠道。首先推薦國外的三個網站,分別是「Coursera」、「Arxiv」以及「Github」。

Coursera是全球頂尖的在線學習網站,由業內極具學術造詣及分享精神的大咖創辦。Coursera上的課程相對比較基礎,應該是「小白」起飛最好的平台,在這裡推薦吳恩達(Andrew Ng)開設的「機器學習」以及「深度學習」。對於國內學生來說最大的問題可能就是英語了,在這裡需要明確一點,如果各位想要成為真正的高手,那麼英語是永遠繞不過去的坎,業內最新、最好的資料無一例外都是英文,即便是來自國內的頂尖高手在發論文時都不會選擇用中文。

其實對於絕大多數人,英語並不應該被當作一門「學科」來學習,而應該被當作「工具」來用。具體的做法也沒有捷徑,就是看到不懂的單詞立即查,單詞不用刻意去記憶,下次遇到不會就再查一次,一切以快速弄懂句子含義為目標。

Arxiv以及Github是各位讀者未來會特別常用的兩個網站/工具,Arxiv上有最新最全的共享論文,論文中會對各類演算法進行詳盡的闡釋,Github上有最新最好的開源代碼,這些代碼往往是對某種演算法的實現,具體的使用方法網上有許多教程,在此不做展開。

讀者可以簡單的理解為Arxiv是修鍊內功的地方,而Github是修鍊外功的地方。只練內功不練外功是無法解決實際問題的,但只練外功不練內功又往往毫無威力,一定要內外兼修。最後再向大家介紹一個神奇的網站名叫「gitxiv」,會幫助各位找到論文與代碼的對應關係。

2. 不要看書、不要看書、不要看書

一門學科怎麼入門呢?菜鳥在面對這個問題時,最容易踩入的「深坑」就是找一本權威的書來從頭學起,一旦踏入此坑,輕則荒廢自己數周時間,重則對某一門學科徹底失望終生。首先好書本來就不多,往往可遇不可求。其次即便遇到好書,為了保證學術性,書中用語往往「嚴謹」但難懂,且會從學科的早期歷史為讀者打下「堅實基礎」,講到最近的技術手段時又戛然而止。最後,就算讀者傾盡數月之功力,堅持讀完了,筆者可以用血淋林的親身實踐告訴你,書中前半部分的內容一般人肯定會忘的。

當然也有特殊情況,如果各位已經確定了自己的研究方向,並且有高人/導師指點,給出了相應領域內必讀好書的名錄,這一類書還是值得一看的。不過在看的時候也要注意,不要糾結於某些細節問題,看不懂的地方可以先記下來,這類細節往往會在各位後面實踐過程中的具體場景下恍然大悟。

正確的做法一句話就可以概括,好書是用來查的而不是用來啃的,什麼時候來查呢?下文會逐步解答。

3. 找對好基友,連滾帶爬往前走

現在已經不是一個單打獨鬥,憑著跌落斷崖後找到一本秘籍閉關幾年就能橫掃天下的時代了,無論是像Hinton(推翻了BP演算法的BP演算法之父)這樣的泰斗,還是像何凱明(發best paper像一般人發paper一樣容易的神奇學霸)這樣的新秀,都處在各自非常靠譜的團隊中與小夥伴們共同探索。好基友不需要多,有一兩個真正靠譜的就已經足夠,至於隊友的重要性後文會慢慢闡釋。

菜鳥築基這部分最後要給出的建議就是,千萬不要在這個階段停留太久,不要等「準備好了」再去著手實踐,因為這裡的「準備好了」往往包含菜鳥的不自信,不去進一步提升自己是永遠準備不「好」的。一般情況下,想做「計算機視覺」或者「自然語言處理」等偏AI方向的同學在完成吳恩達的《深度學習》課程後,想做「數據挖掘」的同學在完成吳恩達的《機器學習》課程後,就可以選擇相應的實踐項目準備進入下一階段了。

那麼我們該選擇什麼實踐手段呢?最佳的情況是有大神帶隊做真實項目,但是這樣的機會往往可遇而不可求,在此不展開討論。普羅大眾型的辦法是參加一個大數據比賽項目,現在國內的「阿里天池」以及國外的「Kaggle」都是開放式的大數據比賽平台,平台上會有各種組織發布的各類真實項目供大家實踐、比賽。讀到這裡各位心裡可能還存有很大的疑問:「就算學會了基本課程,在沒有人帶的情況下能上手實踐嗎?」,下文將陸續回答如何「連滾帶爬」的進行實踐。

三、初入江湖

1. 找到一個最高的baseline

這裡的「baseline」可以理解為前人已經做出成果,當自己恰好需要去做相同工作時的參照。對於上文提到的情況,如果有大神帶隊進行實踐的話,那麼帶隊大神此前的實踐經驗就成為了全體小隊成員的「baseline」。那對於沒有「大神」資源的廣大讀者是否有更通用的解決辦法呢?答案是肯定的。如果讀者目前對於一類問題無從下手,例如剛剛學完「深度學習」的課程,但是不知道如何去做「自然語言處理」類的項目,最好的辦法是利用好國內的「萬方」以及「知網」這樣的論文查詢平台,去查詢相關領域國內普通高校的學位論文,這樣的論文絕大部分都是中文並且會在論文中介紹大量的基礎背景知識,正好滿足了我們的需求。

如果是對某一技術方的特定知識點不明所以,例如在做「自然語言處理」方向的項目,但卻不太了解「LSTM」,則可以利用好國內的諸如「知乎」、「簡書」以及「CSDN」這類的知識分享網站,只要不是太新的理論,都可以找到相應的博文或者解答。使用上述兩類渠道的共同技巧是,多搜幾篇文章對比著看。同一個概念或者技術,一篇文章很難全面描述清楚,並且由於文章作者不同,解釋問題的出發點也不盡相同,所以如果各位遇到看不懂某篇文章的情況時,不用急躁,接著看下一篇文章就好。另外,前文提到的「好書」在這裡就可以用來查了,讀者會發現原來想記都記不住的知識點,只要「查」完並且「用」過,那麼一般想忘都忘不掉。

這裡對baseline所謂「高」的定義是,越接近學術前沿,實踐效果越好,就認為越「高」。一般情況下,可參照的成果越「高」,中文文獻就越少。

文章寫到這裡不知是否回答了上一章節提出的疑問,上一章節提到的「連滾帶爬」指的就是我們在選定某一實踐方向後,根據實踐的最終成果再回過頭來對我們的相關知識進行「查漏補缺」的過程。這樣的學習過程,目標性更強,參與者完全有針對性的去學習,學到的東西可以立即實踐,從而避免「學過就忘」的尷尬。

2. 合理追求quick win

筆者曾經仔細地研究過為什麼女生逛街會「不知疲倦」,得到的答案是,女生每逛一家店鋪,看看店鋪中的鞋子/衣服/包包就能得到一定的興奮點,在得到一個興奮點後就想著直奔下一個興奮點。類比到我們做項目/打比賽的過程中,我們需要為自己的團隊設置這樣的「興奮點」,讓團隊成員都能夠享受到「quick win」的快感,來支持大家繼續推進。

而取得「quick win」的關鍵是要將手中的工作/任務合理劃分成若干「稍微努力一下就能達到」的子任務,這中間的細節過於複雜,在此就不展開討論。一個teamleader需要做的最重要的事,就是幫助團隊合理劃分任務而不斷取得「quick win」,一個人只要具備這樣的能力,無論技術高低都能夠團結一批志同道合的小夥伴。

3. 你最大的動力往往來自DDL(Deadline)

有那麼一句成功學的佳句是「每天叫醒我的不是鬧鐘而是夢想」,這句話聽起來很勵志,但對於90%的人來說就是胡扯,我們回首望去發現每天叫醒我們的往往是「上班遲到後被扣的工資」或者是「晚到實驗室後老闆的殺氣」,這就是現實,聽起來很殘酷但是我們完全可以利用好它。具體到我們的升級以及項目推進中,能讓我們不斷向前的最大動力往往是「在DDL前無法完成任務後小夥伴們的鄙視」以及「完成quick win後帶來的成就感」

做好這一點除了上一小節提到的要合理劃分任務之外,最重要的就是有一個靠譜的teamleader不斷的進行推進(push),每到既定節點後雷打不動的推進。最後要啰嗦一句,根據馬斯洛需求層次理論,夢想應該屬於模型頂層的「自我實現需求」,如果一個人可以被「夢想」叫醒,那麼這個人的其他需求應該已經被很好的滿足了,所以我在這裡真誠的祝福大家終有一天可以在早晨被自己的「夢想」叫醒。

四、登堂入室及華山論劍

如果有一天各位發現自己在工作實踐中,需要不斷地關注最前沿的論文,並且需要不斷地嘗試復現論文中的演算法來用於實踐,那麼要恭喜各位已經跨入了大數據/人工智慧領域高手的行列了。登堂入室與華山論劍兩個階段的區分不是特別明顯,因為論文讀得多了,總會有些自己的新想法,這些想法經過實驗驗證後就可以去發論文。反過來,即便你發表過前沿論文也還是需要繼續跟進其他論文。

1. 朋友圈決定了你人生的高度

在這一小節的開始,筆者首先要端出一碗毒雞湯,即便是在這個「開源、共享」的時代,學術/技術資源的分布還是極度不平均的,並且這樣的不平均會越來越明顯。究其原因有兩個,第一個原因可以援引在清華17級研究生開學典禮上某校領導的一句話來闡釋----「最有效果的研究手段就是與相當水平的同行當面交流」,翻譯一下就是高手越多的地方就越容易產生高手,這會導致高端人才分布的越發不平均。

另外,做學術前沿研究的經濟成本是很高的,國內某頂尖AI公司全球研發工作一個月的電費開銷就能達到千萬級別。即使是普通的AI項目,伺服器、GPU的成本也會導致普通的研究人員根本無法找到充足的經費來支持自己的研究。

喝完毒雞湯也要來一些正能量,雖然資源分布不平均了,但人才通道仍然是開放的,只不過門檻越來越高而已,我身邊就有畢業四五年後,也能夠一邊工作一邊複習考上清華研究生,最終接觸到前沿科學研究的例子。數據派就是一個匯聚了清華頂尖大數據/人工智慧資源的開放組織,有心的小夥伴可以點擊「閱讀原文」加入組織~(主編現在可以把刀放下了,這波廣告打的筆者自己也有些猝不及防)

2. 選擇永遠比努力更重要

這個標題聽起來又像是一碗「毒雞湯」,但這就是血淋林的生活帶給筆者的經驗。筆者見過某個演算法團隊自己悶頭搞了幾個月研究毫無進展,經過大神點播後一個月內完工的情況。

下面舉一個更戲劇性的例子,自然語言處理曾經在20世紀70年代左右有過界限分明的兩個學派之間的激烈交鋒,一撥是希望通過語法規則來做語音識別的「規則派」,另一撥是基於統計方法「統計派」,這兩撥從事相同領域研究的學者竟然分別召開自己的學術會議,即便出席同一大會竟然也要分場開小會。

到了20世紀90年代「統計派」的識別率已經達到了90%以上,而「規則派」僅有不到70%,勝負已分(吳軍老師的《數學之美》一書中對這段歷史進行了詳盡有趣的闡述)。但試問如果有一名博士生在20世紀70年代將自己學術方向定為「規則派」,到了20世紀90年代的時候他該做何感想?

到了「登堂入室」這個階段之後,做好選擇顯得尤為重要,這樣的選擇不僅僅限於學術方向,也涵蓋例如「做學術」還是「做產業」等等更廣義的範圍。一個可以參考的經驗是,如果人生的重大決策失誤,基本要用五年來挽回,大家要考慮清楚自己有幾個這樣的五年。

3. 唯一的限制往往是自己的妥協

看看本小節的標題,讀者可能會覺得本文這下要以「毒雞湯」收尾了。但其實在這裡「妥協」並不是一個貶義詞,筆者認為它起碼是個中性詞。從某種意義上講,每個人最終都會達到某種「妥協」,而不妥協就意味著背後存在與現狀不匹配的野心或者慾望,什麼時候野心和慾望跟現實匹配了,也就一定會「妥協」。這就是華山論劍的秘密,每個能站在頂峰的人都必定抱著某種超乎常人的野心或者慾望,當然這裡的野心或者慾望是廣義的,也同樣指對於學術的追求。

最後,「毒雞湯」不負眾望的要出現了,根據筆者的觀察,每個人的「妥協點」並不是自己設定的,一般情況下自己也無法影響,所以每個人最終要走到的高度往往是確定的

但從筆者的角度看來,並不覺得站在華山之巔就一定是好的,真正的「好」是能夠坦然接受自己的「妥協點」,並且能夠在自己的「妥協點」安安心心、高高興興的工作和生活下去,這才是最具智慧的選擇。

作者 王明哲、王存光


我是一家大數據網站的網路編輯,分享下我的經驗。因為我所在的網站主要發布大數據相關的行業新聞和知識內容,所以我需要了解大數據的一些基本信息。我先在百度知道等提問性平台上,尋找大數據的一些最基本的回答,這些回答很簡單,通俗易懂,比許多專業書籍的解釋更好理解。我隨後又查閱了大數據的百科資料,算是進一步了解。隨後,我根據自己了解的大數據的基本資料,拓展出一些更深入的大數據知識:大數據分析、大數據分析工具、大數據挖掘、大數據政策等等,從而讓自己心裡建立了第一層大數據知識結構。在尋找大數據相關資料的同時,我慢慢地又發現了雲計算、Hadoop、Spark等相關內容,隨後我又更深入地了解這些信息,當然,我對這些內容的認識只存在最基本的概念或者應用的了解,不過通過這樣一層一層的知識結構的完善,一個知識點一個知識點的了解,我對大數據還是有了自己的見解,雖然粗淺,但是,對於曾經還是門外漢的我,已經完全足夠。


問問題前可以花幾秒鐘看一下知乎上有沒有類似問題,這是基本常識

我是學Java的,想嘗試大數據和數據挖掘,該怎麼規劃學習?


大數據是眼下非常時髦的技術名詞,與此同時自然也催生出了一些與大數據處理相關的職業,通過對數據的挖掘分析來影響企業的商業決策。

這群人在國外被叫做數據科學家(Data
Scientist),這個頭銜最早由D.J.Pati和Jeff
Hammerbacher於2008年提出,他們後來分別成為了領英(LinkedIn)和Facebook數據科學團隊的負責人。而數據科學家這個職位目前也已經在美國傳統的電信、零售、金融、製造、物流、醫療、教育等行業里開始創造價值。

不過在國內,大數據的應用才剛剛萌芽,人才市場還不那麼成熟,「你很難期望有一個全才來完成整個鏈條上的所有環節。更多公司會根據自己已有的資源和短板,招聘能和現有團隊互補的人才。」領英(LinkedIn)中國商務分析及戰略總監王昱堯對《第一財經周刊》說。

於是每家公司對大數據工作的要求不盡相同:有的強調資料庫編程、有的突出應用數學和統計學知識、有的則要求有諮詢公司或投行相關的經驗、有些是希望能找到懂得產品和市場的應用型人才。正因為如此,很多公司會針對自己的業務類型和團隊分工,給這群與大數據打交道的人一些新的頭銜和定義:數據挖掘工程師、大數據專家、數據研究員、用戶分析專家等都是經常在國內公司里出現的Title,我們將其統稱為「大數據工程師」。

王昱堯認為,在一個成熟的數據驅動型公司,「大數據工程師」往往是一個團隊,它意味著從數據的收集、整理展現、分析和商業洞察、以至於市場轉化的全過程。這個團隊中可能包括數據工程師、分析師、產品專員、市場專員和商業決策者等角色,共同完成從原始數據到商業價值的轉換—概括來講,這是一個支持企業做出商業決策、發掘商業模式的重要群體。

由於國內的大數據工作還處在一個有待開發的階段,因此能從其中挖掘出多少價值完全取決於工程師的個人能力。已經身處這個行業的專家給出了一些人才需求的大體框架,包括要有計算機編碼能力、數學及統計學相關背景,當然如果能對一些特定領域或行業有比較深入的了解,對於其快速判斷並抓准關鍵因素則更有幫助。

雖然對於一些大公司來說,擁有碩博學歷的公司人是比較好的選擇,不過阿里巴巴集團研究員薛貴榮強調,學歷並不是最主要的因素,能有大規模處理數據的經驗並且有喜歡在數據海洋中尋寶的好奇心會更適合這個工作。

除此之外,一個優秀的大數據工程師要具備一定的邏輯分析能力,並能迅速定位某個商業問題的關鍵屬性和決定因素。「他得知道什麼是相關的,哪個是重要的,使用什麼樣的數據是最有價值的,如何快速找到每個業務最核心的需求。」聯合國百度大數據聯合實驗室數據科學家沈志勇說。學習能力能幫助大數據工程師快速適應不同的項目,並在短時間內成為這個領域的數據專家;溝通能力則能讓他們的工作開展地更順利,因為大數據工程師的工作主要分為兩種方式:由市場部驅動和由數據分析部門驅動,前者需要常常向產品經理了解開發需求,後者則需要找運營部了解數據模型實際轉化的情況。

你可以將以上這些要求看做是成為大數據工程師的努力方向,因為根據萬寶瑞華管理合伙人顏莉萍的觀察,這是一個很大的人才缺口。目前國內的大數據應用多集中在互聯網領域,有超過56%的企業在籌備發展大數據研究,「未來5年,94%的公司都會需要數據科學家。」顏莉萍說。因此她也建議一些原本從事與數據工作相關的公司人可以考慮轉型。

本期《第一財經周刊》採訪了BAT這3家國內互聯網公司,以及相關領域的人力資源專家,他們從職場角度為我們解讀如何成為大數據工程師以及這類崗位的職場現狀。

A 大數據工程師做什麼?

用阿里巴巴集團研究員薛貴榮的話來說,大數據工程師就是一群「玩數據」的人,玩出數據的商業價值,讓數據變成生產力。大數據和傳統數據的最大區別在於,它是在線的、實時的,規模海量且形式不規整,無章法可循,因此「會玩」這些數據的人就很重要。

沈志勇認為如果把大數據想像成一座不停累積的礦山,那麼大數據工程師的工作就是,「第一步,定位並抽取信息所在的數據集,相當於探礦和採礦。第二步,把它變成直接可以做判斷的信息,相當於冶煉。最後是應用,把數據可視化等。」

因此分析歷史、預測未來、優化選擇,這是大數據工程師在「玩數據」時最重要的三大任務。通過這三個工作方向,他們幫助企業做出更好的商業決策。

找出過去事件的特徵

大數據工程師一個很重要的工作,就是通過分析數據來找出過去事件的特徵。比如,騰訊的數據團隊正在搭建一個數據倉庫,把公司所有網路平台上數量龐大、不規整的數據信息進行梳理,總結出可供查詢的特徵,來支持公司各類業務對數據的需求,包括廣告投放、遊戲開發、社交網路等。

找出過去事件的特徵,最大的作用是可以幫助企業更好地認識消費者。通過分析用戶以往的行為軌跡,就能夠了解這個人,並預測他的行為。「你可以知道他是什麼樣的人、他的年紀、興趣愛好,是不是互聯網付費用戶、喜歡玩什麼類型的遊戲,平常喜歡在網上做什麼事情。」騰訊雲計算有限公司北京研發中心總經理鄭立峰對《第一財經周刊》說。下一步到了業務層面,就可以針對各類人群推薦相關服務,比如手游,或是基於不同特徵和需求衍生出新的業務模式,比如微信的電影票業務。

預測未來可能發生的事情

通過引入關鍵因素,大數據工程師可以預測未來的消費趨勢。在阿里媽媽的營銷平台上,工程師正試圖通過引入氣象數據來幫助淘寶賣家做生意。「比如今年夏天不熱,很可能某些產品就沒有去年暢銷,除了空調、電扇,背心、游泳衣等都可能會受其影響。那麼我們就會建立氣象數據和銷售數據之間的關係,找到與之相關的品類,提前警示賣家周轉庫存。」薛貴榮說。

在百度,沈志勇支持「百度預測」部分產品的模型研發,試圖用大數據為更廣泛的人群服務。已經上線的包括世界盃預測、高考預測、景點預測等。以百度景點預測為例,大數據工程師需要收集所有可能影響一段時間內景點人流量的關鍵因素進行預測,並為全國各個景點未來的擁擠度分級—在接下來的若干天時間裡,它究竟是暢通、擁擠,還是一般擁擠?

找出最優化的結果

根據不同企業的業務性質,大數據工程師可以通過數據分析來達到不同的目的。

以騰訊來說,鄭立峰認為能反映大數據工程師工作的最簡單直接的例子就是選項測試(AB
Test),即幫助產品經理在A、B兩個備選方案中做出選擇。在過去,決策者只能依據經驗進行判斷,但如今大數據工程師可以通過大範圍地實時測試—比如,在社交網路產品的例子中,讓一半用戶看到A界面,另一半使用B界面,觀察統計一段時間內的點擊率和轉化率,以此幫助市場部做出最終選擇。

作為電商的阿里巴巴,則希望通過大數據鎖定精準的人群,幫助賣家做更好的營銷。「我們更期待的是你能找到這樣一批人,比起現有的用戶,這些人對產品更感興趣。」薛貴榮說。一個淘寶的實例是,某人蔘賣家原來推廣的目標人群是產婦,但工程師通過挖掘數據之間的關聯性後發現,針對孕婦群體投放的營銷轉化率更高。

B 需要具備的能力

數學及統計學相關的背景

就我們採訪過的BAT三家互聯網大公司來說,對於大數據工程師的要求都是希望是統計學和數學背景的碩士或博士學歷。沈志勇認為,缺乏理論背景的數據工作者,更容易進入一個技能上的危險區域(DangerZone)—一堆數字,按照不同的數據模型和演算法總能捯飭出一些結果來,但如果你不知道那代表什麼,就並不是真正有意義的結果,並且那樣的結果還容易誤導你。「只有具備一定的理論知識,才能理解模型、復用模型甚至創新模型,來解決實際問題。」沈志勇說。

計算機編碼能力

實際開發能力和大規模的數據處理能力是作為大數據工程師的一些必備要素。「因為許多數據的價值來自於挖掘的過程,你必須親自動手才能發現金子的價值。」鄭立峰說。

舉例來說,現在人們在社交網路上所產生的許多記錄都是非結構化的數據,如何從這些毫無頭緒的文字、語音、圖像甚至視頻中攫取有意義的信息就需要大數據工程師親自挖掘。即使在某些團隊中,大數據工程師的職責以商業分析為主,但也要熟悉計算機處理大數據的方式。

對特定應用領域或行業的知識

在顏莉萍看來,大數據工程師這個角色很重要的一點是,不能脫離市場,因為大數據只有和特定領域的應用結合起來才能產生價值。所以,在某個或多個垂直行業的經歷能為應聘者積累對行業的認知,對於之後成為大數據工程師有很大幫助,因此這也是應聘這個崗位時較有說服力的加分項。

「他不能只是懂得數據,還要有商業頭腦,不論對零售、醫藥、遊戲還是旅遊等行業,能就其中某些領域有一定的理解,最好還是與公司的業務方向一致的,」就此薛貴榮還打了個比方,「過去我們說一些奢侈品店員勢利,看人一眼就知道買得起買不起,但這群人恰恰是有敏銳度的,我們認為他們是這個行業的專家。又比如對醫療行業了解的人,他在考慮醫療保險業務時,不僅會和人們醫院看病的記錄相關,也會考慮飲食數據,這些都是基於對該領域的了解。」

C 大數據工程師的職業發展

如何成為大數據工程師

由於目前大數據人才匱乏,對於公司來說,很難招聘到合適的人才—既要有高學歷,同時最好還有大規模數據處理經驗。因此很多企業會通過內部挖掘。

今年8月,阿里巴巴舉辦了一個大數據競賽,把天貓平台上的數據拿出來,去除敏感問題後,放到雲計算平台上交予7000多支隊伍進行比賽,比賽分為內部賽和外部賽。「通過這個方式來激勵內部員工,同時也發現外部人才,讓各行業的大數據工程師湧現出來。」

顏莉萍建議,目前長期從事資料庫管理、挖掘、編程工作的人,包括傳統的量化分析師、Hadoop方面的工程師,以及任何在工作中需要通過數據來進行判斷決策的管理者,比如某些領域的運營經理等,都可以嘗試該職位,而各個領域的達人只要學會運用數據,也可以成為大數據工程師。

薪酬待遇

作為IT類職業中的「大熊貓」,大數據工程師的收入待遇可以說達到了同類的頂級。根據顏莉萍的觀察,國內IT、通訊、行業招聘中,有10%都是和大數據相關的,且比例還在上升。顏莉萍表示,「大數據時代的到來很突然,在國內發展勢頭激進,而人才卻非常有限,現在完全是供不應求的狀況。」在美國,大數據工程師平均每年薪酬高達17.5萬美元,而據了解,在國內頂尖互聯網類公司,同一個級別大數據工程師的薪酬可能要比其他職位高20%至30%,且頗受企業重視。

職業發展路徑

由於大數據人才數量較少,因此大多數公司的數據部門一般都是扁平化的層級模式,大致分為數據分析師、資深研究員、部門總監3個級別。大公司可能按照應用領域的維度來劃分不同團隊,而在小公司則需要身兼數職。有些特彆強調大數據戰略的互聯網公司則會另設最高職位—如阿里巴巴的首席數據官。「這個職位的大部分人會往研究方向發展,成為重要數據戰略人才。」顏莉萍說。另一方面,大數據工程師對商業和產品的理解,並不亞於業務部門員工,因此也可轉向產品部或市場部,乃至上升為公司的高級管理層。


另外給你推薦一個不錯的公眾號,idacker 對於初學者還是有不少幫助。


現在網上MOOC關於Data Science的種類繁多, 選擇太多往往無從下手,對於轉行的同學總想在最短的時間內獲得最容易理解而且實用的知識, 我最為其中之一深有體會,現在就結合我自己的經歷說下自己在這方面的心得。
在我看來, Data Science/Analytics 大致需要掌握以下幾方面的技能:

1. SQL, 資料庫相關的技能
這個是所有從事數據分析的第一步:獲取數據,而絕大部分的數據儲存在資料庫中,所以SQL的技能很關鍵,事實上也是以後也會佔用你工作的大部分時間。
SQL不難,但是想要快速熟練的掌握光靠背幾個 select, from, where, group by 是遠遠不夠的,最好的聯繫方法是能一邊寫一邊看得出的結果,從而搞清楚每條語句實際在背後對數據做了什麼操作,邏輯是什麼。
SQL也是數據分析面試時重點考察的方面,Google, Facebook, Uber, Slack等等這些大的科技公司都會去著重考察,不需要你會很fancy的命令語句,但是會讓你利用簡單的命令語句去實現很複雜的邏輯關係, 這方面的資源比較入門級的有 SQLZOO 和 W3 School的SQL部分,這兩個相對來說好快速上手,而且都是我前面說的可以讓你一邊寫SQL一邊看你query出來的結果, 這樣會讓你對命令語句具體對數據本身做了什麼。
https://sqlzoo.net/https://www.w3schools.com/sql/進階的資源有微軟在edx上的一門MOOC:Querying with Transact-SQL, 這門課也適用於初學者,不過學習的時間要長一些,因為內容會講的深一些(比如window function 和 table expression)
https://www.edx.org/course/querying-transact-sql-microsoft-dat201x-7https://www.edx.org/course/querying-transact-sql-microsoft-dat201x-7 2. 統計的基本原理
大部分傳統的機器學習的演算法來自於統計學,而且統計學的知識也被大量的用在了數據探索階段(Explanatory Data Analysis) 和工作中各種各樣的Statistical Testing上面
這方面就是傳統的統計知識,盡量選一些名牌大學的通俗易懂的基礎統計課即可。

3. Data Science/Machine Learning Modeling
這塊的課程最多,但也最難選,因為很多課程要麼太注重理論,需要有很好的數學基礎才能理解,要麼就是相對來說太過簡單,下面是我覺得蠻好的課程,兼顧了理論深度,理解難度和實踐程度。
Udemy: Python for Data Science and Machine Learning Bootcamp
https://www.udemy.com/python-for-data-science-and-machine-learningbootcamp/https://www.udemy.com/python-for-data-science-and-machine-learningbootcamp/這門課的特點是講解很清晰,信息量很大,講師既講了Python編程也講了些ML的演算法知識,不過相對來說不是很深。
Edx: Analytic Edge
https://www.edx.org/course/analytics-edge-mitx-15-071x-3https://www.edx.org/course/analytics-edge-mitx-15-071x-3如果你是個對理論數學化的東西不大感興趣,只注重怎麼把ML的演算法應用在實際中,那這門課是很好的入門課。
這門來自MIT的神課介紹每個演算法時都是通過一個相應的現實中真實應用的案例來講的,而且講的通俗易懂,全部課程的語言為,也很容易上手
Udacity: Intro to Machine Learning
https://www.udacity.com/course/intro-to-machine-learning–ud120https://www.udacity.com/course/intro-to-machine-learning--ud120這門課是Google X 實驗室的創始人 Sebastian Thrun (同時也是Udacity的創始人)講授的,全面的涵蓋了主流ML的演算法,中間每講一個新的演算法,都會穿插了很多小練習幫助你鞏固新學到的知識,而且Sebastian作為業界大牛,對ML的講解也很清晰直白易懂。
Stanford Online: Statistical Learning
http://online.stanford.edu/course/statistical-learning-self-pacedhttp://online.stanford.edu/course/statistical-learning-self-paced如果你想探究ML演算法背後的數學理論基礎,那這門來自斯坦福的神課就是你的不二選擇,雖然課程的數學理論涉及較多,但是只要跟著兩位教授(兩位大牛,其中一位發明了大名鼎鼎的LASSO Regression)一步步來,還是比較容易懂的,本課程也採用了較易上手的R作為編程語言
以上這些都是Data Science/Analytics 的入門課,歡迎各位大牛繼續補充!
當然還有很有名的coursea上的JHU的data science系列,我在這裡就不多描述了。

原文來自數問-數據科學家社區 - 想往數據分析,偏statistic方向轉行,有什麼推薦的MOOC課程和平台呢? - Data Question 數問


約翰霍普金斯大學(Johns Hopkins University)和現在網路課程領頭的網站Coursera(CEO是前耶魯大學歷史上tenure最久的校長)開了一個數據科學的系列課程,只針對R,一共九門課加一個結業項目:
https://www.coursera.org/specialization/jhudatascience/1?utm_medium=sigtrackLanding

課程如下(有中文版課程,但建議上原版):
1、The Data Scientist"s Tool box
2、R Programming
3、Getting and Cleaning Data
4、Exploratory Data Analysis
5、Reproducible Research
6、Statistical Inference
7、Regression Models
8、Practical Machine Learning
9、Developing Data Products
Capstone

此課程系列上的人極多,放棄的人極多,真的完整拿下來的人很少。

如果要考慮成為數據科學家data scientist而不是數據分析師data analyst,可以參考一下美國行業對senior level從業人員的入職要求(qualifications)。數據科學既廣又精,是統計和CS的結合但又比兩者都難,建議先把一門數據語言(如R),或一門scripting語言(如Python)學通透,再開始橫向鋪陳,完善統計、scripting、編程的數據科學家構造:
1) Proficiency with at least one programming language, e.g., Java;
2) Proficiency with at least one scripting language, e.g., Python;
3) Proficiency with at least one data programming language, e.g., R/SAS;
4) Proficiency with SQL (some as a plus, some as a requirement);
5) B.S. in Applied math/CS/CompEngineering, with at least 5-7 years of professional experience in related field; Ms., 3-5 years; PhD, 0-3 years

我剛走上這條康莊大坑,共勉


安利一下自己良心製作的大數據入門級視頻教程,全棧數據工程師養成攻略 - 網易雲課堂


一、大數據分析的五個基本方面

  1,可視化分析

大數據分析的使用者有大數據分析專家,同時還有普通用戶,但是他們二者對於大數據分析最基本的要求就是可視化分析,因為可視化分析能夠直觀的呈現大數據特點,同時能夠非常容易被讀者所接受,就如同看圖說話一樣簡單明了。

2,數據挖掘演算法

大數據分析的理論核心就是數據挖掘演算法,各種數據挖掘的演算法基於不同的數據類型和格式才能更加科學的呈現出數據本身具備的特點,也正是因為這些被全世界統計學家所公認的各種統計方法(可以稱之為真理)才能深入數據內部,挖掘出公認的價值。另外一個方面也是因為有這些數據挖掘的演算法才能更快速的處理大數據,如果一個演算法得花上好幾年才能得出結論,那大數據的價值也就無從說起了。

3,預測性分析能力

大數據分析最終要的應用領域之一就是預測性分析,從大數據中挖掘出特點,通過科學的建立模型,之後便可以通過模型帶入新的數據,從而預測未來的數據。

4,語義引擎

大數據分析廣泛應用於網路數據挖掘,可從用戶的搜索關鍵詞、標籤關鍵詞、或其他輸入語義,分析,判斷用戶需求,從而實現更好的用戶體驗和廣告匹配。

5,數據質量和數據管理

大數據分析離不開數據質量和數據管理,高質量的數據和有效的數據管理,無論是在學術研究還是在商業應用領域,都能夠保證分析結果的真實和有價值。 大數據分析的基礎就是以上五個方面,當然更加深入大數據分析的話,還有很多很多更加有特點的、更加深入的、更加專業的大數據分析方法。

二、如何選擇適合的數據分析工具

要明白分析什麼數據,大數據要分析的數據類型主要有四大類:

交易數據(TRANSACTION DATA)

大數據平台能夠獲取時間跨度更大、更海量的結構化交易數據,這樣就可以對更廣泛的交易數據類型進行分析,不僅僅包括POS或電子商務購物數據,還包括行為交易數據,例如Web伺服器記錄的互聯網點擊流數據日誌。

人為數據(HUMAN-GENERATED DATA)

非結構數據廣泛存在於電子郵件、文檔、圖片、音頻、視頻,以及通過博客、維基,尤其是社交媒體產生的數據流。這些數據為使用文本分析功能進行分析提供了豐富的數據源泉。

移動數據(MOBILE DATA)

能夠上網的智能手機和平板越來越普遍。這些移動設備上的App都能夠追蹤和溝通無數事件,從App內的交易數據(如搜索產品的記錄事件)到個人信息資料或狀態報告事件(如地點變更即報告一個新的地理編碼)。

機器和感測器數據(MACHINE AND SENSOR DATA)

這包括功能設備創建或生成的數據,例如智能電錶、智能溫度控制器、工廠機器和連接互聯網的家用電器。這些設備可以配置為與互聯網路中的其他節點通信,還可以自動向中央伺服器傳輸數據,這樣就可以對數據進行分析。機器和感測器數據是來自新興的物聯網(IoT)所產生的主要例子。來自物聯網的數據可以用於構建分析模型,連續監測預測性行為(如當感測器值表示有問題時進行識別),提供規定的指令(如警示技術人員在真正出問題之前檢查設備)。

數據分析工具達到哪些要求和目的?

能應用高級的分析演算法和模型提供分析

以大數據平台為引擎,比如Hadoop或其他高性能分析系統

能夠適用於多種數據源的結構化和非結構化數據

隨著用於分析模型的數據的增加,能夠實現擴展

分析模型可以,或者已經集成到數據可視化工具

能夠和其他技術集成

另外,工具必須包含必備的一些功能,包括集成演算法和支持數據挖掘技術,包括(但不限於):

集群和細分:

把一個大的實體分割擁有共同特徵的小團體。比如分析收集來的客戶,確定更細分的目標市場。

分類:

把數據組織進預定類別。比如根據細分模型決定客戶改如何進行分類。

恢復:

用於恢復從屬變數和一個及一個以上獨立變數之間的關係,幫助決定從屬變數如何根據獨立變數的變化而變化。比如使用地理數據、凈收入、夏日平均溫度和佔地面積預測財產的未來走向。

聯合和項目集挖掘:

在大數據集中尋找變數之間的相關關係。比如它可以幫助呼叫中心代表提供基於呼叫者客戶細分、關係和投訴類型的更精準的信息。

相似性和聯繫:

用於非直接的集群演算法。相似性積分演算法可用於決定備用集群中實體的相似性。

神經網路:

用於機器學習的非直接分析。

人們通過數據分析工具了解什麼

數據科學家們,他們想使用更複雜的數據類型實現更複雜的分析,熟知如何設計,如何應用基礎模型來評估內在傾向性或偏差。

業務分析師,他們更像是隨性的用戶,想要用數據來實現主動數據發現,或者實現現有信息和部分預測分析的可視化。

企業經理,他們想要了解模型和結論。

IT開發人員,他們為以上所有類用戶提供支持。

如何選擇最適合的大數據分析軟體

分析師的專業知識和技能。有些工具的目標受眾是新手用戶,有的是專業數據分析師,有的則是針對這兩種受眾設計的。

分析多樣性。

根據不同的用戶案例和應用,企業用戶可能需要支持不同類型的分析功能,使用特定類型的建模(例如回歸、聚類、分割、行為建模和決策樹)。這些功能已經能夠廣泛支持高水平、不同形式的分析建模,但是還是有一些廠商投入數十年的精力,調整不同版本的演算法,增加更加高級的功能。理解哪些模型與企業面臨的問題最相關,根據產品如何最好地滿足用戶的業務需求進行產品評估,這些都非常重要。

數據範圍分析。

要分析的數據範圍涉及很多方面,如結構化和非結構化信息,傳統的本地資料庫和數據倉庫、基於雲端的數據源,大數據平台(如Hadoop)上的數據管理等。但是,不同產品對非傳統數據湖(在Hadoop內或其他用於提供橫向擴展的NoSQL數據管理系統內)上的數據管理提供的支持程度不一。如何選擇產品,企業必須考慮獲取和處理數據量及數據種類的特定需求。

協作。

企業規模越大,越有可能需要跨部門、在諸多分析師之間分享分析、模型和應用。企業如果有很多分析師分布在各部門,對結果如何進行解釋和分析,可能會需要增加更多的共享模型和協作的方法。

許可證書和維護預算。

幾乎所有廠商的產品都分不同的版本,購買費用和整個運營成本各不相同。許可證書費用與特性、功能、對分析數據的量或者產品可使用的節點數的限制成正比。

易用性。沒有統計背景的商業分析師是否也能夠輕鬆地開發分析和應用呢?確定產品是否提供了方便開發和分析的可視化方法。

非結構化數據使用率。

確認產品能夠使用不同類型的非結構化數據(文檔、電子郵件、圖像、視頻、演示文稿、社交媒體渠道信息等),並且能夠解析和利用收到的信息。

可擴展性和可伸縮性。

隨著數據量的不斷增長和數據管理平台的不斷擴展,要評估不同的分析產品如何跟隨處理與存儲容量的增長而增長。

三、如何區分三個大數據熱門職業——數據科學家、數據工程師、數據分析師

隨著大數據的愈演愈熱,相關大數據的職業也成為熱門,給人才發展帶來帶來了很多機會。數據科學家、數據工程師、數據分析師已經成為大數據行業最熱門的職位。它們是如何定義的?具體是做什麼工作的?需要哪些技能?讓我們一起來看看吧。

這3個職業是如何定位的?

數據科學家是個什麼樣的存在

數據科學家是指能採用科學方法、運用數據挖掘工具對複雜多量的數字、符號、文字、網址、音頻或視頻等信息進行數字化重現與認識,並能尋找新的數據洞察的工程師或專家(不同於統計學家或分析師)。

數據工程師是如何定義的

數據工程師一般被定義成「深刻理解統計學科的明星軟體工程師」。如果你正為一個商業問題煩惱,那麼你需要一個數據工程師。他們的核心價值在於他們藉由清晰數據創建數據管道的能力。充分了解文件系統,分散式計算與資料庫是成為一位優秀數據工程師的必要技能。數據工程師對演演算法有相當好的理解。因此,數據工程師理應能運行基本數據模型。商業需求的高端化催生了演算高度複雜化的需求。很多時候,這些需求超過了數據工程師掌握知識範圍,這個時候你就需要打電話尋求數據科學家的幫助。

數據分析師該如何理解

數據分析師指的是不同行業中,專門從事行業數據搜集、整理、分析,並依據數據做出行業研究、評估和預測的專業人員。他們知道如何提出正確的問題,非常善於數據分析,數據可視化和數據呈現。

這3個職業具體有什麼職責

數據科學家的工作職責

數據科學家傾向於用探索數據的方式來看待周圍的世界。把大量散亂的數據變成結構化的可供分析的數據,還要找出豐富的數據源,整合其他可能不完整的數據源,並清理成結果數據集。新的競爭環境中,挑戰不斷地變化,新數據不斷地流入,數據科學家需要幫助決策者穿梭於各種分析,從臨時數據分析到持續的數據交互分析。當他們有所發現,便交流他們的發現,建議新的業務方向。他們很有創造力的展示視覺化的信息,也讓找到的模式清晰而有說服力。把蘊含在數據中的規律建議給Boss,從而影響產品,流程和決策。

數據工程師的工作職責

分析歷史、預測未來、優化選擇,這是大數據工程師在「玩數據」時最重要的三大任務。通過這三個工作方向,他們幫助企業做出更好的商業決策。

大數據工程師一個很重要的工作,就是通過分析數據來找出過去事件的特徵。比如,騰訊的數據團隊正在搭建一個數據倉庫,把公司所有網路平台上數量龐大、不規整的數據信息進行梳理,總結出可供查詢的特徵,來支持公司各類業務對數據的需求,包括廣告投放、遊戲開發、社交網路等。

找出過去事件的特徵,最大的作用是可以幫助企業更好地認識消費者。通過分析用戶以往的行為軌跡,就能夠了解這個人,並預測他的行為。

通過引入關鍵因素,大數據工程師可以預測未來的消費趨勢。在阿里媽媽的營銷平台上,工程師正試圖通過引入氣象數據來幫助淘寶賣家做生意。比如今年夏天不熱,很可能某些產品就沒有去年暢銷,除了空調、電扇,背心、游泳衣等都可能會受其影響。那麼我們就會建立氣象數據和銷售數據之間的關係,找到與之相關的品類,提前警示賣家周轉庫存。

根據不同企業的業務性質,大數據工程師可以通過數據分析來達到不同的目的。以騰訊來說,能反映大數據工程師工作的最簡單直接的例子就是選項測試(AB Test),即幫助產品經理在A、B兩個備選方案中做出選擇。在過去,決策者只能依據經驗進行判斷,但如今大數據工程師可以通過大範圍地實時測試—比如,在社交網路產品的例子中,讓一半用戶看到A界面,另一半使用B界面,觀察統計一段時間內的點擊率和轉化率,以此幫助市場部做出最終選擇。

數據分析師的工作職責

互聯網本身具有數字化和互動性的特徵,這種屬性特徵給數據搜集、整理、研究帶來了革命性的突破。以往「原子世界」中數據分析師要花較高的成本(資金、資源和時間)獲取支撐研究、分析的數據,數據的豐富性、全面性、連續性和及時性都比互聯網時代差很多。

與傳統的數據分析師相比,互聯網時代的數據分析師面臨的不是數據匱乏,而是數據過剩。因此,互聯網時代的數據分析師必須學會藉助技術手段進行高效的數據處理。更為重要的是,互聯網時代的數據分析師要不斷在數據研究的方法論方面進行創新和突破。

就行業而言,數據分析師的價值與此類似。就新聞出版行業而言,無論在任何時代,媒體運營者能否準確、詳細和及時地了解受眾狀況和變化趨勢,都是媒體成敗的關鍵。

此外,對於新聞出版等內容產業來說,更為關鍵的是,數據分析師可以發揮內容消費者數據分析的職能,這是支撐新聞出版機構改善客戶服務的關鍵職能。

想要從事這3個職業需要掌握什麼技能?

A. 數據科學家需要掌握的技能

1,計算機科學

一般來說,數據科學家大多要求具備編程、計算機科學相關的專業背景。簡單來說,就是對處理大數據所必需的hadoop、Mahout等大規模並行處理技術與機器學習相關的技能。

2,數學、統計、數據挖掘等

除了數學、統計方面的素養之外,還需要具備使用SPSS、SAS等主流統計分析軟體的技能。其中,面向統計分析的開源編程語言及其運行環境「R」最近備受矚目。R的強項不僅在於其包含了豐富的統計分析庫,而且具備將結果進行可視化的高品質圖表生成功能,並可以通過簡單的命令來運行。此外,它還具備稱為CRAN(The Comprehensive R Archive Network)的包擴展機制,通過導入擴展包就可以使用標準狀態下所不支持的函數和數據集。

3,數據可視化(Visualization)

信息的質量很大程度上依賴於其表達方式。對數字羅列所組成的數據中所包含的意義進行分析,開發Web原型,使用外部API將圖表、地圖、Dashboard等其他服務統一起來,從而使分析結果可視化,這是對於數據科學家來說十分重要的技能之一。

B. 數據工程師需要掌握的技能

1,數學及統計學相關的背景

對於大數據工程師的要求都是希望是統計學和數學背景的碩士或博士學歷。缺乏理論背景的數據工作者,更容易進入一個技能上的危險區域(Danger Zone)—一堆數字,按照不同的數據模型和演算法總能捯飭出一些結果來,但如果你不知道那代表什麼,就並不是真正有意義的結果,並且那樣的結果還容易誤導你。只有具備一定的理論知識,才能理解模型、復用模型甚至創新模型,來解決實際問題。

2,計算機編碼能力

實際開發能力和大規模的數據處理能力是作為大數據工程師的一些必備要素。因為許多數據的價值來自於挖掘的過程,你必須親自動手才能發現金子的價值。舉例來說,現在人們在社交網路上所產生的許多記錄都是非結構化的數據,如何從這些毫無頭緒的文字、語音、圖像甚至視頻中攫取有意義的信息就需要大數據工程師親自挖掘。即使在某些團隊中,大數據工程師的職責以商業分析為主,但也要熟悉計算機處理大數據的方式。

3,對特定應用領域或行業的知識

大數據工程師這個角色很重要的一點是,不能脫離市場,因為大數據只有和特定領域的應用結合起來才能產生價值。所以,在某個或多個垂直行業的經歷能為應聘者積累對行業的認知,對於之後成為大數據工程師有很大幫助,因此這也是應聘這個崗位時較有說服力的加分項。

C. 數據分析師需要掌握的技能

1、懂業務。從事數據分析工作的前提就會需要懂業務,即熟悉行業知識、公司業務及流程,最好有自己獨到的見解,若脫離行業認知和公司業務背景,分析的結果只會是脫了線的風箏,沒有太大的使用價值。

2、懂管理。一方面是搭建數據分析框架的要求,比如確定分析思路就需要用到營銷、管理等理論知識來指導,如果不熟悉管理理論,就很難搭建數據分析的框架,後續的數據分析也很難進行。另一方面的作用是針對數據分析結論提出有指導意義的分析建議。

3、懂分析。指掌握數據分析基本原理與一些有效的數據分析方法,並能靈活運用到實踐工作中,以便有效的開展數據分析。基本的分析方法有:對比分析法、分組分析法、交叉分析法、結構分析法、漏斗圖分析法、綜合評價分析法、因素分析法、矩陣關聯分析法等。高級的分析方法有:相關分析法、回歸分析法、聚類分析法、判別分析法、主成分分析法、因子分析法、對應分析法、時間序列等。

4、懂工具。指掌握數據分析相關的常用工具。數據分析方法是理論,而數據分析工具就是實現數據分析方法理論的工具,面對越來越龐大的數據,我們不能依靠計算器進行分析,必須依靠強大的數據分析工具幫我們完成數據分析工作。

5、懂設計。懂設計是指運用圖表有效表達數據分析師的分析觀點,使分析結果一目了然。圖表的設計是門大學問,如圖形的選擇、版式的設計、顏色的搭配等等,都需要掌握一定的設計原則。

四、從菜鳥成為數據科學家的 9步養成方案

首先,各個公司對數據科學家的定義各不相同,當前還沒有統一的定義。但在一般情況下,一個數據科學家結合了軟體工程師與統計學家的技能,並且在他或者她希望工作的領域投入了大量行業知識。

大約90%的數據科學家至少有大學教育經歷,甚至到博士以及獲得博士學位,當然,他們獲得的學位的領域非常廣泛。一些招聘者甚至發現人文專業的人們有所需的創造力,他們能教別人一些關鍵技能。

因此,排除一個數據科學的學位計劃(世界各地的著名大學雨後春筍般的出現著),你需要採取什麼措施,成為一個數據科學家?

複習你的數學和統計技能。

一個好的數據科學家必須能夠理解數據告訴你的內容,做到這一點,你必須有紮實的基本線性代數,對演算法和統計技能的理解。在某些特定場合可能需要高等數學,但這是一個好的開始場合。

了解機器學習的概念。

機器學習是下一個新興詞,卻和大數據有著千絲萬縷的聯繫。機器學習使用人工智慧演算法將數據轉化為價值,並且無需顯式編程。

學習代碼。

數據科學家必須知道如何調整代碼,以便告訴計算機如何分析數據。從一個開放源碼的語言如Python那裡開始吧。

了解資料庫、數據池及分散式存儲。

數據存儲在資料庫、數據池或整個分散式網路中。以及如何建設這些數據的存儲庫取決於你如何訪問、使用、並分析這些數據。如果當你建設你的數據存儲時沒有整體架構或者超前規劃,那後續對你的影響將十分深遠。

學習數據修改和數據清洗技術。

數據修改是將原始數據到另一種更容易訪問和分析的格式。數據清理有助於消除重複和「壞」數據。兩者都是數據科學家工具箱中的必備工具。

了解良好的數據可視化和報告的基本知識。

你不必成為一個平面設計師,但你確實需要深諳如何創建數據報告,便於外行的人比如你的經理或CEO可以理解。

添加更多的工具到您的工具箱。

一旦你掌握了以上技巧,是時候擴大你的數據科學工具箱了,包括Hadoop、R語言和Spark。這些工具的使用經驗和知識將讓你處於大量數據科學求職者之上。

練習。

在你在新的領域有一個工作之前,你如何練習成為數據科學家?使用開源代碼開發一個你喜歡的項目、參加比賽、成為網路工作數據科學家、參加訓練營、志願者或實習生。最好的數據科學家在數據領域將擁有經驗和直覺,能夠展示自己的作品,以成為應聘者。

成為社區的一員。

跟著同行業中的思想領袖,閱讀行業博客和網站,參與,提出問題,並隨時了解時事新聞和理論。


很多朋友問過我類似問題,初入知乎,閑來無事講講自己的經歷,多少聽個樂呵,少走些彎路。

第一次聽到大數據,還是上大學的時候。現在想想學生時代真是無限好,和宿舍哥兒幾個天天不務正業,只求及格,過得有滋有味兩三年,等到畢業的時候,真的讓人想到自己「既宅又腐,前途未卜」,好吧其實只是宅一些。但還是對工作感覺很迷茫,不知道怎麼選擇以後的路。心裡總是空落落了,自己學的機械及自動化,不想進車間之類的,後來自己上網了解了大數據行業的相關資料和前景後,決定自己開始琢磨下大數據行業。

開始是自學,java基礎索然無味又特別繁多,還好我這個人比較能堅持,慶幸自己當時沒有放棄或懈怠,為後面的學習打下了不錯的基礎,其實我也不確定自己能不能學很好,並且找到一個不錯的工作。

自學的話就是主要看書或者視頻,發現有些難,很多地方看似看懂了但其實操作的時候就很慌了,各種錯誤,自學了兩三個月,說實話很打擊自信心,以及效率著實不高,讓我很難受。

沒辦法,只好各種機構各種跑,當然,其實在自學期間,也加了很多群,被各種推廣消息鋪天蓋地的轟炸是真的煩,覺得這些培訓機構都是圈錢的。沒辦法,溜達溜達吧就當,跑了北京大多的培訓機構,達內,光環大數據,甲骨文,小牛學堂,千峰等等。給後輩們分析一下優劣交流下吧。

以達內為例的大機構,不得不說宣傳得非常到位,各種上市,噱頭很大,規模很大。但的確是很久遠的品牌,有著不錯的信譽度。但當時達內是視頻教學(不知道現在是不是),感覺沒有實際上課的體驗以及真實感。這些機構的確很老牌強勁,正規程度是非常信得過的,所以開始我也跑了好幾家,優劣各有吧,一般這種都會很有資本,但現在競爭激烈,也不乏有衰敗跡象的公司,具體就不言說,說實話還是要自己去看一下,才有明顯對比感。

以小牛學堂為例的小機構,規模名氣相對較小,也是朋友推薦才去看了看,師資還是OK的,採用的還是小班教學,打著還算不浮誇的8K就業口號,只做大數據培訓,入門和深入的課程都有,就是規模小了點。這種小機構的話更是魚龍混雜,差的的確會很差,簡直是坑,但也存在一些由於規模小,教學態度很OK負責的那種,專業領域性較強,由淺入深,由易到難的,從Java到Spark,課程比較明細。不過選擇的時候一定要慎重,畢竟不像大機構那種有保障,一些明細還是要諮詢清楚的。

舉個例子如同買衣服,一些美潮很貴但質量很一般,一些國產比較便宜但湊合也能穿。只是第一印象而已,工作的話一般還是看內涵,所以選擇怎樣的款,真的因人而異,不做贅述。

為了避嫌,我也不說自己最後報的什麼班了。不管怎麼選,實地考察很重要,最次也要一些圖片視頻的教學模式了解。以及可以去網上聽一些公開課,大部分教學機構會發布一些公開課來吸引學員,這樣也可以看出一定的水平。最後學習了5個月多吧,就拿到了offer,就沒有繼續再學習了,不過年齡不大再加上應屆生的確經驗不是特別足,總是感覺自己有點力不從心的感覺。兩次面試下來也是被虐的不行,後來開始反思前兩次面試的過程,總結面試中回答的不是很好的問題,有什麼讓面試官覺得不盡人意的地方,用文檔記下來,並且一邊面試,一邊上網看一些人家的面試經驗,以便接下來的面試可以用到,後來第五次面試就順利的面上了,天氣太熱了不想再拖下去,就直接簽了合同,但是感覺心裡一個大石頭落地了。

最近的話,也有在大數據領域繼續學習,真的這個時代是很快的,並不是說經驗可以吃好些年,一些新的內容和技術,你不學,別人學了,別人的資本就比你厚實,不論是以後的成長還是加薪,都是很必要的內容。尤其是Spark,在搜索領域獨樹一幟,和hadoop相輔相成,相信在未來一定舉足輕重。

總之,不管自學還是培訓,學習都是件需要恆心以及自己掌握的事情,我還是很佩服自學成才的人的,也不是沒有遇到過,書山有路勤為徑,學海無涯苦作舟啊,真的,人生不簡單啊。

共勉。


有幾位知友邀請過我回答類似的問題,此類問題我覺得最好回答也最難回答
相信題主是想得到一些書單?一些文獻?我想問題主
你「學習」大數據的目的是什麼??
A:出於興趣,業餘愛好
B:為了完成文獻,論文之類的PAPER WORK
C:想在相關行業就職
D:在大數據領域創業

先說A,如果是出於興趣,那很簡單。《BIG DATA》這本書就不錯,英文中文版本都有,可以買來過過癮。O2O的盈利方向之一就是大數據,所以了解一些O2O的項目也是不錯的選擇。

如果為了寫論文,高大上,那就還是上面那本書,適當的刪減增添文字,加上幾個谷歌,團購,交通之類的例子,足夠應付一般的作業。

如果想去大數據相關的公司就職,那你一般只能從和大數據無關的方向切入。比如去百度做個產品,去微信打打工,尋求機會去接觸核心的東西。

大數據創業,我做的項目就是這個。多說幾句。
1.你需要有深厚的行業背景。哪個行業倒是關係不大,「深厚"兩個字是重點。深厚一般意味著你在這個行業工作五年以上,中級以上的管理職位或是創業經歷。否則你還處在「見山是山」的層次上,何談大數據。
2.你需要有敏銳的觀察力。這一點是建立在上一條基礎上的。千萬不要進入一個公司或行業沒多久,就覺得自己發現了好多需要改革的地方,看周圍都是傻逼。如果只是為了完成論文,你可以如此天真,否則,閉上嘴的同時請張開眼,轉轉腦子。
3.天馬行空的發散能力。具備上述條件後,你需要把你觀察和思考到的東西進行總結,並且進行初步的發掘。這是一個循環的過程。你先是發現一些東西,小心的嘗試或是與相關的人員探討,也許會被人無視,或者成為別人嚴重的2B,如果你放棄了,那就到此結束。如果你繼續堅持,隨著不斷的迭代,你要麼發現一個嶄新的方向,大數據三個字金光閃閃的鋪在腳下,要不你徹底淪為一個逗比+2B。賭一把?
4.執行力。不多說,別問我你有拖延症該怎麼辦。


JHU好像有個數據科學家系列可以參考參考。
唔,我個人是這樣覺得的:
複習一下統計,學學SAS和R的操作,你就可以做一些事情了。
學學tableau或者高階excel,你就可以說你懂得數據可視化了。
再上幾節SQL的課,你就算了解資料庫的知識了。
再學學JAVA或者Python,把SPSS過一下。

這些都不怎麼難。
然後就可以上數據挖掘和演算法了。
在學這些的同時學學高階統計,時序分析,用用 MapReduce/Hadoop等等。
大概得花個小半年吧。大概的分析的活就能理解了。

statistical method by Cochran Snedecor
SAS- the little SAS book
http://www.youtube.com/watch?v=cX532N_XLIslist=PLqzoL9-eJTNBDdKgJgJzaQcY6OXmsXAHU


推薦閱讀:

看技術書, 數學公式推導需要會計算么?
計算機視覺方向博士如何做好科研?
TensorFlow有哪些令人難以接受的地方?
pattern recognition and machine learning這本書怎麼看?
國內做計算機視覺或者機器學習比較好的實驗室有哪些?

TAG:數據挖掘 | 數據分析 | 機器學習 | 專業書籍推薦 | 大數據 |