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