在巨大的數據集中進行篩選的*工具是什么?通過和數據駭客的交流,我們知道了他們用于硬核數據分析最喜歡的語言和工具包。以下是小編為你整理的怎么樣學習大數據 ?
在這些語言名單中,如果R語言排第二,那就沒其他能排*。自1997年以來,作為昂貴的統計軟件,如Matlab和SAS的免費替代品,它漸漸風靡全球。 ?
在過去的幾年時間中,R語言已經成為了數據科學的寵兒——數據科學現在不僅僅在書呆子一樣的統計學家中人盡皆知,而且也為華爾街交易員,生物學家,和硅谷開發者所家喻戶曉。各種行業的公司,例如Google,Facebook,美國銀行,以及紐約時報都使用R語言,R語言正在商業用途上持續蔓延和擴散。 ?
R語言有著簡單而明顯的吸引力。使用R語言,只需要短短的幾行代碼,你就可以在復雜的數據集中篩選,通過先進的建模函數處理數據,以及創建平整的圖形來代表數字。它被比喻為是Excel的一個極度活躍版本。
R語言最偉大的資本是已圍繞它開發的充滿活力的生態系統:R語言社區總是在不斷地添加新的軟件包和功能到它已經相當豐富的功能集中。據估計,超過200萬的人使用R語言,并且最近的一次投票表明,R語言是迄今為止在科學數據中*的語言,被61%的受訪者使用(其次是Python,39%)。 ?
此外,它的身影也漸漸出現在了華爾街。以前,銀行分析師會全神貫注于Excel文件直到深夜,但現在R語言被越來越多地用于金融建模R,特別是作為一種可視化工具,Niall O’Connor,美國銀行的副總裁如是說。 “R語言使我們平凡的表格與眾不同,”他說。 ?
R語言的日漸成熟,使得它成為了數據建模的*語言,雖然當企業需要生產大型產品時它的能力會變得有限,也有的人說這是因為它的地位正在被其他語言篡奪。 ?
“R更適合于做一個草圖和大概,而不是詳細的構建,”Michael Driscoll,Metamarkets的首席執行官說。 “你不會在谷歌的網頁排名以及Facebook的朋友推薦算法的核心找到R語言。工程師會用R語言做原型,然后移交給用Java或Python寫的模型。” ?
話說回來,早在2010年,Paul Butler就以R語言打造了全球的Facebook地圖而著名,這證明了該語言豐富的可視化功能。盡管他現在已經不像以前那樣頻繁地使用R語言了。 ?
“R正在一點點地過時,因為它的緩慢和處理大型數據集的笨重,”Butler說。 ?
大數據分析方法 ?
大數據挖掘:定義目標,并分析問題 ?
開始大數據處理前,應該定好處理數據的目標, ?
然后才能開始數據挖掘。 ?
例如: ?
統計最近三年的畢業生的各種情況。 ?
那么就應該把畢業生相關的信息都要搜集一遍下來。 ?
大數據挖掘:建立模型,采集數據 ?
可以通過網絡爬蟲,或者歷年的數據資料, ?
建立對應的數據挖掘模型,然后采集數據, ?
獲取到大量的原始數據。 ?
大數據挖掘:導入并準備數據 ?
在通過工具或者腳本,將原始轉換成可以處理的數據, ?
例如:MySQL,數據文本. ?
大數據分析算法:機器學習 ?
通過使用機器學習的方法, ?
處理采集到的數據。 ?
根據具體的問題來定。 ?
這里的方法就特別多。 ?
常見的方法有: ?
人工神經網絡 ?
隨機森林樹 ?
LMS算法 ?
HIVE(數據倉庫) ?
由facebook開源,最初用于解決海量結構化的日志數據統計問題。 ?
Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用于離線分析。 ?
HQL用于運行存儲在Hadoop上的查詢語句,Hive讓不熟悉MapReduce開發人員也能編寫數據查詢語句,然后這些語句被翻譯為Hadoop上面的MapReduce任務。
?
Pig(ad-hoc腳本) ?
由yahoo!開源,設計動機是提供一種基于MapReduce的ad-hoc(計算在query時發生)數據分析工具 ?
Pig定義了一種數據流語言—Pig Latin,它是MapReduce編程的復雜性的抽象,Pig平臺包括運行環境和用于分析Hadoop數據集的腳本語言(Pig Latin)。 ?
其編譯器將Pig Latin翻譯成MapReduce程序序列將腳本轉換為MapReduce任務在Hadoop上執行。通常用于進行離線分析。 ?
Sqoop(數據ETL/同步工具) ?
Sqoop是SQL-to-Hadoop的縮寫,主要用于傳統數據庫和Hadoop之前傳輸數據。數據的導入和導出本質上是Mapreduce程序,充分利用了MR的并行化和容錯性。 ?
Sqoop利用數據庫技術描述數據架構,用于在關系數據庫、數據倉庫和Hadoop之間轉移數據。 ?
大數據必備的數據結構與算法: ?
1. 數據結構和算法概述 ?
2. 數組、鏈表、隊列、棧等線性表 ?
3. 二叉樹、BST、AVL 樹及二叉樹的遞歸與非遞歸遍歷 ?
4. B+ ?
5. 跳表 ?
6. 圖、圖的存儲、圖的遍歷 ?
7. 有向圖、無向圖、懶惰與積極的普利姆算法、克魯斯卡爾算法及 MST、單源最短路徑問題及 Dijkstra 算法 ?
8. 并查集與索引式優先隊列、二叉堆 ?
9. 遺傳算法初步與 TSP 問題 ?
10. 內部排序(直接插入、選擇、希爾、堆排序、快排、歸并等)算法與實踐中的優化 ?
11. 外部排序與優化(文件編碼、數據編碼、I/O 方式與 JVM 特點、多線程、多路歸并等) ?
12. 哈希表、Trie 樹、倒排索引、分布式索引初步(Map-Reduce) ?