本書主要涉及數(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)的。第六章是當(dāng)前熱門的深度學(xué)習(xí)技術(shù)的介紹。第七章是實踐。
本書針對1.對大數(shù)據(jù)和人工智能感興趣、希望快速了解和入門本領(lǐng)域知識的在讀本科生、研究生。2.希望從事大數(shù)據(jù)和人工智能崗位、需要快速提升理論基礎(chǔ)和實戰(zhàn)技能的求職者。3.計算機(jī)和互聯(lián)網(wǎng)領(lǐng)域,對人工智算法感興趣或工作中迫切需要一定本領(lǐng)域知識的工程師。
針對如何快速把握大數(shù)據(jù)與人工智能的精髓、避免陷入過多的數(shù)學(xué)細(xì)節(jié)推導(dǎo)的問題,以及人工智能算法和大數(shù)據(jù)平臺技術(shù)的結(jié)合問題,本書作者做出了不懈探索。一是選材上,不僅分別單獨講授人工智能和大數(shù)據(jù),還突出兩者相結(jié)合的內(nèi)容。二是內(nèi)容上,突出淺顯易懂,繁雜的數(shù)學(xué)推導(dǎo)適當(dāng)做減法,宏觀的介紹和實戰(zhàn)技能適當(dāng)做加法。三是結(jié)構(gòu)上,由淺入深,由宏觀到比較圍觀,由基礎(chǔ)知識到新技術(shù),由理論到實踐。本書主要突出優(yōu)點如下。
1.知識點覆蓋全。對大數(shù)據(jù)與人工智能領(lǐng)域的常用基礎(chǔ)技術(shù)、算法、模型均有介紹,保障讀者知識體系的完整性。而目前市場上相當(dāng)同類書只涉及本領(lǐng)域其中的幾個問題,使讀者不能較好得從宏觀角度來體會大數(shù)據(jù)和人工智能的技術(shù)。
2.知識點覆蓋新。緊跟本領(lǐng)域zui新研究成果。尤其重點介紹了深度學(xué)習(xí)基礎(chǔ)知識及其應(yīng)用。深度學(xué)習(xí)是當(dāng)前人工智能領(lǐng)域的潮流和趨勢。目前市場上同類書對本領(lǐng)域新趨勢的關(guān)注明顯滯后。
3.知識點難易程度嚴(yán)格控制。有利于讀者構(gòu)建完整、清晰的知識體系,抓住主干,避免鉆進(jìn)個別牛角尖。許多同類書往往不能把做好難度控制,經(jīng)常羅列大段生僻公式,使初學(xué)者喪失興趣,也使初學(xué)者忽視了主干知識的學(xué)習(xí)。
4.理論與實戰(zhàn)相結(jié)合。本書不僅介紹了理論知識,還注重問題建模、數(shù)據(jù)分析、算法實現(xiàn)、模型應(yīng)用等實戰(zhàn)技能。主流的同類圖書基本以理論介紹為主,容易使讀者眼高手低,不能真正把知識用于實踐。
5.知識脈絡(luò)構(gòu)建有特色。市場上同類圖書要么是只講人工智能算法,要么只講大數(shù)據(jù)工具平臺。本書認(rèn)為,當(dāng)前人工智能取得重要進(jìn)展的zui根本原因是大數(shù)據(jù),絕不能把兩者割裂開來。
姚海鵬,博士,北京郵電大學(xué)副教授,主要講授網(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ù)的基本認(rèn)識13
1.2人工智能14
1.2.1認(rèn)識人工智能14
1.2.2人工智能的派別與發(fā)展歷史14
1.2.3人工智能的現(xiàn)狀與應(yīng)用14
1.2.3 當(dāng)人工智能遇上大數(shù)據(jù)15
1.3 大數(shù)據(jù)與人工智能的機(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 為什么要進(jìn)行數(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評價指標(biāo)31
2.7數(shù)據(jù)的可視化33
2.7.1 可視化的發(fā)展34
2.7.2 可視化工具34
第三章 機(jī)器學(xué)習(xí)算法41
3-1機(jī)器學(xué)習(xí)緒論41
3.1.1 機(jī)器學(xué)習(xí)基本概念41
3.1.2評價標(biāo)準(zhǔn)43
3.1.3 機(jī)器模型的數(shù)學(xué)基礎(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感知機(jī)75
3.6.3BP神經(jīng)網(wǎng)絡(luò)77
3.6.4Sklearn中的神經(jīng)網(wǎng)絡(luò)80
3.6.5本章小結(jié)81
3.6.6 拓展閱讀81
3.7支持向量機(jī)81
3.7.1 間隔82
3.7.2 支持向量機(jī)的原始形式84
3.7.3 支持向量機(jī)的對偶形式86
3.7.4特征空間的隱式映射:核函數(shù)87
3.7.5 支持向量機(jī)拓展90
3.7.6 支持向量機(jī)的應(yīng)用90
3.8集成學(xué)習(xí)91
3.8.1 基礎(chǔ)概念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本章小結(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和HDFS114
4-2 Hadoop大數(shù)據(jù)處理框架115
4.2.1 HDFS組件與運行機(jī)制116
4.2.2 MapReduce組件與運行機(jī)制120
4.2.3 Yarn框架和運行機(jī)制122
4.2.4 Hadoop相關(guān)技術(shù)123
4-3 Hadoop安裝與部署124
4.3.1 安裝配置單機(jī)版Hadoop124
4.3.2 單機(jī)版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生態(tài)系統(tǒng)143
4.6.4 spark組件與運行機(jī)制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
第五章 分布式數(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
第六章 深度學(xué)習(xí)簡介173
6-1從神經(jīng)網(wǎng)絡(luò)到深度神經(jīng)網(wǎng)絡(luò)173
6.1.1深度學(xué)習(xí)應(yīng)用173
6.1.2 深度神經(jīng)網(wǎng)絡(luò)的困難175
6-2卷積神經(jīng)網(wǎng)絡(luò)CNN176
6.2.1卷積神經(jīng)網(wǎng)絡(luò)的生物學(xué)基礎(chǔ)176
6.2.2卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)177
6-3循環(huán)神經(jīng)網(wǎng)絡(luò)RNN182
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深度學(xué)習(xí)項目實戰(zhàn)195
7.2.1 Tensorflow與keras安裝部署196
7.2.2使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行手寫數(shù)字識別198
7.2.3使用LSTM進(jìn)行文本情感分類201
附 錄206
A 矩陣基礎(chǔ)206
B 梯度下降209
牛頓法210
C 拉格朗日對偶性211
D python 語法知識213
E Java語法基礎(chǔ)介紹228