本書主要涉及數據工程、人工智能算法原理,大數據平臺技術、人工智能算法在大數據平臺上的實現、人工智能算法的應用于實踐。
第1章是大數據與人工智能的歷史、應用。第2章是數據工程。第三章是人工智能基礎算法的原理介紹。第四章是大數據平臺的介紹。第五章以第三章中的幾種算法為例子,介紹了它們是如何在大數據平臺上分布式實現的。第六章是當前熱門的深度學習技術的介紹。第七章是實踐。
本書針對1.對大數據和人工智能感興趣、希望快速了解和入門本領域知識的在讀本科生、研究生。2.希望從事大數據和人工智能崗位、需要快速提升理論基礎和實戰技能的求職者。3.計算機和互聯網領域,對人工智算法感興趣或工作中迫切需要一定本領域知識的工程師。
針對如何快速把握大數據與人工智能的精髓、避免陷入過多的數學細節推導的問題,以及人工智能算法和大數據平臺技術的結合問題,本書作者做出了不懈探索。一是選材上,不僅分別單獨講授人工智能和大數據,還突出兩者相結合的內容。二是內容上,突出淺顯易懂,繁雜的數學推導適當做減法,宏觀的介紹和實戰技能適當做加法。三是結構上,由淺入深,由宏觀到比較圍觀,由基礎知識到新技術,由理論到實踐。本書主要突出優點如下。
1.知識點覆蓋全。對大數據與人工智能領域的常用基礎技術、算法、模型均有介紹,保障讀者知識體系的完整性。而目前市場上相當同類書只涉及本領域其中的幾個問題,使讀者不能較好得從宏觀角度來體會大數據和人工智能的技術。
2.知識點覆蓋新。緊跟本領域zui新研究成果。尤其重點介紹了深度學習基礎知識及其應用。深度學習是當前人工智能領域的潮流和趨勢。目前市場上同類書對本領域新趨勢的關注明顯滯后。
3.知識點難易程度嚴格控制。有利于讀者構建完整、清晰的知識體系,抓住主干,避免鉆進個別牛角尖。許多同類書往往不能把做好難度控制,經常羅列大段生僻公式,使初學者喪失興趣,也使初學者忽視了主干知識的學習。
4.理論與實戰相結合。本書不僅介紹了理論知識,還注重問題建模、數據分析、算法實現、模型應用等實戰技能。主流的同類圖書基本以理論介紹為主,容易使讀者眼高手低,不能真正把知識用于實踐。
5.知識脈絡構建有特色。市場上同類圖書要么是只講人工智能算法,要么只講大數據工具平臺。本書認為,當前人工智能取得重要進展的zui根本原因是大數據,絕不能把兩者割裂開來。
姚海鵬,博士,北京郵電大學副教授,主要講授網絡大數據、物聯網、人工智能等課程,主要研究方向為未來網絡體系架構、網絡大數據、物聯網等。
1
第一章 緒論10
1.1日益增長的數據10
1.1.1大數據基本概念11
1.1.2大數據發展歷程11
1.1.3大數據的特征12
1.1.4大數據的基本認識13
1.2人工智能14
1.2.1認識人工智能14
1.2.2人工智能的派別與發展歷史14
1.2.3人工智能的現狀與應用14
1.2.3 當人工智能遇上大數據15
1.3 大數據與人工智能的機遇與挑戰16
1.3.1大數據與人工智能面臨的難題16
1.3.2大數據與人工智能的前景17
第二章 數據工程18
2.1數據的多樣性18
2.1.1數據格式的多樣性18
2.1.2數據來源的多樣性19
2.1.3數據用途的多樣性20
2.2數據工程的一般流程21
2.2.1 數據獲取21
2.2.2 數據存儲21
2.2.3 數據清洗21
2.2.4 數據建模21
2.2.5 數據處理22
2.3數據的獲取22
2.3.1數據來源23
2.3.2數據采集方法23
2.3.3 大數據采集平臺25
2.4數據的存儲與數據倉庫25
2.4.1數據存儲25
2.4.2數據倉庫26
2.5數據的預處理技術27
2.5.1 為什么要進行數據預處理27
2.5.2 數據清理28
2.5.3 數據集成29
2.5.4 數據變換30
2.5.5 數據規約30
2.6模型的構建與評估31
2.6.1模型的構建31
2.6.2評價指標31
2.7數據的可視化33
2.7.1 可視化的發展34
2.7.2 可視化工具34
第三章 機器學習算法41
3-1機器學習緒論41
3.1.1 機器學習基本概念41
3.1.2評價標準43
3.1.3 機器模型的數學基礎46
3-2決策樹理論50
3.2.1決策樹模型50
3.2.2 決策樹的訓練53
3.2.3 本節總結58
3.3 樸素貝葉斯理論59
3.4線性回歸63
3.5邏輯斯蒂回歸66
3.5.1二分類邏輯回歸模型66
3.5.2 二分類邏輯斯蒂回歸的訓練68
3.5.3 softmax分類器71
3.5.4邏輯斯蒂回歸和softmax的應用72
3.5.5本節總結72
3.6神經網絡73
3.6.1生物神經元和人工神經元73
3.6.2感知機75
3.6.3BP神經網絡77
3.6.4Sklearn中的神經網絡80
3.6.5本章小結81
3.6.6 拓展閱讀81
3.7支持向量機81
3.7.1 間隔82
3.7.2 支持向量機的原始形式84
3.7.3 支持向量機的對偶形式86
3.7.4特征空間的隱式映射:核函數87
3.7.5 支持向量機拓展90
3.7.6 支持向量機的應用90
3.8集成學習91
3.8.1 基礎概念91
3.8.2 Boosting94
3.8.3 Bagging98
3.8.4 Stacking99
3.9聚類100
3.9.1聚類思想100
3.9.2性能計算和距離計算100
3.9.3原型聚類:K-means101
3.9.4密度聚類:DBSCAN103
3.9.5層次聚類105
3.9.6Sklearn中的聚類105
3.9.7本章小結106
3.9.8拓展閱讀106
3.10降維與特征選擇106
3.10.1維數爆炸與降維106
3.10.2降維技術107
3.10.3特征選擇算法109
3.10.4 Sklearn中的降維112
3.10.5本章小結112
第四章 大數據框架113
4-1 Hadoop簡介113
4.1.1 Hadoop的由來113
4.1.2 MapReduce和HDFS114
4-2 Hadoop大數據處理框架115
4.2.1 HDFS組件與運行機制116
4.2.2 MapReduce組件與運行機制120
4.2.3 Yarn框架和運行機制122
4.2.4 Hadoop相關技術123
4-3 Hadoop安裝與部署124
4.3.1 安裝配置單機版Hadoop124
4.3.2 單機版WordCount程序128
4.3.3 安裝配置偽分布式Hadoop129
4-4 MapReduce編程135
4.4.1 MapReduce綜述136
4.4.2 Map階段136
4.4.3 shuffle階段137
4.4.4 Reduce階段138
4-5 HBase、Hive和Pig和簡介138
4.5.1 HBase簡介139
4.5.2 Hive簡介139
4.5.3 Pig簡介141
4-6 Spark簡介141
4.6.1 spark概述141
4.6.2 Spark基本概念142
4.6.3 spark生態系統143
4.6.4 spark組件與運行機制144
4-7 Spark安裝使用145
4.7.1 JDK安裝146
4.7.2 Scala安裝148
4.7.3 Spark安裝148
4.7.4 Winutils安裝148
4.7.5 使用Spark Shell149
4.7.6 Spark文件目錄151
4-8 Spark實例講解152
第五章 分布式數據挖掘算法153
5-1 K-Means聚類方法154
5.1.1 K-Means聚類算法簡介154
5.1.2 K-Means算法的分布式實現154
5-2 樸素貝葉斯分類算法160
5.2.1 樸素貝葉斯分類并行化設計思路160
5.2.2 樸素貝葉斯分類并行化實現161
5-3 頻繁項集挖掘算法166
5.3.1 Apriori頻繁項集挖掘算法簡介167
5.3.2 Apriori頻繁項集挖掘的并行化實現167
5-4參考資料172
第六章 深度學習簡介173
6-1從神經網絡到深度神經網絡173
6.1.1深度學習應用173
6.1.2 深度神經網絡的困難175
6-2卷積神經網絡CNN176
6.2.1卷積神經網絡的生物學基礎176
6.2.2卷積神經網絡結構177
6-3循環神經網絡RNN182
6.3.1循環神經網絡簡介182
6.3.2循環神經網絡結構182
第七章 數據分析實例185
7-1 基本數據分析185
7.1.1數據介紹185
7.1.2數據導入與數據初識185
7.1.3分類189
7.1.4 聚類191
7.1.5回歸192
7.1.6降維194
7.2深度學習項目實戰195
7.2.1 Tensorflow與keras安裝部署196
7.2.2使用卷積神經網絡進行手寫數字識別198
7.2.3使用LSTM進行文本情感分類201
附 錄206
A 矩陣基礎206
B 梯度下降209
牛頓法210
C 拉格朗日對偶性211
D python 語法知識213
E Java語法基礎介紹228