零基礎學大數據算法( 簡體 字) | |
作者:王宏志,林可 | 類別:1. -> 程式設計 -> 大數據 |
出版社:電子工業出版社 | 3dWoo書號: 44528 詢問書籍請說出此書號! 有庫存 NT售價: 295 元 |
出版日:6/1/2016 | |
頁數:268 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121289378 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1 篇 背景篇
第1 章 何謂大數據 4 1.1 身邊的大數據 4 1.2 大數據的特點和應用 6 第2 章 何謂算法 8 2.1 算法的定義 8 2.2 算法的分析 14 2.3 基礎數據結構——線性表 24 2.4 遞歸——以階乘為例 28 第3 章 何謂大數據算法 31 第2 篇 理論篇 第4 章 窺一斑而見全豹——亞線性算法 34 4.1 亞線性算法的定義 34 4.2 空間亞線性算法 35 4.2.1 水庫抽樣 35 4.2.2 數據流中的頻繁元素 37 4.3 時間亞線性計算算法 40 4.3.1 圖論基礎回顧 40 4.3.2 平面圖直徑 45 4.3.3 最小生成樹 46 4.4 時間亞線性判定算法 53 4.4.1 全0 數組的判定 53 4.4.2 數組有序的判定 55 第5 章 價錢與性能的平衡——磁盤算法 58 5.1 磁盤算法概述 58 5.2 外排序 62 5.3 外存數據結構——磁盤查找樹 71 5.3.1 二叉搜索樹回顧 71 5.3.2 外存數據結構——B 樹 78 5.3.3 高維外存查找結構——KD 樹 80 5.4 表排序 83 5.5 表排序的應用 86 5.5.1 歐拉回路技術 86 5.5.2 父子關系判定 87 5.5.3 前序計數 88 5.6 時間前向處理技術 90 5.7 縮圖法 98 第6 章 1+1>2——并行算法 103 6.1 MapReduce 初探 103 6.2 MapReduce 算法實例 106 6.2.1 字數統計 106 6.2.2 平均數計算 108 6.2.3 單詞共現矩陣計算 111 6.3 MapReduce 進階算法 115 6.3.1 join 操作 115 6.3.2 MapReduce 圖算法概述 122 6.3.3 基于路徑的圖算法 125 第7 章 超越MapReduce 的并行計算 131 7.1 MapReduce 平臺的局限 131 7.2 基于圖處理平臺的并行算法 136 7.2.1 概述 136 7.2.2 BSP 模型下的單源最短路徑 137 7.2.3 計算子圖同構 141 第8 章 眾人拾柴火焰高——眾包算法 144 8.1 眾包概述 144 8.1.1 眾包的定義 144 8.1.2 眾包應用舉例 146 8.1.3 眾包的特點 149 8.2 眾包算法例析 152 第3 篇 應用篇 第9 章 大數據中有黃金——數據挖掘 158 9.1 數據挖掘概述 158 9.2 數據挖掘的分類 159 9.3 聚類算法——k-means 160 9.4 分類算法——Naive Bayes 166 第10 章 推薦系統 170 10.1 推薦系統概述 170 10.2 基于內容的推薦方法 173 10.3 協同過濾模型 176 第4 篇 實踐篇 第11 章 磁盤算法實踐 186 第12 章 并行算法實踐 194 12.1 Hadoop MapReduce 實踐 194 12.1.1 環境搭建 194 12.1.2 配置Hadoop 201 12.1.3 “Hello World”程序—— WordCount 203 12.1.4 Hadoop 實踐案例——記錄去重 213 12.1.5 Hadoop 實踐案例——等值連接 216 12.1.6 多機配置 221 12.2 適于迭代并行計算的平臺——Spark 224 12.2.1 Spark 初探 224 12.2.2 單詞出現行計數 230 12.2.3 在Spark 上實現WordCount 236 12.2.4 在HDFS 上使用Spark 241 12.2.5 Spark 的核心操作——Transformation 和Action 244 12.2.6 Spark 實踐案例——PageRank 247 第13 章 眾包算法實踐 251 13.1 認識AMT 251 13.2 成為眾包工人 252 本書是通俗易懂的大數據算法教程。通篇采用師生對話的形式,旨在用通俗的語言、輕松的氣氛,幫助讀者理解大數據計算領域中的基礎算法和思想。本書由背景篇、理論篇、應用篇和實踐篇四部分組成。背景篇介紹大數據、算法、大數據算法等基本概念和背景;理論篇介紹解決大數據問題的亞線性算法、磁盤算法、并行算法、眾包算法的基本思想和理論知識;應用篇介紹與大數據問題息息相關的數據挖掘和推薦系統的相關知識;實踐篇從實際應用出發,引導讀者動手操作,幫助讀者通過實際程序和實驗驗證磁盤算法、并行算法和眾包算法。在講解每一個大數據問題之前,本書都會介紹大量的經典算法和基礎數據結構知識,不僅可以幫助學習過數據結構與算法、算法設計與分析等課程的同學復習,同時能夠讓入門的“小菜鳥”們,不會因為沒有學習過經典算法而對本書望而卻步,輕松地掌握大數據算法!
這是一個互聯網的時代,也是一個大數據的時代。經常有朋友問起:什么是大數據?大
數據是做什么用的?我們為什么要研究大數據?應該怎么研究大數據?在尋找這些問題的答案 時,許多朋友找到的內容常常是專業的概念、復雜的公式和難懂的“算法”,這讓他們望而卻步。 很多計算機專業的新生或低年級學生在聽到大數據的概念后對其非常好奇,卻因沒有足夠扎實 的專業基礎知識而無法認識和理解大數據問題,更無法對大數據問題給出很好的解決辦法。于 是,筆者決定編寫一本新生乃至非專業人士也能讀懂的大數據算法教程。 本書以一個計算機專業新生小可的口吻,將他內心對大數據的好奇一一詢問學識淵博的 Mr. 王。雖然書中的他不懂數據結構,也不懂經典算法的設計與分析,卻在Mr. 王的耐心教導 下一一突破了大數據背景下的亞線性算法、磁盤算法、并行算法、眾包算法,了解了數據挖掘 和推薦算法的基本思想,更是在Mr. 王的指導下完成了各種大數據算法的實現。在所有大數據 算法的講授中,本書無處不滲透著對各種經典算法的回顧,學過的讀者可以進行充分的復習, 沒有學過的讀者更是可以借此機會提前掌握各種經典數據結構和經典算法,使得其在今后的學 習中事半功倍。這些貫穿全書的前置知識,也使得新生甚至是非專業人士能夠通過本書讀懂大 數據,讀懂大數據算法。相信非專業人士也能通過大數據算法的思想,重新認識大數據,并獲 得一些啟迪。 本書前半部分主要以理論知識為主,文中涉及的偽代碼、算法等均以簡單易懂的自然語言 進行了步驟描述和解釋,同時給出了小規模運行的例子,使得讀者可以輕松地理解。同時,筆 者也深知理論與實踐相結合的重要性。后半部分包含一些讓讀者進行實踐的實驗和程序。這需 要具有一些基礎程序設計能力,如果讀者覺得不能很好地理解它們也不要心急,可以待學會這 些語言后,再來嘗試。即使并不完全理解這幾種語言的語法,也可以按照書中詳盡的步驟進行 實驗,體會成果出現在屏幕上的喜悅,其實嘗試之后就會發現,閱讀它們并不困難。 雖然本書氣氛輕松、語言活潑,但講授的知識和內容卻是非常“專業”的,“算法設計與分析” 是計算機學科的核心主題之一,計算機科學中所有問題的解決,都離不開算法設計與分析。本 書雖講解大數據,但無處不緊扣算法設計與分析這一要點,這也讓本書帶上了濃厚的計算機學 科的味道,讓讀者能夠在學習和認識大數據的過程中,學會算法設計與分析,為其他領域知識 的學習打下基礎。 本書亦算是大數據算法領域的“敲門磚”,本書可以引導讀者形成設計大數據算法的思維。 在閱讀本書之后,讀者可以帶著設計大數據算法的基本思想去閱讀更加深入的專著或論文,進 一步的閱讀必對大數據算法的學習大有裨益。 本書成書時間倉促,筆者水平亦有限,書中內容、表述、推理等方面的各種不當之處在所 難免,敬請各位讀者在閱讀過程中不吝提出寶貴意見。 |