關于我們
書單推薦
新書推薦
|
大數(shù)據(jù)技術
本書從大數(shù)據(jù)分析角度入手, 首先介紹了不同的大數(shù)據(jù)處理模式與代表性的處理系統(tǒng), 其次對大數(shù)據(jù)分析所應用的數(shù)據(jù)挖掘、 機器學習的理論工具給予了介紹, 最后詳細介紹了典型的大數(shù)據(jù)技術IBM InfoSphere BigInsights。
本書由3篇共25章組成。 第1篇大數(shù)據(jù)系統(tǒng)基礎, 由第1章概述和第2章大數(shù)據(jù)基礎組成。 第2篇大數(shù)據(jù)分析理論基礎, 由第3章到第10章組成, 主要介紹了一些概率與統(tǒng)計方面的基礎知識、 數(shù)據(jù)挖掘的基本技術以及機器學習的常用概率化工具。 第3篇大數(shù)據(jù)技術, 由第11章到第25章組成, 全面介紹了IBM InfoSphere BigInsights各個組件和基本應用。
本書可作為高等學校大數(shù)據(jù)專業(yè)方向以及計算機科學技術、 軟件工程、 物聯(lián)網(wǎng)工程等信息科學技術類專業(yè)的本科教材, 也可作為相關專業(yè)的技術人員的參考資料。
信息時代, 大量的數(shù)據(jù)以前所未有的速度源源不斷地產(chǎn)生。 這是由于物聯(lián)網(wǎng)、 云計算以及智能設備的普及等方面信息技術的發(fā)展所致, 包括互聯(lián)網(wǎng)、 分布式系統(tǒng)等在內的各種信息系統(tǒng)以及運行在各種信息系統(tǒng)之上的多種應用系統(tǒng), 其所采集、 產(chǎn)生、 處理和存儲的數(shù)據(jù)全方位地服務于社會、 經(jīng)濟等各個層面。 這些數(shù)據(jù)以其量級巨大、 生成速度極快并且種類繁多的特點造就了現(xiàn)今人們所說的“大數(shù)據(jù)”。
“大數(shù)據(jù)”概念不是突然出現(xiàn)的, 而是信息技術發(fā)展的結果, 大數(shù)據(jù)是新信息技術的寶藏。
大數(shù)據(jù)中隱藏著巨大的機會和價值, 將給許多領域帶來變革性的發(fā)展, 因此大數(shù)據(jù)研究領域吸引了產(chǎn)業(yè)界、 政府和學術界的廣泛關注。 目前, 人們已意識到, 數(shù)據(jù)分析正日益成為信息經(jīng)濟的關鍵因素, 發(fā)現(xiàn)數(shù)據(jù)中新的內涵, 并提供個性化服務才能使企業(yè)處于經(jīng)濟競爭的有利地位。
相較于傳統(tǒng)的數(shù)據(jù), 人們將大數(shù)據(jù)的特征總結為5個“V”, 即體量大(Volume)、 速度快(Velocity)、 模態(tài)多(Variety)、 難辨識(Veracity)和價值密度低(Value)。 這五個特征都對信息技術帶來了巨大挑戰(zhàn), 同時也產(chǎn)生了應對這些挑戰(zhàn)的大數(shù)據(jù)系統(tǒng), 其中以Apache Hadoop為典型代表的技術架構, 以及數(shù)據(jù)挖掘和機器學習等人工智能技術在大數(shù)據(jù)方面的應用正在逐漸克服這些挑戰(zhàn)。 為了適應大數(shù)據(jù)發(fā)展, 深入研究大數(shù)據(jù)系統(tǒng)及其應用, 我們結合多年的科學研究成果編寫了本書。
從系統(tǒng)構成的角度來看, 可以將大數(shù)據(jù)系統(tǒng)分解為三個層次: 基礎設施層、 計算層和應用層, 這種分層結構對于大數(shù)據(jù)系統(tǒng)的分布式演進具有非常重要的意義。
1.本書的組成及各篇章內容簡介
本書由3篇共25章組成。 本書從大數(shù)據(jù)概念入手, 較為詳細地介紹了大數(shù)據(jù)系統(tǒng)的基本架構和大數(shù)據(jù)的層次, 介紹了大數(shù)據(jù)分析所要應用的理論工具, 以IBM InfoSphere BigInsights為主線介紹基于Apache Hadoop各生態(tài)系統(tǒng)的基本應用。
(1) 第1篇: 大數(shù)據(jù)系統(tǒng)基礎。
本篇由第1章概述和第2章大數(shù)據(jù)基礎組成。 第1章介紹了大數(shù)據(jù)特性, 給出了大數(shù)據(jù)的幾種定義并深入討論了大數(shù)據(jù)計算系統(tǒng)帶來的挑戰(zhàn), 以及大數(shù)據(jù)挖掘在多個領域的價值。 第2章介紹了大數(shù)據(jù)的基礎架構和層次, 大數(shù)據(jù)風險涉及的數(shù)據(jù)安全、 數(shù)據(jù)隱私、 安全成本等問題, 以及大數(shù)據(jù)的一些應用案例。
(2) 第2篇: 大數(shù)據(jù)分析理論基礎。
本篇由第3章到第10章組成, 主要介紹了一些概率與統(tǒng)計方面的基礎知識、 數(shù)據(jù)挖掘的基本技術以及機器學習的常用概率化工具。
第3章介紹了概率方面的基礎知識, 也介紹了隨機變量的變換、 蒙特卡洛逼近和信息論的基礎知識。
第4章著重介紹了數(shù)據(jù)挖掘的基本概念、 數(shù)據(jù)挖掘的對象以及數(shù)據(jù)挖掘系統(tǒng)的體系結構、 數(shù)據(jù)挖掘的功能與方法、 數(shù)據(jù)挖掘的過程, 還介紹了決策樹、 分類挖掘方法中的神經(jīng)網(wǎng)絡和統(tǒng)
計等方法。
第5章主要介紹了關聯(lián)挖掘與聚類的基本概念與基本方法, 包括關聯(lián)挖掘的基本方法、 基于劃分的聚類的kmeans方法、 基于層次的聚類的基本思想和算法。
第6章介紹了狄利克雷多項式模型, 其中包括似然度、 先驗分布、 后驗分布以及后驗預測分布; 還介紹了樸素貝葉斯分類器模型, 包括模型擬合和預測模型的應用等。
第7章介紹了機器學習中的一個非常重要的模型——高斯模型。 該模型是機器學習中的基本模型; 同時介紹了高斯判決分析, 主要包括二次判別分析、 線性判別分析(LDA)、 最大似然估計(MLE)的判決分析以及防止過擬合的策略等知識。 這些知識在機器學習中應用非常廣泛, 如在分類和聚類中都得到了廣泛應用。
第8章主要介紹了線性回歸中的規(guī)范模型、 最大似然估計、 魯棒線性回歸、 嶺回歸和貝葉斯線性回歸。 線性回歸是統(tǒng)計學和(監(jiān)督)機器學習的有力工具。 當以核函數(shù)或其他形式的基函數(shù)展開式進行擴展時, 它還可以對非線性關系進行建模。
第9章介紹了邏輯回歸模型的擬合, 其中包括最大似然估計(MLE)、 最速下降算法、 牛頓法、 迭代加權最小二乘法(IRLS)、 擬牛頓法(變尺度法), 還介紹了貝葉斯邏輯回歸、 在線學習及其隨機優(yōu)化方面的常用在線學習算法。
第10章討論了廣義線性模型, 常見的高斯、 伯努利、 均勻、 伽馬等分布大多被稱為指數(shù)函數(shù)簇的廣義分布類, 可以輕易地應用任一指數(shù)函數(shù)成員作為類的條件密度來建立生成分類器; 介紹了主成分分析與奇異值分解, 這對高維數(shù)據(jù)的降維與低維重構是非常重要的。
(3) 第3篇: 大數(shù)據(jù)技術。
本篇是本書需要重點學習的部分, 由第11章到第25章組成。 本篇以IBM InfoSphere BigInsights為主線, 全面介紹Hadoop的主要組件。 這些組件包括分布式文件系統(tǒng)(HDFS), Hadoop的編程模型MapReduce, 大數(shù)據(jù)查詢語言JAQL, 大數(shù)據(jù)倉庫Hive與HBase, MapReduce編碼的更高級別的編程環(huán)境Pig, Hadoop與結構化數(shù)據(jù)存儲間傳送批量數(shù)據(jù)的工具Sqoop, 旨在收集、 匯總與將來自不同源的日志數(shù)據(jù)移動到中央位置的一種分布式系統(tǒng)Flume, 管理Hadoop工作流的工具Oozie, 用于管理集群同步的工具ZooKeeper, 以及Hadoop的機器學習組件Mahout。
第11章詳細地介紹了Hadoop的基礎知識, 還介紹了Hadoop的安裝與部署。 由于本書是在IBM InfoSphere BigInsights環(huán)境中學習大數(shù)據(jù)技術的, 因此其需要在Linux環(huán)境下安裝、 部署和使用。 通過對Hadoop基礎知識的學習與掌握, 為進一步學習與深入應用大數(shù)據(jù)技術奠定良好的基礎。
第12章介紹了大數(shù)據(jù)系統(tǒng)中的一個主要系統(tǒng)——InfoSphere BigInsights, 它是基于Hadoop開源代碼而開發(fā)的, 可以幫助企業(yè)和機構理解與分析大量的非結構化信息, 可以在常用的低成本硬件上并行運行。
第13章介紹了Hadoop HDFS的架構、 Hadoop的文件塊、 常用的HDFS文件命令基本操作。
第14章介紹了NoSQL的概念與特點, 還介紹了MongoDB及其在Windows系統(tǒng)上的安裝和簡單的操作與命令。 NoSQL是消除了標準化的SQL的應用, NoSQL數(shù)據(jù)庫和管理系統(tǒng)無關, 是無模式的數(shù)據(jù)庫, 而且它不是基于單一模型的, 每個數(shù)據(jù)庫根據(jù)其目標功能不同而采用不同模型。 MongoDB是一個跨平臺、 面向文檔的數(shù)據(jù)庫, 具有高性能、 高可用性和簡單的可伸縮性。
第15章介紹了面向列的HBase數(shù)據(jù)庫, 還介紹了具有高可擴展性的Cassandra的數(shù)據(jù)庫及其安裝與基本操作。 Cassandra提供了一個Cassandra查詢語言Shell(cqlsh), 允許用戶與它進行溝通。 應用cqlsh, 可以進行定義模式、 插入數(shù)據(jù), 并且執(zhí)行查詢。
第16章介紹了MapReduce的工作原理及其在終端和Web控制臺上的運行。 同時較為詳細地介紹了MapReduce的編程原理, 給出了一個電影推薦數(shù)據(jù)的MapReduce處理。 MapReduce是一個編程模型和相關實現(xiàn), 用于集群上以并行、 分布式算法處理和生成的大型數(shù)據(jù)集。 一般來說, MapReduce程序處理三個階段的數(shù)據(jù): map、 shuffle和reduce。
第17章介紹了JAQL和JAQL訪問JSON的數(shù)組和記錄。 JAQL是JavaScript Object Notation或JSON查詢語言。 JAQL為用戶提供簡單的聲明性的語法來處理大型結構化和非傳統(tǒng)的數(shù)據(jù), 可以使用JAQL在分布式文件系統(tǒng)中執(zhí)行諸如選擇、 過濾、 聯(lián)合和分組數(shù)據(jù)等操作。 另外, JAQL還允許在表達式中編寫和應用用戶定義的函數(shù)。 對于并行功能, JAQL重新編寫了高級查詢以便進行低層MapReduce作業(yè)的操作。
第18章介紹了Hive架構與工作流、 數(shù)據(jù)模型、 構件及數(shù)據(jù)文件格式。 Hive是Hadoop數(shù)據(jù)倉庫, Hive支持類似于SQL的聲明性語言HiveQL所表達的查詢。 這些語言被編譯進用Hadoop執(zhí)行的MapReduce作業(yè)。 Hive數(shù)據(jù)模型包含數(shù)據(jù)庫(Databases)、 表(Tables)、 分區(qū)(Partitions)和儲桶或聚類(Buckets或Clusters)這些組件。 Hive數(shù)據(jù)文件格式主要有RCFile和ORCFile, 這些格式可以有效地提升Hadoop中數(shù)據(jù)存儲和訪問關系數(shù)據(jù)的性能。
第19章介紹了Pig編程語言和Pig基本應用。 Pig是一種高級編程語言, 用于分析大型數(shù)據(jù)集。 Pig由Pig Latin編程語言和運行環(huán)境兩個組件構成。 Pig有兩個執(zhí)行模式: 本地模式和MapReduce模式。 在本地模式中, Pig運行在單個的JVM上并使用本地文件系統(tǒng), 這個模式僅適合于用Pig分析小數(shù)據(jù)集; 在MapReduce模式下, 將Pig Latin編寫的查詢轉換為MapReduce作業(yè), 在Hadoop集群上運行。
第20章介紹了BigSheets的界面, 給出了7個練習, 使讀者能夠熟練掌握BigSheets的基本應用。 BigSheets使用了類似電子表格的界面, 可以建模、 過濾、 合并和統(tǒng)計從多個源頭采集的數(shù)據(jù)。
第21章主要介紹了Big SQL框架、 Big SQL的基本應用、 Big SQL命令行界面(JSqsh)的使用, 使用Eclipse處理Big SQL, 創(chuàng)建項目和SQL腳本文件, 創(chuàng)建并執(zhí)行查詢, 查詢Big SQL數(shù)據(jù)與從BigSheets導出的數(shù)據(jù)以及處理非傳統(tǒng)數(shù)據(jù)。 Big SQL表可以包含復雜的數(shù)據(jù)類型, 如結構和數(shù)組, 此外, 還有幾個基礎存儲支持機制, 包括分隔文件、 序列文件格式的Hive表、 RCFile格式等。
第22章介紹了Hadoop中的Sqoop, 它主要用于從Teradata、 Oracle等數(shù)據(jù)庫中提取結構化數(shù)據(jù)。 Sqoop旨在支持從結構化數(shù)據(jù)存儲系統(tǒng)向HDFS批量導入數(shù)據(jù)。 Sqoop是基于連接器架構的, 該架構支持插件以此提供與新的外部系統(tǒng)連接, 數(shù)據(jù)倉庫連接器、 文檔系統(tǒng)連接器和關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)連接器分別從數(shù)據(jù)倉庫、 文檔系統(tǒng)和RDBMS中導入/導出數(shù)據(jù)。
第23章介紹了Flume的流與源、 Flume的基本架構與代理。 Flume是一個工具/服務器/數(shù)據(jù)采集機制, 可用于收集匯總并將大量的流數(shù)據(jù)從各種源傳輸?shù)郊惺降臄?shù)據(jù)存儲區(qū)。 Flume具有不同級別的可靠性, 即使在多個節(jié)點發(fā)生故障的情況下也可保證交付。 Flume在源與接收器間傳送數(shù)據(jù)。 Flume接收器包括HDFS和HBase。 Flume也可以用于傳輸事件數(shù)據(jù), 包括網(wǎng)絡流量數(shù)據(jù)、 社交媒體網(wǎng)站產(chǎn)生的數(shù)據(jù)和電子郵件信息等。
第24章首先簡要地介紹了R語言的特性以及Big R提供的功能, 其次介紹了R語言的一些基礎知識, 給出了一些編程示例。 R語言是功能強大的可視化圖形工具, 可用于業(yè)務分析、 科學研究、 商業(yè)智能、 軟件開發(fā)和統(tǒng)計報告等多種專業(yè)領域。
第25章簡要地介紹了Oozie、 ZooKeeper和Mahout, 給出了Mahout的幾個示例, 可以采用Mahout實現(xiàn)機器學習的常規(guī)應用。 Oozie是Hadoop的工作流調度程序, 它包含工作流引擎和協(xié)調器引擎兩個部分。 Oozie為不同類型的操作提供了支持。 ZooKeeper是一個開源的Apache項目, 它提供了集中化的基礎設施和服務, 能使跨集群進行同步。 ZooKeeper維護大集群環(huán)境中所需的公共對象。 Mahout是用于生成分布式或可擴展機器學習算法的免費實現(xiàn), 主要集中在協(xié)同過濾、 聚類和分類領域。 其中許多實現(xiàn)使用了Apache Hadoop平臺。
2. 教學建議
本書作為教材, 篇幅及內容較多, 需要較多的課時進行教學。 建議在實際教學中將本書的內容分為理論教學與實驗教學兩個方面進行, 其中理論教學課時為48(或32)學時, 實驗教學為48學時, 共計96(或80)學時。
在教學中可以根據(jù)具體的教學目標對本書的內容予以篩選, 如開設了“數(shù)據(jù)挖掘”“機器學習”以及“模式識別”課程的專業(yè)可以跳過第2篇, 僅將第2篇作為這些課程的參考內容來擴展學生的知識面。 對于沒有開設上述課程的專業(yè), 教師在具體教學中可簡單地講授第2篇的基本概念和重要結論, 具體數(shù)學推導可以跳過。
本書中有大量的操作, 并提供了這些操作的代碼與示例運行結果的界面。 示例代碼用方
框包圍起來, 代碼也出現(xiàn)在了界面截圖上, 在應用這些代碼進行驗證時, 請將兩者結合起來一同使用。
本書可作為高等學校大數(shù)據(jù)專業(yè)方向以及計算機科學技術、 軟件工程、 物聯(lián)網(wǎng)工程等信息科學技術類專業(yè)的本科教材, 也可作為從事相關專業(yè)的技術人員的參考資料。
本書由曾憲武統(tǒng)稿。 曾憲武編著了第1、 2篇, 第3篇中第13章到第24章; 包淑萍編著了第3篇中第11、 12、 25章。 本書中示例與代碼的編寫與調試工作由徐美嬌、 侯孝振、 倪振宇、 衣麗萍同學完成。 本書在編著過程中得到了青島科技大學物聯(lián)網(wǎng)工程教研室老師的大力協(xié)助, 也得到了西安電子科技大學出版社副總編毛紅兵老師的關懷與幫助, 在此表示衷心的感謝。
由于編著者的水平有限, 書中難免有不當之處, 敬請讀者給予批評指正!
第1篇 大數(shù)據(jù)系統(tǒng)基礎
第1章 概述 2
1.1 大數(shù)據(jù)發(fā)展現(xiàn)狀與歷史 2
1.1.1 國外發(fā)展現(xiàn)狀 2
1.1.2 國內發(fā)展現(xiàn)狀 3
1.1.3 大數(shù)據(jù)發(fā)展歷史 4
1.2 大數(shù)據(jù)定義 5
1.3 大數(shù)據(jù)應用 6
1.4 大數(shù)據(jù)挑戰(zhàn) 7
1.5 大數(shù)據(jù)機器學習 9
1.5.1 數(shù)據(jù)流學習 9
1.5.2 深度學習 9
1.5.3 增量學習和集成學習 10
1.5.4 粒度計算 11
1.6 大數(shù)據(jù)與Hadoop生態(tài)系統(tǒng) 11
1.6.1 數(shù)據(jù)存儲層——HDFS和HBase 12
1.6.2 數(shù)據(jù)處理層 13
1.6.3 數(shù)據(jù)查詢層——Pig、 JAQL和Hive 14
1.6.4 數(shù)據(jù)訪問層——數(shù)據(jù)提。⊿qoop、 Flume和Chukwa) 15
1.6.5 數(shù)據(jù)流——Storm和Spark 17
1.6.6 存儲管理——HCatalog 18
1.6.7 數(shù)據(jù)分析 19
1.6.8 管理層——協(xié)同與工作流(ZooKeeper、 Avro和Oozie) 20
1.6.9 管理層——系統(tǒng)部署(Ambari、 Whirr、 BigTop和Hue) 21
1.7 Hadoop的發(fā)行版本 22
1.7.1 IBM InfoSphere BigInsights 22
1.7.2 Cloudera 22
1.7.3 Hortonworks數(shù)據(jù)平臺 23
1.7.4 Amazon Elastic MapReduce 23
1.7.5 MapR 24
1.7.6 GreenPlum’s Pivotal HD 24
1.7.7 Oracle大數(shù)據(jù)設備 24
1.7.8 Windows Azure HDInsight 24
小結 25
思考與練習題 25
第2章 大數(shù)據(jù)基礎 26
2.1 大數(shù)據(jù)架構的演進及其層次 26
2.2 數(shù)據(jù)生成 27
2.2.1 數(shù)據(jù)源 28
2.2.2 數(shù)據(jù)屬性 29
2.3 大數(shù)據(jù)類型概述 29
2.3.1 大數(shù)據(jù)類型 29
2.3.2 非結構化數(shù)據(jù)典型例子 30
2.4 數(shù)據(jù)獲取 30
2.4.1 數(shù)據(jù)采集與數(shù)據(jù)傳輸 31
2.4.2 數(shù)據(jù)預處理 33
2.5 數(shù)據(jù)存儲 34
2.5.1 云計算 34
2.5.2 數(shù)據(jù)管理框架 35
2.6 數(shù)據(jù)分析 38
2.6.1 數(shù)據(jù)分析的目的和分類 38
2.6.2 常用的數(shù)據(jù)分析方法 39
2.7 大數(shù)據(jù)分析 40
2.7.1 結構化數(shù)據(jù)分析 40
2.7.2 文本分析 40
2.7.3 Web數(shù)據(jù)分析 41
2.7.4 多媒體數(shù)據(jù)分析 42
2.7.5 社交網(wǎng)絡數(shù)據(jù)分析 42
2.7.6 移動數(shù)據(jù)分析 44
2.7.7 移動商業(yè)智能 44
小結 45
思考與練習題 45
第2篇 大數(shù)據(jù)分析理論基礎
第3章 概率與統(tǒng)計概要 48
3.1 概率論簡介 48
3.1.1 離散隨機變量 48
3.1.2 基本規(guī)則 48
3.1.3 貝葉斯法則 49
3.1.4 獨立和條件獨立 50
3.1.5 連續(xù)隨機變量 50
3.1.6 分位數(shù) 51
3.1.7 均值與方差 51
3.2 常用的離散分布 52
3.2.1 二項式分布與伯努利分布 52
3.2.2 多項式分布與Multinoulli分布 52
3.2.3 泊松分布 53
3.2.4 經(jīng)驗分布 53
3.3 常見的連續(xù)分布 54
3.3.1 高斯(正態(tài))分布 54
3.3.2 退化概率密度函數(shù) 54
3.3.3 拉普拉斯分布 55
3.3.4 伽馬分布 55
3.3.5 貝塔分布 56
3.3.6 帕累托分布 56
3.4 聯(lián)合概率分布 57
3.4.1 協(xié)方差與相關 57
3.4.2 多變量高斯分布 58
3.4.3 多變量的t分布 58
3.4.4 狄利克雷分布 58
3.5 隨機變量的變換 59
3.5.1 線性變換 59
3.5.2 通用變換 59
3.5.3 中心極限定理 61
3.6 蒙特卡洛逼近 61
3.6.1 MC方法 62
3.6.2 圓周率的蒙特卡洛積分估計 62
3.6.3 蒙特卡洛逼近的精度 62
小結 63
思考與練習題 63
第4章 數(shù)據(jù)挖掘基礎 66
4.1 數(shù)據(jù)挖掘的基本概念 66
4.1.1 數(shù)據(jù)挖掘的含義 66
4.1.2 數(shù)據(jù)挖掘對象 67
4.1.3 數(shù)據(jù)挖掘系統(tǒng)的體系結構 68
4.2 數(shù)據(jù)挖掘的功能與方法 69
4.2.1 數(shù)據(jù)挖掘的功能 69
4.2.2 數(shù)據(jù)挖掘的過程 72
4.3 決策樹 74
4.3.1 基本概念 74
4.3.2 決策樹的算法與工作流程 75
4.4 分類挖掘 76
4.4.1 貝葉斯分類與樸素貝葉斯分類 76
4.4.2 k近鄰方法 77
小結 78
思考與練習題 78
第5章 關聯(lián)挖掘與聚類 79
5.1 關聯(lián)挖掘 79
5.1.1 基本概念 79
5.1.2 關聯(lián)挖掘問題、 類型與基本方法 80
5.2 聚類 81
5.2.1 聚類的基本概念 81
5.2.2 基于劃分的聚類 85
5.2.3 基于層次的聚類 86
小結 87
思考與練習題 88
第6章 離散數(shù)據(jù)的生成模型 89
6.1 貝塔二項式模型 89
6.1.1 似然度 89
6.1.2 先驗分布 89
6.1.3 后驗分布 90
6.1.4 后驗預測分布 91
6.2 狄利克雷多項式模型 91
6.2.1 似然度 91
6.2.2 先驗分布 92
6.2.3 后驗分布 92
6.2.4 后驗預測分布 93
6.3 樸素貝葉斯分類器 93
6.3.1 模型擬合 93
6.3.2 預測模型的應用 94
小結 95
思考與練習題 95
第7章 高斯模型 97
7.1 高斯模型基礎 97
7.2 高斯判決分析 99
7.3 聯(lián)合高斯分布的推理 103
7.4 線性高斯系統(tǒng) 107
7.5 MVN的參數(shù)推斷 110
7.5.1 μ的后驗分布 110
7.5.2 Σ的后驗分布 111
7.5.3 μ與Σ的后驗分布 112
小結 116
思考與練習題 116
第8章 線性回歸 119
8.1 規(guī)范模型 119
8.2 最大似然估計(最小平方) 119
8.3 魯棒線性回歸 121
8.4 嶺回歸 123
8.5 貝葉斯線性回歸 125
8.5.1 后驗分布計算 125
8.5.2 后驗預測計算 126
8.5.3 σ2未知時的貝葉斯推理 126
小結 128
思考與練習題 128
第9章 邏輯回歸 132
9.1 規(guī)范模型 132
9.2 模型擬合 132
9.2.1 MLE 133
9.2.2 最速下降 133
9.2.3 牛頓法 135
9.2.4 迭代加權最小二乘法(IRLS) 135
9.2.5 擬牛頓法(變尺度法) 136
9.2.6 正則化 137
9.2.7 多類邏輯回歸 137
9.3 貝葉斯邏輯回歸 139
9.3.1 拉普拉斯逼近 139
9.3.2 BIC推導 140
9.3.3 邏輯回歸的高斯逼近 140
9.3.4 后驗預測逼近 141
9.3.5 殘差分析(異常值檢測) 144
9.4 在線學習與隨機優(yōu)化 144
9.4.1 在線學習與遺憾最小化 145
9.4.2 隨機優(yōu)化與風險最小化 145
9.4.3 LMS算法 147
9.4.4 感知算法 147
9.4.5 貝葉斯觀點 148
小結 148
思考與練習題 149
第10章 廣義線性模型與指數(shù)函數(shù)簇 151
10.1 指數(shù)函數(shù)簇 151
10.1.1 定義 151
10.1.2 對數(shù)配分函數(shù) 153
10.1.3 指數(shù)函數(shù)簇的MLE 154
10.1.4 指數(shù)函數(shù)簇的貝葉斯分析 155
10.1.5 指數(shù)函數(shù)簇的最大熵推導 157
10.2 廣義線性模型(GLMs) 158
10.2.1 基礎知識 158
10.2.2 ML和MAP估計 160
10.3 概率回歸 160
10.4 排序學習 162
10.4.1 逐點的方法 163
10.4.2 成對法 163
10.4.3 成列法 164
10.4.4 排序的損失函數(shù) 165
10.5 主成分分析(PCA)與奇異值分解 166
10.5.1 主成分分析 166
10.5.2 奇異值分解 169
小結 170
思考與練習 171
第3篇 大數(shù)據(jù)技術
第11章 Hadoop基礎 174
11.1 大數(shù)據(jù)與Hadoop 174
11.2 Hadoop框架的主要組件 175
11.3 用Hadoop分析大數(shù)據(jù) 176
11.4 Hadoop分布式文件系統(tǒng)與集群 179
11.4.1 HDFS 179
11.4.2 Hadoop集群 180
11.5 通用并行文件系統(tǒng)(IBM GPFS) 181
11.6 MapReduce引擎——JobTracker與TaskTracker 182
11.7 Hadoop的云端托管 183
11.8 Hadoop的工作階段與安裝部署 184
11.8.1 工作階段 184
11.8.2 安裝部署 184
11.8.3 常用模式安裝 186
小結 192
思考與練習題 193
第12章 IBM InfoSphere BigInsights 194
12.1 IBM InfoSphere BigInsights簡介與環(huán)境 194
12.1.1 幾個角色 194
12.1.2 參考架構 196
12.2 生產(chǎn)環(huán)境的硬件規(guī)格及加速器 200
12.2.1 硬件要求 200
12.2.2 IBM大數(shù)據(jù)加速器 200
12.3 管理大數(shù)據(jù)環(huán)境——概述與入門練習 202
小結 212
思考與練習題 213
第13章 Hadoop分布式文件系統(tǒng) 214
13.1 Hadoop分布式文件系統(tǒng)(HDFS)基本知識及架構 214
13.1.1 NameNode 215
13.1.2 DataNode與輔助NameNode 215
13.1.3 JobTracker與TaskTracker 217
13.2 其他文件系統(tǒng)與Hadoop的文件塊 217
13.3 HDFS文件命令 218
13.4 Hadoop分布式文件系統(tǒng)的基本操作 222
13.4.1 初步操作 222
13.4.2 Hadoop分布式文件系統(tǒng)的終端操作與行命令界面 224
13.4.3 Hadoop分布式文件系統(tǒng)的Web控制臺操作 230
小結 235
思考與練習題 235
第14章 NoSQL數(shù)據(jù)管理與MongoDB 236
14.1 NoSQL數(shù)據(jù)管理 236
14.1.1 文檔模型 236
14.1.2 鍵/值模型 238
14.1.3 列或寬列模型 238
14.1.4 圖存儲模型 239
14.2 一致性或最終一致性與NoSQL的優(yōu)點 240
14.3 MongoDB 242
14.3.1 MongoDB的基本概念 242
14.3.2 MongoDB的一致性和可用性 245
14.4 在Windows上安裝MongoDB 246
14.5 管道與MongoDB常用操作 247
14.5.1 MongoDB中的管道 247
14.5.2 副本在MongoDB中的工作 248
14.5.3 分拆 249
14.5.4 分拆轉儲MongoDB數(shù)據(jù) 250
小結 251
思考與練習題 252
第15章 HBase與Cassandra 253
15.1 HDFS與HBase 253
15.1.1 HBase簡介 253
15.1.2 HDFS與HBase的比較 254
15.1.3 HBase架構 254
15.1.4 HBase數(shù)據(jù)模型 255
15.1.5 HBase映射 256
15.2 Cassandra 259
15.2.1 Cassandra概要 259
15.2.2 Cassandra中的數(shù)據(jù)復制與組件 260
15.2.3 Cassandra查詢語言與數(shù)據(jù)模型 261
15.3 Cassandra安裝與操作 263
15.3.1 Cassandra預安裝設置 263
15.3.2 cqlsh啟動與命令 267
15.3.3 Cassandra文檔化Shell命令 269
小結 279
思考與練習題 280
第16章 MapReduce 281
16.1 MapReduce概要 281
16.2 MapReduce基本工作原理及應用 282
16.2.1 基本工作原理 282
16.2.2 MapReduce編程示例——電影推薦 284
16.2.3 MapReduce中JobTracker的運用 285
16.3 運行MapReduce程序 286
16.3.1 啟動FuleSystem(fs) Shell 286
16.3.2 在終端運行MapReduce程序 287
16.3.3 在Web控制臺上運行MapReduce程序 292
16.3.4 MapReduce的用戶界面 295
小結 297
思考與練習題 297
第17章 JAQL——基于JSON的查詢語言 298
17.1 概述 298
17.2 用JAQL訪問JSON的數(shù)組和記錄 299
17.2.1 設置與運行JAQL 299
17.2.2 JAQL的常見用法和語法 302
17.2.3 JAQL的輸入/輸出 305
17.2.4 常見的JAQL基本應用 306
實驗一 核心運算符的操作 324
實驗二 核心運算符的應用 325
小結 325
思考與練習題 336
第18章 Hive——Hadoop數(shù)據(jù)倉庫 327
18.1 概述 327
18.2 Hive構件及數(shù)據(jù)文件格式 330
18.2.1 Hive構件 330
18.2.2 Hive數(shù)據(jù)文件格式 331
18.3 用Hive訪問Hadoop數(shù)據(jù) 332
18.3.1 訪問Hive BeeLine 命令行界面(CLI) 333
18.3.2 使用Hive中的數(shù)據(jù)庫 333
18.4 Hive中的表 339
18.5 Hive運算符和函數(shù) 342
18.6 Hive DML 344
18.6.1 裝載數(shù)據(jù) 345
18.6.2 運行查詢 347
18.6.3 導出數(shù)據(jù) 352
18.6.4 EXPLAIN 354
18.7 使用Hive數(shù)據(jù)倉庫 354
18.7.1 Hive存儲格式 354
18.7.2 HiveQL——數(shù)據(jù)操作 362
18.7.3 查詢 365
18.7.4 Hive的內置函數(shù) 369
小結 370
思考與練習題 371
第19章 Pig——高級編程環(huán)境 372
19.1 概述 372
19.2 Pig編程語言 374
19.2.1 Pig編程步驟 374
19.2.2 Pig Latin 374
19.2.3 特殊數(shù)據(jù)類型 375
19.2.4 數(shù)據(jù)類型 377
19.3 Pig基本應用的驗證與練習 379
19.4 Pig關系運算符的驗證 384
19.5 Pig評估函數(shù)的驗證 386
19.6 Pig中的腳本格式與本地模式中的Pig 390
19.6.1 腳本格式 390
19.6.2 本地模式 391
19.6.3 Grunt Shell命令 394
19.6.4 Grunt Shell實用命令 394
小結 397
思考與練習題 398
第20章 BigSheets 399
20.1 創(chuàng)建InfoSphere BigInsights項目 400
20.2 通過創(chuàng)建子工作簿來裁剪數(shù)據(jù) 400
20.3 從兩個工作簿中組合數(shù)據(jù) 402
20.4 通過分組數(shù)據(jù)創(chuàng)建列 403
20.5 在BigSheets圖中查看數(shù)據(jù) 404
20.6 在圖表中可視化結果和優(yōu)化結果 404
20.7 從工作簿中導出數(shù)據(jù) 406
小結 407
思考與練習題 408
第21章 Big SQL——IBM NoSQL 409
21.1 概述 409
21.2 Big SQL的基本應用 411
21.2.1 啟動VMware鏡像 411
21.2.2 連接IBM Big SQL服務器 413
21.2.3 使用Big SQL命令行界面(JSqsh) 415
21.2.4 發(fā)送JSqsh命令以及進行Big SQL查詢 423
21.3 使用Eclipse處理Big SQL 428
21.3.1 啟動Web控制臺驗證BigInsights服務的開啟和運行 429
21.3.2 在Eclipse中創(chuàng)建一個Big SQL連接 230
21.4 創(chuàng)建項目和SQL腳本文件 435
21.5 創(chuàng)建并執(zhí)行查詢 438
21.6 查詢Big SQL的結構化數(shù)據(jù) 439
21.7 查詢Big SQL的數(shù)據(jù)與從BigSheets導出的數(shù)據(jù) 446
21.7.1 查詢Big SQL的數(shù)據(jù) 446
21.7.2 用Big SQL處理從BigSheets導出的數(shù)據(jù) 448
21.8 處理非傳統(tǒng)數(shù)據(jù) 449
21.8.1 注冊SerDe 450
21.8.2 創(chuàng)建、 填充以及查詢使用SerDe的表 450
小結 451
思考與練習題 452
第22章 Sqoop——從異構數(shù)據(jù)源導入數(shù)據(jù) 453
22.1 概述 453
22.2 導入表 455
22.3 導出 461
22.4 創(chuàng)建并維護Sqoop作業(yè) 462
22.5 Sqoop——Codegen工具 464
22.6 Sqoop——eval 465
22.7 Sqoop——數(shù)據(jù)庫清單 466
22.8 Sqoop——表清單 467
小結 467
思考與練習題 467
第23章 Flume——大數(shù)據(jù)實時流 469
23.1 概述 469
23.2 Apache Flume的流與源 470
23.2.1 Flume中的數(shù)據(jù)流 471
23.2.2 流/日志數(shù)據(jù) 471
23.3 Flume的基本架構與代理的其他組件 472
23.3.1 Flume的基本架構 472
23.3.2 Flume代理的其他組件 473
23.4 Apache Flume的環(huán)境 474
23.4.1 命名組件 474
23.4.2 Source、 Sink和Channel的描述 475
23.5 HDFS的put命令及其HDFS存在的問題 476
23.5.1 put命令 476
23.5.2 HDFS具有的問題 477
實驗 使用Flume將數(shù)據(jù)移動到HDFS中 477
小結 481
思考與練習題 482
第24章 R編程——可視化與圖形工具 483
24.1 概述 483
24.2 R語言入門 483
24.2.1 在Windows系統(tǒng)中安裝R語言 483
24.2.2 使用R語言進行數(shù)據(jù)圖表繪制 488
小結 497
思考與練習題 498
第25章 Hadoop的其他組件——Oozie、 ZooKeeper和Mahout 499
25.1 Hadoop工作流調度程序Oozie簡介 499
25.2 ZooKeeper——跨集群的同步化 500
25.2.1 Apache ZooKeeper簡介 500
25.2.2 ZooKeeper在Hadoop中的地位 501
25.2.3 分布式應用程序的挑戰(zhàn) 501
25.2.4 ZooKeeper的工作 502
25.2.5 ZooKeeper的益處與架構 502
25.2.6 分層命名空間 504
25.2.7 znode的類型、 會話與Watches(手表) 505
25.3 Mahout——Hadoop的機器學習 505
25.3.1 Apache Mahout簡介 505
25.3.2 Mahout的特點 506
25.3.3 Mahout的應用 507
25.3.4 Mahout中的機器學習 507
小結 511
思考與練習題 512
參考文獻 513
你還可能感興趣
我要評論
|