大數據學習曲線
Ⅰ 大數據分析需要學習什麼知識呀
1、學習大數據首先要學習Java基礎
怎樣進行大數據學習的快速入門?學大數據課程之前要先學習一種計算機編程語言。Java是大數據學習需要的編程語言基礎,因為大數據的開發基於常用的高級語言。而且不論是學習hadoop,還是數據挖掘,都需要有編程語言作為基礎。因此,如果想學習大數據開發,掌握Java基礎是必不可少的。
2、學習大數據必須學習大數據核心知識
Hadoop生態系統;HDFS技術;HBASE技術;Sqoop使用流程;數據倉庫工具HIVE;大數據離線分析Spark、Python語言;數據實時分析Storm;消息訂閱分發系統Kafka等。
如果把大數據比作容器,那麼這個容器的容量無限大,什麼都能往裡裝,大數據離不開物聯網,移動互聯網,大數據還和人工智慧、雲計算和機器學習有著千絲萬縷的關系,大數據海量數據存儲要高擴展就離不開雲計算,大數據計算分析採用傳統的機器學習、數據挖掘技術會比較慢,需要做並行計算和分布式計算擴展。
3數學知識,數學知識是數據分析師的基礎知識。對於數據分析師,了解一些描述統計相關的內容,需要有一定公式計算能力,了解常用統計模型演算法。而對於數據挖掘工程師來說,各類演算法也需要熟練使用,對數學的要求是最高的。
編程語言,對於想學大數據的同學,至少需要具備一門編程語言,比如SQL、hadoop、hive查詢、Python等均可。
4、學習大數據可以應用的領域
大數據技術可以應用在各個領域,比如公安大數據、交通大數據、醫療大數據、就業大數據、環境大數據、圖像大數據、視頻大數據等等,應用范圍非常廣泛,大數據技術已經像空氣一樣滲透在生活的方方面面。大數據技術的出現將社會帶入了一個高速發展的時代,這不僅是信息技術的終極目標,也是人類社會發展管理智能化的核心技術驅動力。
Ⅱ 數據分析需要掌握哪些知識
數據分析所需要掌握的知識:
數學知識
對於初級數據分析師來說,則需要了解統計相關的基礎性內容,公式計算,統計模型等。當你獲得一份數據集時,需要先進行了解數據集的質量,進行描述統計。
而對於高級數據分析師,必須具備統計模型的能力,線性代數也要有一定的了解。
分析工具
對於分析工具,SQL 是必須會的,還有要熟悉Excel數據透視表和公式的使用,另外,還要學會一個統計分析工具,SAS作為入門是比較好的,VBA 基本必備,SPSS/SAS/R 至少要熟練使用其中之一,其他分析工具(如 Matlab)可以視情況而定。
編程語言
數據分析領域最熱門的兩大語言是 R 和 Python。涉及各類統計函數和工具的調用,R無疑有優勢。但是大數據量的處理力不足,學習曲線比較陡峭。Python 適用性強,可以將分析的過程腳本化。所以,如果你想在這一領域有所發展,學習 Python 也是相當有必要的。
當然其他編程語言也是需要掌握的。要有獨立把數據化為己用的能力, 這其中SQL 是最基本的,你必須會用 SQL 查詢數據、會快速寫程序分析數據。當然,編程技術不需要達到軟體工程師的水平。要想更深入的分析問題你可能還會用到:Exploratory analysis skills、Optimization、Simulation、Machine Learning、Data Mining、Modeling 等。
業務理解
對業務的理解是數據分析師工作的基礎,數據的獲取方案、指標的選取、還有最終結論的洞察,都依賴於數據分析師對業務本身的理解。
對於初級數據分析師,主要工作是提取數據和做一些簡單圖表,以及少量的洞察結論,擁有對業務的基本了解就可以。對於高級數據分析師,需要對業務有較為深入的了解,能夠基於數據,提煉出有效觀點,對實際業務能有所幫助。對於數據挖掘工程師,對業務有基本了解就可以,重點還是需要放在發揮自己的技術能力上。
邏輯思維
對於初級數據分析師,邏輯思維主要體現在數據分析過程中每一步都有目的性,知道自己需要用什麼樣的手段,達到什麼樣的目標。對於高級數據分析師,邏輯思維主要體現在搭建完整有效的分析框架,了解分析對象之間的關聯關系,清楚每一個指標變化的前因後果,會給業務帶來的影響。對於數據挖掘工程師,羅輯思維除了體現在和業務相關的分析工作上,還包括演算法邏輯,程序邏輯等,所以對邏輯思維的要求也是最高的。
數據可視化
數據可視化主要藉助於圖形化手段,清晰有效地傳達與溝通信息。聽起來很高大上,其實包括的范圍很廣,做個 PPT 里邊放上數據圖表也可以算是數據可視化。
對於初級數據分析師,能用 Excel 和 PPT 做出基本的圖表和報告,能清楚地展示數據,就達到目標了。對於稍高級的數據分析師,需要使用更有效的數據分析工具,根據實際需求做出或簡單或復雜,但適合受眾觀看的數據可視化內容。
協調溝通
數據分析師不僅需要具備破譯數據的能力,也經常被要求向項目經理和部門主管提供有關某些數據點的建議,所以,你需要有較強的交流能力。
對於高級數據分析師,需要開始獨立帶項目,或者和產品做一些合作,因此除了溝通能力以外,還需要一些項目協調能力。
Ⅲ 大數據時代對編程有什麼影響
世界上有一個著名的編程語言排行榜,即TIOBE以反映編程語言的熱門程度。年3月的排行中,Java、Python、R語言和Scala分別占據了第一、第五、第十三和第三十的位置。上圖中反映出近十五年來,Java在絕大多數時間中都占據了排行榜的首位,足見其本身的流行度。
1.Java
正如前面所提到的,Java是目前編寫大數據的重要語言,我們用的Hadoop、Spark和Storm都是用Java語言編寫而成的,可見Java語言在大數據方面的重要作用。
Java最初由Sun公司的詹姆斯·高斯林開發出來,高斯林長期供職於Sun公司,但Sun公司在2009年被甲骨文收購,高斯林一直對甲骨文公司抱有不滿,並於2010年離開甲骨文加入谷歌,他在離開甲骨文時說:「我所說的都關乎細節與誠實,但吐露真相只會帶來更多的壞處」,「在Sun與甲骨文的並購會議上,到處是有關Sun和谷歌專利的爭吵。甲骨文律師的眼睛閃閃發光。」關於Java的故事雖然鋪滿了傳奇,比如那些不可思議的成功、失之交臂的良機、糾纏不清的官司,但Java本身卻成功地應用在網路計算、移動等各個領域。歷史上從未有像Java這樣可以如此廣泛地被應用的語言和平台。
Java語言如此成功與Java的特點是密切相關的,在Java之前最流行的編程語言是C語言,但C語言的指針處理對普通程序員而言簡直是夢魘,經常會帶來內層泄露問題。因此,高斯林發明Java的一個重要原因便是為了解決C語言的泄露問題和C++兼容C語法而造成的一些歷史遺留問題。Java提出了引用類型,取消了C語言中特殊的指針語法,並通過垃圾自動回收的機制,自動回收不再使用的對象內存。程序員只需創建對象,無需關心如何回收對象,這便使得程序員的犯錯率大大降低,開發效率也大大提升。同時,Java還提出了中間語言和虛擬機的概念,Java程序會先編譯成叫位元組碼的中間語言,再由運行在各操作系統上的Java虛擬機軟體(JVM),在運行時解釋和執行。這樣做的好處是實現了當年Java的口號:一次編寫、到處運行,使得企業可以自由選擇操作系統和伺服器設備,保護了企業的投資。
我們直覺上認為,Java編寫的代碼需要編譯為位元組碼,再由虛擬機來解釋執行,運行速度應該慢於直接編譯為機器碼的語言,如C語言。但人們對Java虛擬機做了大量的優化,使得普通程序員編寫的Java程序遠快於普通程序員編寫的C語言程序,不同水平的Java程序員也能較好的進行團隊協作,開發大型項目,變相降低了企業的人力成本。
Java具有跨平台特性和開放特性,編寫效率相對較高,它屬於強類型的靜態語言,其本身結構非常方便大型項目的組織管理和模塊劃分。因此,畢業於美國斯坦福大學的Hadoop之父DougCutting在編寫Hadoop時選擇了Java語言,這並非偶然。
Java語言的特點人們比較認可的是:簡單性、面向對象、分布式、健壯性、多線程、安全性、可移植性、動態性等特點,當然,其中的簡單、多線程是相對於當時的C語言、C++而言的。總之,Java構成了當前企業大數據計算的基石。
2.Python
1989年的聖誕節期間,在荷蘭的阿姆斯特丹,年輕的Guidovan Rossum為了打發聖誕節的無聊,決定開發一個新的腳本解釋程序,由於他非常喜歡英國六人喜劇團體Monty Python,因此以Python作為腳本名稱。
Python由ABC語言繼承而來,非常適合非程序員來學習使用,普通人員在學習Python時入門非常容易,剛剛提到Java是一門簡單的語言,Python則是「更加簡單」的語言。我們在開始學習Java時,需要配置環境變數、安裝基礎開發環境、編譯運行等,這些基礎工作使得很多人抓狂,甚至成功將很多人嚇跑了。Python要簡單得多,下載安裝之後,在命令行直接輸入Python,便可打開一個解釋器,每執行一行代碼能立即看到輸出結果。因此,初學者非常樂意將Python當作一個強大的科學計算器來使用,體驗Python的強大功能。
Python遵循了優雅、明確、簡單的設計原則,一件事情會有很多種方法,其中會有相對較好的一種。Python開發者的哲學是用一種方法,最好只用一種方法做一件事情,如果有多種選擇,Python開發者會拒絕花哨的語法,而是選擇明確的、沒有歧義的語法。
Python強制使用空格作為邏輯代碼塊的隸屬關系控制,強製程序員養成良好的編程習慣。Python的解釋器中會輸出Python推薦的編寫風格和准則,例如優美勝於醜陋,明了勝於晦澀。在Python顯示器中輸入importthis,便可看到這一系列准則的英文。
經過二十多年的發展,Python已變得非常流行。從早期的各類系統管理任務和web編程,到後來的科學計算和數據分析,Python的應用都比較多。Python的簡潔、易讀和可擴展性使得用Python做科學計算的研究機構日益增多,如卡內基梅隆大學的編程基礎、MIT的計算機科學基編程導論都採用了Python來教授這些課程。此外,眾多開源的科學計算軟體包也都提供了Python調用介面,如著名的圖形庫(OpenCV)、三維可視化庫(VTK),在科學計算和數據分析方面也形成了較為統一的經典擴展庫,如用於快速數組處理的NumPy、數值運算專用的SciPy、圖形繪制的MatplotLib、金融處理方面的Pandas。同時,還有大量的經典圖書採用了Python語言來講解數據挖掘方面的相關理論,如集體智慧編程、社交媒體的數據挖掘與分析等等。
因此,Python的特點可以總結為簡單、優雅、易於擴展、有豐富的科學計算和數據分析擴展庫,非常適合數據科學家來學習使用。
3.R語言
R語言本質上是一款集統計分析和可視化於一體的免費的可跨平台運行的統計軟體。由紐西蘭奧克蘭大學的Robert Gentleman和RossIhaka二人在九十年代初期共同發明,當時兩個人教授一門初等的統計課程,為方便授課開發了這一語言,由於兩個人的名字均以R開頭,因此被稱為R語言。
R語言可以看作是大名鼎鼎的貝爾實驗室所開發的S語言的一種實現。1975年,貝爾實驗室的統計研究部使用了一套文檔齊全的擴充庫來做統計研究,我們稱其為SCS。但SCS在做統計分析時需要大量的編程,有人認為這樣太麻煩,於是貝爾實驗室又開發了一套完整的高級語言系統,即S語言,用於交互。1993年,S語言的許可證被MathSoft公司買斷了,引起了人們的擔憂,而開源的R語言引起了人們的關注。1997年,R語言正式成為GNU項目,大量的優秀統計學家加入了R語言的開發行列。到今天,這一場開源和商業、開放和封閉之爭已塵埃落定,R語言已成為當今最為流行的統計分析工具之一。
和Python類似,R語言的使用也很簡單,直接打開R的交互環境,輸入demo,便可以看到其中的一些例子。因此,初學者可以很快地獲得直觀的感受,增加學習的樂趣,對學習統計知識非常有幫助。
從R語言的發展歷史來看,主要是為統計學家解決數據分析問題而開發的。R的特點是尤其擅長於數據的統計分析。R語言演算法幾乎覆蓋了整個統計領域的前沿演算法,重復性的工作藉助R語言強大的分析能力和排版能力,利用Sweave能得到很好的解決。R本身屬於統計編程類語言,受到其演算法架構的通用性和速度、性能等方面的影響,最開始的設計完全是基於單線程和內存計算完成。因此,在處理大規模數據時顯得力不從心,好在R有一些優秀的擴展,能在一定程度上解決這些問題。如SparkR、RHadoop等等。
4.Scala語言
我們知道,偉大的Java促進了今日信息技術的輝煌,Java支撐了大量的企業級關鍵應用,如web站點、手機應用等等。但人們一直期待Java的重大改進和更新換代,使其吸收其他語言的長處,進一步提升生產效率。而Scala不僅在「更好的Java」方面做得非常成功,而且在並發編程、大數據處理、科學計算方面都取得了不錯的效果。
Scala由瑞士的聯邦理工學院Martin Odersky在2003年開始設計,在此之前,他已經因對Java的優化而聞名於世,Scala是其又一成名之作。正如其名,Scala本身是一門可擴展的語言,其中有靜態運行、面向對象編程、函數式編程、類型推導、高階函數等眾多特性。Scala語言非常經典,相同的功能用Scala實現,代碼量能達到Java的百分之二十左右。Scala不僅可以做到更好的Java,而且在數據統計分析方面,原先Python和R語言獨具的一些統計分析模塊,已經有越來越多的Scala實現,例如Breeze、Spark data frame、Zeppelin。我們知道以前的數據分析書籍大多由Python語言寫成,現在也有許多用Scala進行數據分析和機器學習的書籍,如Scala Data Analysis Cookbook、Scala for Machine Learning。
Scala可以無縫銜接原有的Java庫,充分地利用現有的Java資源,在大數據並行分析處理方面更是獨具優勢。因此,很多大數據平台都選擇Scala作為首要的實現語言和API介面語言。
個人認為,Scala最主要的特點是非常靈活,以至於初學者的學習曲線比較陡峭,但Scala很好地將Java的面向對象編程方法與Haskell函數式編程思想揉在一起,其中體現的現代化編程思想值得程序設計人員深入的學習和體會。
這四種編程語言各有各的優點,但有人的地方便有爭論,這里的爭論焦點主要集中於R和Python間的選擇問題。其實,通過這兩種語言的官網介紹,便可以看出他們的定位並不完全一致,Python是一種通用的編程語言,除數據分析外在很多領域都有廣泛的應用,R的定位是「用於統計計算的免費軟體環境」。
三、初學者如何選擇大數據編程語言
工欲善其事必先利其器,對於奮戰在大數據處理和分析前沿的人員而言,手中應有一把使用自如的快刀,當面對上述四種各有特色的編程語言應如何選擇?
在Quora上,有人提到,對於數據工程推薦使用Java和Scala,對於數據科學推薦使用Python和R語言,個人覺得很有道理。如果你是一個統計學家,並沒有太多的計算機科學背景,R應該是一個很不錯的選擇;如果接受過較為系統的程序設計訓練,又想從事數據分析方面的工作,Python應該是不錯的選擇;如果我們要做大數據產品、大數據具體項目,或者想深入了解現在大數據框架底層的運行機制,那學習Java是必不可少的基本要求;對於Scala語言,如果你是一個熟練的Java工程師,厭倦了Java的冗餘繁瑣,嚮往美好的函數式編程、嚮往Python的簡潔優雅、嚮往R語言的強大統計功能,可以選擇Scala。Scala還有一個額外的好處,用Scala寫的程序代碼初級程序員很難看懂,也不敢隨意修改,便不用擔心在團隊協作時精心編寫的代碼被一些初級程序員改錯。
當然,個人認為,編程語言並沒有高低貴賤和優劣之分,各有各的優點,如果你有興趣和能力,不妨將各種語言都實踐一遍,尤其是側重於大數據工程的技術人員,在學好一門重量級的語言,如Java語言,與此同時,掌握一門Python或R語言對於開拓自己的視野、學習數據分析的理論、閱讀相關的書籍都是大有裨益的。
Ⅳ 大數據培訓需要學多久
大數據要學多久,這得看你選擇的學校課程安排了,我是從零基礎開始學的,在光環大數據,大概學了5個月,白天全天上課,晚上復習做作業,每個學校的課程設置安排不一樣,可能如果沒有項目實戰的話時間會比較短的吧,還有如果你是有基礎的話學習時間可能會短一些~學習這件事兒不能著急呀,時間不是最重要的,重要的是能不能學會呢!
Ⅳ 怎樣進行大數據的入門級學習
怎樣進行大數據的入門級學習?
文 | 郭小賢
數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分布式計算,雲計算,信息可視化等技術或方法來對付數據。
但從狹義上來看,我認為數據科學就是解決三個問題:
1. datapre-processing;(數據預處理)
2. datainterpretation;(數據解讀)
3.datamodeling and analysis.(數據建模與分析)
這也就是我們做數據工作的三個大步驟:
1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;
2、我們想看看數據「長什麼樣」,有什麼特點和規律;
3、按照自己的需要,比如要對數據貼標簽分類,或者預測,或者想要從大量復雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。
這三個步驟未必嚴謹,每個大步驟下面可能依問題的不同也會有不同的小步驟,但按我這幾年的經驗來看,按照這個大思路走,數據一般不會做跑偏。
這樣看來,數據科學其實就是門復合型的技術,既然是技術就從編程語言談起吧,為了簡練,只說說R和Python。但既然是薦數據科學方面的書,我這里就不提R/Python編程基礎之類的書了,直接上跟數據科學相關的。
R programming
如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:
R inaction:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料,如官方發布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的問題集(Newest 『r』 Questions),遇到復雜的問題可在上面搜索,總會找到解決方案的。這樣一來,用這本書拿來入門學習也問題不大。而且這本書作者寫得也比較輕松,緊貼實戰。
Dataanalysis and graphics using R:使用R語言做數據分析的入門書。這本書的特點也是緊貼實戰,沒有過多地講解統計學理論,所以喜歡通過情境應用來學習的人應該會喜歡這本入門書。而且這本書可讀性比較強,也就是說哪怕你手頭沒電腦寫不了代碼,有事沒事拿出這本書翻一翻,也能讀得進去。
但如果你先用R來從事實實在在的數據工作,那麼上面兩本恐怕不夠,還需要這些:
Modernapplied statistics with S:這本書里統計學的理論就講得比較多了,好處就是你可以用一本書既復習了統計學,又學了R語言。(S/Splus和R的關系就類似於Unix和Linux,所以用S教程學習R,一點問題都沒有)
Datamanipulation with R:這本書實務性很強,它教給你怎麼從不同格式的原始數據文件里讀取、清洗、轉換、整合成高質量的數據。當然和任何一本注重實戰的書一樣,本書也有豐富的真實數據或模擬數據供你練習。對於真正從事數據處理工作的人來說,這本書的內容非常重要,因為對於任何研究,一項熟練的數據預處理技能可以幫你節省大量的時間和精力。否則,你的研究總是要等待你的數據。
RGraphics Cookbook:想用R做可視化,就用這本書吧。150多個recipes,足以幫你應付絕大多數類型的數據。以我現在極業余的可視化操作水平來看,R是最容易做出最漂亮的圖表的工具了。
Anintroction to statistical learning with application in R:這本書算是著名的the element of statistical learning的姊妹篇,後者更注重統計(機器)學習的模型和演算法,而前者所涉及的模型和演算法原沒有後者全面或深入,但卻是用R來學習和應用機器學習的很好的入口。
Ahandbook of statistical analysis using R:這本書內容同樣非常扎實,很多統計學的學生就是用這本書來學慣用R來進行統計建模的。
Python
Think Python,ThinkStats,Think Bayes:這是AllenB. Downey寫的著名的Think X series三大卷。其實是三本精緻的小冊子,如果想快速地掌握Python在統計方面的操作,好好閱讀這三本書,認真做習題,答案鏈接在書里有。這三本書學通了,就可以上手用Python進行基本的統計建模了。
PythonFor Data Analysis: 作者是pandas的主要開發者,也正是Pandas使Python能夠像R一樣擁有dataframe的功能,能夠處理結構比較復雜的數據。這本書其實analysis講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。
Introctionto Python for Econometrics, Statistics and DataAnalysis:這本書第一章就告訴你要安裝Numpy, Scipy, Matplotlib, Pandas, IPython等等。然後接下來的十好幾章就是逐一介紹這幾個庫該怎麼用。很全面,但讀起來比較枯燥,可以用來當工具書。
PracticalData Analysis: 這本書挺奇葩,貌似很暢銷,但作者把內容安排得東一榔頭西一棒子,什麼都講一點,但一個都沒講透。這本書可以作為我們學習數據分析的一個索引,看到哪塊內容有意思,就順著它這個藤去摸更多的瓜。
PythonData Visualization Cookbook: 用Python做可視化的教材肯定不少,我看過的也就這一本,覺得還不錯。其實這類書差別都不會很大,咬住一本啃下來就是王道。
Exploratory Data Analysis 和 Data Visualization
Exploratory DataAnalysis:John Tukey寫於1977年的經典老教材,是這一領域的開山之作。如今EDA已經是統計學里的重要一支,但當時還是有很多人對他的工作不屑一顧。可他愛數據,堅信數據可以以一種出人意料的方式呈現出來。正是他的努力,讓數據可視化成為一門無比迷人的技術。但這本書不推薦閱讀了,內容略過時。要想完整地了解EDA,推薦下一本:
ExploratoryData Analysis with MATLAB:這本書雖然標題帶了個MATLAB,但實際上內容幾乎沒怎麼講MATLAB,只是每講一個方法的時候就列出對應的MATALB函數。這本書的重要之處在於,這是我讀過的講EDA最系統的一本書,除了對visualization有不輸於John Tucky的講解外,對於高維的數據集,通過怎樣的方法才能讓我們從中找到潛在的pattern,這本書也做了詳盡的講解。全書所以案例都有對應的MATALB代碼,而且還提供了GUI(圖形用戶界面)。所以這本書學起來還是相當輕松愉悅的。
VisualizeThis:中譯本叫「鮮活的數據」,作者是個「超級數據迷」,建立了一個叫http://flowingdata.com的網頁展示他的數據可視化作品,這本書告訴你該選擇什麼樣的可視化工具,然後告訴你怎樣visualize關系型數據、時間序列、空間數據等,最後你就可以用數據講故事了。如果你只想感受一下數據可視化是個什麼,可以直接點開下面這個鏈接感受下吧!A tour through the visualization zoo(A TourThrough the Visualization Zoo)
Machine Learning & Data Mining
這一塊就不多說了,不是因為它不重要,而是因為它太太太重要。所以這一部分就推兩本書,都是」世界名著「,都比較難讀,需要一點點地啃。這兩本書拿下,基本就算是登堂入室了。其實作為機器學習的延伸和深化,概率圖模型(PGM)和深度學習(deep learning)同樣值得研究,特別是後者現在簡直火得不得了。但PGM偏難,啃K.Daphne那本大作實在太燒腦,也沒必要,而且在數據領域的應用也不算很廣。deep learning目前工業界的步子邁得比學術界的大,各個domain的應用如火如荼,但要有公認的好教材問世則還需時日,所以PGM和deep learning這兩塊就不薦書了。
TheElement of Statistical Learning:要學機器學習,如果讓我只推薦一本書,我就推薦這本巨著。Hastie、Tibshirani、Friedman這三位大牛寫書寫得太用心了,大廈建得夠高夠大,結構也非常嚴謹,而且很有前瞻性,納入了很多前沿的內容,而不僅僅是一部綜述性的教材。(圖表也做得非常漂亮,應該是用R語言的ggplot2做的。)這本書注重講解模型和演算法本身,所以需要具備比較扎實的數理基礎,啃起這本書來才不會太吃力。事實上掌握模型和演算法的原理非常重要。機器學習(統計學習)的庫現在已經非常豐富,即使你沒有完全搞懂某個模型或演算法的原理和過程,只要會用那幾個庫,機器學習也能做得下去。但你會發現你把數據代進去,效果永遠都不好。但是,當你透徹地理解了模型和演算法本身,你再調用那幾個庫的時候,心情是完全不一樣的,效果也不一樣。
DataMining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 數據挖掘的教材汗牛充棟,之所以推薦這本韓家煒爺爺的,是因為雖然他這本書的出發點是應用,但原理上的內容也一點沒有落下,內容非常完整。而且緊跟時代,更新的很快,我看過的是第二版,就已經加進去了social network analysis這種當時的前沿內容。現在已經有第三版了,我還沒看過,但應該也加入了不少新內容。其實這本書並不難讀,只是篇幅較長,啃起來比較耗時。
其實這兩本書里單拎出來一塊內容可能又是幾本書的節奏,比如bayesian方法,再拿出兩三本書來講也不為過,我個人用到的比較多,而且也確實有不少好書。但並非是所有data scientist都要用到,所以這一塊就不再細說。
還有一些印象比較深刻的書:
Big DataGlossary: 主要講解大數據處理技術及工具,內容涵蓋了NoSQL,MapRece,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。
Mining ofMassive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapRece的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。
DevelopingAnalytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapRece在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用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=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=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(可選): MapRece是當前最著名也是運用最廣泛的分布式計算框架,由Google建立。Hadoop/Spark/storm都是基於MapRece的框架建立起來的分布式計算系統,要說他們之間的區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。一言以蔽之,如果數據是離線的,如果數據比較復雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果數據是在線的實時的流數據,就Storm。
OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。
Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。
Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長復雜網路的可視化。
來自知乎
以上是小編為大家分享的關於怎樣進行大數據的入門級學習?的相關內容,更多信息可以關注環球青藤分享更多干貨
Ⅵ 大數據培訓需要多久啊出來就可以就業了嗎
大部分的培訓時間在四個月時間,要想就業前提必須把技術學到手,能熟練掌握,找工作就不是問題,目前大數據是發展趨勢。
Ⅶ 數據分析師需要具備的能力
數學知識
對於初級數據分析師來說,則需要了解統計相關的基礎性內容,公式計算,統計模型等。當你獲得一份數據集時,需要先進行了解數據集的質量,進行描述統計。
而對於高級數據分析師,必須具備統計模型的能力,線性代數也要有一定的了解。
分析工具
對於分析工具,SQL 是必須會的,還有要熟悉Excel數據透視表和公式的使用,另外,還要學會一個統計分析工具,SAS作為入門是比較好的,VBA 基本必備,SPSS/SAS/R 至少要熟練使用其中之一,其他分析工具(如 Matlab)可以視情況而定。
編程語言
數據分析領域最熱門的兩大語言是 R 和 Python。涉及各類統計函數和工具的調用,R無疑有優勢。但是大數據量的處理力不足,學習曲線比較陡峭。Python 適用性強,可以將分析的過程腳本化。所以,如果你想在這一領域有所發展,學習 Python 也是相當有必要的。
當然其他編程語言也是需要掌握的。要有獨立把數據化為己用的能力, 這其中SQL 是最基本的,你必須會用 SQL 查詢數據、會快速寫程序分析數據。當然,編程技術不需要達到軟體工程師的水平。要想更深入的分析問題你可能還會用到:Exploratory analysis skills、Optimization、Simulation、Machine Learning、Data Mining、Modeling 等。
業務理解
對業務的理解是數據分析師工作的基礎,數據的獲取方案、指標的選取、還有最終結論的洞察,都依賴於數據分析師對業務本身的理解。
對於初級數據分析師,主要工作是提取數據和做一些簡單圖表,以及少量的洞察結論,擁有對業務的基本了解就可以。對於高級數據分析師,需要對業務有較為深入的了解,能夠基於數據,提煉出有效觀點,對實際業務能有所幫助。對於數據挖掘工程師,對業務有基本了解就可以,重點還是需要放在發揮自己的技術能力上。
邏輯思維
對於初級數據分析師,邏輯思維主要體現在數據分析過程中每一步都有目的性,知道自己需要用什麼樣的手段,達到什麼樣的目標。對於高級數據分析師,邏輯思維主要體現在搭建完整有效的分析框架,了解分析對象之間的關聯關系,清楚每一個指標變化的前因後果,會給業務帶來的影響。對於數據挖掘工程師,羅輯思維除了體現在和業務相關的分析工作上,還包括演算法邏輯,程序邏輯等,所以對邏輯思維的要求也是最高的。
數據可視化
數據可視化主要藉助於圖形化手段,清晰有效地傳達與溝通信息。聽起來很高大上,其實包括的范圍很廣,做個 PPT 里邊放上數據圖表也可以算是數據可視化。
對於初級數據分析師,能用 Excel 和 PPT 做出基本的圖表和報告,能清楚地展示數據,就達到目標了。對於稍高級的數據分析師,需要使用更有效的數據分析工具,根據實際需求做出或簡單或復雜,但適合受眾觀看的數據可視化內容。
協調溝通
數據分析師不僅需要具備破譯數據的能力,也經常被要求向項目經理和部門主管提供有關某些數據點的建議,所以,你需要有較強的交流能力。
對於高級數據分析師,需要開始獨立帶項目,或者和產品做一些合作,因此除了溝通能力以外,還需要一些項目協調能力。
Ⅷ 負責將數據從源數據搬到大數據系統的是哪個環節
大數據工具不應該破壞現有的數據倉庫環境。雖然大量低成本,甚至零成本的工具降低了准入門檻,它們構成了Hadoop的生態系統,支持其存儲和管理大量數據集的能力。很多原本居於商務智能和分析系統中心地位的企業數據倉庫收到沖擊。但是企業在數據倉庫中投入了很多資金、資源和時間,建立並完善數據倉庫的查詢、報表和分析功能。企業不願意這一切都付之東流。即便企業已經選擇在Hadoop或NoSQL資料庫上搭建新的商務智能和大數據分析架構,這也不是一朝一夕能夠完成的。通常,這種轉變還要以犧牲服務質量,甚至業務中斷為代價。
因此,大多數企業都會選擇集成的方式,讓新舊系統技術協同工作。比如把基於Hadoop的客戶分析應用和現存客戶數據倉庫結合起來。來自於數據倉庫的客戶數據可以放到Hadoop應用程序里進行分析,分析結果在返回數據倉庫。
大數據關聯
集成的第一步是在數據倉庫和大數據平台間設置關聯。目前,大數據系統主要用於增強數據倉庫的能力,其數據存儲的成本要低於傳統數據倉庫。很多早期用戶還會在數據倉庫分析數據之前,採用Hadoop集群和NoSQL資料庫存儲數據。這些應用使用起來都很簡單,就像用Hadoop分布式文件系統(HDFS)存儲數據一樣,也可以通過Hive,HBase,Cassandra和其他NoSQL技術建立更復雜的關聯。
將這些工具和數據倉庫與商務智能框架結合起來需要關聯性和說明。可以使用應用程序界面為數據倉庫提供Hadoop和NoSQL系統的介面。另外,不少供應商都提供連接SQL資料庫和大數據系統的封閉的連接器,包括基於集成標準的ODBC(開放資料庫連接)和JDBC(Java資料庫連接)。對於不能適用於傳統關系模型的系統,可以用一個集成層將半結構化數據從原格式(比如YAML或JSON)轉到可被商務智能應用讀取的格式。
如果要集成更加緊密,還有其他的方法。例如,數據倉庫系統逐漸對MapRece功能開放,從而增強SQL語言,將Hadoop集群的分析處理和商務智能查詢結果結合起來。更一個例子是將Hadoop分析結果和數據倉庫結合起來,用來生成報表和分析。
大數據阻力
隨著大數據的不斷發展,對很多IT和數據倉庫團隊來說,集成不同的應用迫在眉睫。一種高度靈活的集成方案至關重要。
脫節的體系結構。一種典型的方法是試點項目或驗證概念,或測試早期產品應用,包括在自己孤立的環境中部署Hadoop或NoSQL系統。一個結構完整的集成方案必須把IT和數據架構與業務洞察力和設計結合起來,在混合型資料庫、商務智能和分析架構中部署多種層。
管理缺陷。大數據工具的開源本質往往會導致企業只重功能不重管理。隨著商業話大數據軟體的成熟,這種狀況會得以緩解。但現在仍要重視管理能力的提升。
技術短缺。擴大大數據集成面臨的最大的挑戰就在於使用Hadoop和NoSQL技術過程中產生的陡峭的學習曲線。畢竟在IT圈內,平行和分布式處理技術還很難懂,真正有開發和升級大數據應用經驗的人就更少了。內部培訓也許是速度最快、成本最低的方法。
在把Hadoop和NoSQL與數據倉庫環境集成的問題上,很多公司關心的不是可行性,而是時間。早作準備,可以對面臨的阻礙有一個良好的把握。對於不同的集成需求,企業需要構建可重復的解決流程,這才是項目的最終目標。
Ⅸ 怎樣進行大數據的入門級學習
記住學到這里可以作為你學大數據的一個節點。
Zookeeper:這是個萬金油,安裝Hadoop的HA的時候就會用到它,以後的Hbase也會用到它。它一般用來存放一些相互協作的信息,這些信息比較小一般不會超過1M,都是使用它的軟體對它有依賴,對於我們個人來講只需要把它安裝正確,讓它正常的run起來就可以了。
Mysql:我們學習完大數據的處理了,接下來學習學習小數據的處理工具mysql資料庫,因為一會裝hive的時候要用到,mysql需要掌握到什麼層度那?你能在Linux上把它安裝好,運行起來,會配置簡單的許可權,修改root的密碼,創建資料庫。這里主要的是學習SQL的語法,因為hive的語法和這個非常相似。
Sqoop:這個是用於把Mysql里的數據導入到Hadoop里的。當然你也可以不用這個,直接把Mysql數據表導出成文件再放到HDFS上也是一樣的,當然生產環境中使用要注意Mysql的壓力。
Hive:這個東西對於會SQL語法的來說就是神器,它能讓你處理大數據變的很簡單,不會再費勁的編寫MapRece程序。有的人說Pig那?它和Pig差不多掌握一個就可以了。
Oozie:既然學會Hive了,我相信你一定需要這個東西,它可以幫你管理你的Hive或者MapRece、Spark腳本,還能檢查你的程序是否執行正確,出錯了給你發報警並能幫你重試程序,最重要的是還能幫你配置任務的依賴關系。我相信你一定會喜歡上它的,不然你看著那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺。
Hbase:這是Hadoop生態體系中的NOSQL資料庫,他的數據是按照key和value的形式存儲的並且key是唯一的,所以它能用來做數據的排重,它與MYSQL相比能存儲的數據量大很多。所以他常被用於大數據處理完成之後的存儲目的地。
Kafka:這是個比較好用的隊列工具,隊列是干嗎的?排隊買票你知道不?數據多了同樣也需要排隊處理,這樣與你協作的其它同學不會叫起來,你干嗎給我這么多的數據(比如好幾百G的文件)我怎麼處理得過來,你別怪他因為他不是搞大數據的,你可以跟他講我把數據放在隊列里你使用的時候一個個拿,這樣他就不在抱怨了馬上灰流流的去優化他的程序去了,因為處理不過來就是他的事情。而不是你給的問題。當然我們也可以利用這個工具來做線上實時數據的入庫或入HDFS,這時你可以與一個叫Flume的工具配合使用,它是專門用來提供對數據進行簡單處理,並寫到各種數據接受方(比如Kafka)的。
Spark:它是用來彌補基於MapRece處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。Java語言或者Scala都可以操作它,因為它們都是用JVM的。
Ⅹ 如何入門大數據
大數據
數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分布式計算,雲計算,信息可視化等技術或方法來對付數據。
但從狹義上來看,我認為數據科學就是解決三個問題:
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 introction 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講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。
Introction 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,MapRece,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。
Mining of Massive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapRece的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。
Developing Analytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapRece在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用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=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=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(可選): MapRece是當前最著名也是運用最廣泛的分布式計算框架,由Google建立。Hadoop/Spark/storm都是基於MapRece的框架建立起來的分布式計算系統,要說他們之間的區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。一言以蔽之,如果數據是離線的,如果數據比較復雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果數據是在線的實時的流數據,就Storm。
OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。
Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。
Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長復雜網路的可視化。