1. 程式人生 > >資料科學 怎樣進行大資料的入門級學習?

資料科學 怎樣進行大資料的入門級學習?

資料科學並沒有一個獨立的學科體系,統計學,機器學習,資料探勘,資料庫,分散式計算,雲端計算,資訊視覺化等技術或方法來對付資料。

但從狹義上來看,我認為資料科學就是解決三個問題:

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(

cran.r-project.org/doc/),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:中譯本叫“鮮活的資料”,作者是個“超級資料迷”,建立了一個叫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: (drive.google.com/folder)和homeworks and solutions: (github.com/cs109/conten

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/Spark/storm都是基於MapReduce的框架建立起來的分散式計算系統,要說他們之間的區別就是,Hadoop用硬碟儲存資料,Spark用記憶體儲存資料,Storm只接受實時資料流而不儲存資料。一言以蔽之,如果資料是離線的,如果資料比較複雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果資料是線上的實時的流資料,就Storm。

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

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

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

相關推薦

小白怎麼學習資料,怎樣進行資料入門學習

大資料時代,你在幹什麼?大家都知道資料本身並沒有什麼價值,由於分析方法的存在,使得海量的資料變得如同一座永遠開採不完的礦,是金礦還是銀礦,得看你怎麼分析和怎麼利用了,和小編一起來了解一下怎麼學習大資料吧。【瞭解自身學習大資料的目的】每個人都有自己的想法,學習大資料的目的是什麼

詳談最熱門專業:資料科學資料技術專業

編者按:此文為2017的文章。2018年,第3批資料科學與大資料技術專業獲批,共計約250所高校獲批,呈井噴狀態。高校報考值得考慮該專業。 從IT時代進入DT時代,高校在大資料方向上設定了哪些專業,具體學什麼,就業怎麼樣,作為新興專業,考生如何報考  具體內容: 專業名稱

推薦 :資料科學資料技術面試建議與技巧之危險訊號

本文列舉了12個危險訊號,當資料科學家職位面試中發現公司存在這些危險訊號時,你應該要遠離這家公司

資料科學 怎樣進行資料入門學習

資料科學並沒有一個獨立的學科體系,統計學,機器學習,資料探勘,資料庫,分散式計算,雲端計算,資訊視覺化等技術或方法來對付資料。 但從狹義上來看,我認為資料科學就是解決三個問題: 1. data pre-processing;(資料預處理) 2. data inter

如何進行資料入門學習

一、大資料入門的前期準備工作 1. 瞭解什麼是雲端計算 2. 瞭解什麼是虛擬化 3. 學習Linux作業系統 4. 具備紮實的JAVA基礎 一般的學習方法如下: 1、Linux命令基礎實戰 大資料架構體系結構及開源元件介紹 (要掌握) Linux基本操作 (常

怎樣進行資料入門學習

        大資料(巨量資料集合)是現代社會非常時髦的一個名詞。是資料科學的一個高階狀態。資料科學並沒有一個獨立的學科體系,統計學,機器學習,資料探勘,資料庫,分散式計算,雲端計算,資訊視覺化等技術或方法來對付資料。催生出了一些與大資料相關的職業,通過對資料的分析挖掘來

資料入門學習攻略

資料科學並沒有一個獨立的學科體系,統計學,機器學習,資料探勘,資料庫,分散式計算,雲端計算,資訊視覺化等技術或方法來對付資料。 但從狹義上來看,我認為資料科學就是解決三個問題: 很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展

零基礎如何學習資料入門學習方法分享

如何學習大資料,零基礎如何學習大資料?相信下面我們講到的入門級學習方法,能夠讓你快速入門。 大資料行業目前炒的很是火爆,但是大資料的發展依然並不是很成熟,尤其是對於一些小白。瞭解系統的學習大資料的方法將更有利於自己更加快速有效的去學習大資料。分享一下零基礎如何學習大資料。 第一、對於初學者尤

資料入門學習方案

大資料方向的工作目前分為三個主要方向: 1.大資料工程師 2.資料分析師 3.大資料科學家 4.其他(資料探勘本質算是機器學習,不過和資料相關,也可以理解為大資料的一個方向吧)由於本人曾是大資料工程師的角色,我就這個方向做一些介紹本回答目錄: 一、大資料工程師的技能要求 二、大資料學習路徑

如何進行資料入門學習

目前區塊鏈行業在降溫,但大資料行業依舊火爆,很多人都對大資料充滿了興趣,但其中有大部分人都是以前沒有接觸過計算機技術的,對程式語言也不太瞭解,那是不是這部分零基礎的朋友就學不好大資料呢?答案當然是否定的。 大資料學習並不是高深莫測的,雖然它並沒有多簡單,但是通過努力,就算零基礎的朋友也是完全可以

資料入門學習,非常適合初學者的詳細路線

已經火了很久了,一直想了解它學習它結果沒時間,瞭解了一些資料,結合我自己的情況,整理了一個學習路線。     想要在大資料這個領域汲取養分,讓自己壯大成長。分享方向,行動以前先分享下一個大資料交流分享資源群868847735 ,歡迎想學習,想轉行的,進階中

資料入門學習:SQL與NOSQL資料庫

這幾年的大資料熱潮帶動了一激活了一大批hadoop學習愛好者。有自學hadoop的,有報名培訓班學習的。所有接觸過hadoop的人都知道,單獨搭建hadoop裡每個組建都需要執行環境、修改配置檔案測試等過程。對於我們這些入門級新手來說簡直每個都是坑。國內的發行版hadoop那

資料入門學習

大資料方向的工作目前分為三個主要方向: 01.大資料工程師 02.資料分析師 03.大資料科學家 04.其他(資料探勘本質算是機器學習,不過和資料相關,也可以理解為大資料的一個方向吧) 由於本人曾是大資料工程師的角色,我就這個方向做一些介紹 本回答目錄: 一、大資料工程師的技能要求 二

怎麼進行資料入門學習

 資料科學並沒有一個獨立的學科體系,統計學,機器學習,資料探勘,資料庫,分散式計算,雲端計算,資訊視覺化等技術或方法來對付資料。但從狹義上來看,我認為資料科學就是解決三個問題: 1. data pre-processing; 2. data interpretation; 3.da

零基礎怎樣進行大數據的入門學習

菜鳥到高手 高手 人才市場 高效 短板 變現 title 熊貓 用戶 大數據是眼下非常時髦的技術名詞,與此同時自然也催生出了一些與大數據處理相關的職業,通過對數據的挖掘分析來影響企業的商業決策。 這群人在國外被叫做數據科學家(Data Scientist),這個頭銜最早由D

如何用Python進行資料探勘和分析!

大資料無處不在。在時下這個年代,不管你喜歡與否,在運營一個成功的商業的過程中都有可能會遇到它。 什麼是大資料? 大資料就像它看起來那樣——有大量的資料。單獨而言,你能從單一的資料獲取的洞見窮其有限。但是結合複雜數學模型以及強大計算能力的TB級資料,卻能創造出人類無法制造的洞見。大資料分析提供

小白如何學習資料開發,資料學習路線是怎樣的?

零基礎的同學學習大資料開發不能急於求成,要分階段分步驟來一步步完成,科多大資料給大家來分享一下大資料的學習路線是什麼?小白該怎麼學習大資料呢,大概可以分為四步:大資料學習資料分享群142973723第一個階段:瞭解大資料的基本概念 首先,學習一門課程的時候,要對這門課程有一個簡單的瞭解,比如說,要先學習這門

基於機器學習與人工智慧的資料(資料庫+資料)技術

       該文主要介紹了資料技術的發展現狀和展望,通過對第35屆中國資料庫學術會議的內容整理以及總結而成,希望能夠給以後打算從事資料庫研發或者開發的朋友們指點迷津。本文主要內容包括:1.資料新技術簡介,2.資料質量管理(data cleaning),3.資料分析技術,4.

Python資料科學手冊-第5章機器學習

文章目錄 機器學習的分類 Scikit-Learn Scikit-Learn的資料表示 Scikit-Learn的評估器API 應用:手寫數字探索 超引數與模型驗證

資料教程,資料學習線路圖

前言先引用一下馬雲大大的話: 很多人還沒搞清楚什麼是PC網際網路,移動網際網路來了,我們還沒搞清楚移動互聯的時候,大資料時代又來了。 馬雲 深度解析大資料 “大資料”是近年來IT行業的熱詞,並廣泛的應用在各行各業。特別是近年來隨著社交網路、物聯網、雲端計算以及多種感測器