本書全面介紹與大數據和人工智能相關的數據采集、數據存儲、并行計算等技術體系,以及Python編程基礎、數據處理分析和可視化、機器學習算法和深度學習模型的原理與應用。 全書共分4部分:第1部分(第1章)為大數據基礎,主要介紹與大數據應用相關的數據采集、數據存儲、并行計算等技術體系;第2部分(第2章)為Python編程基礎,主要介紹Python的基本語法,為讀者學習后續(xù)的數據處理分析、可視化、機器學習算法和深度學習模型等內容提供基礎知識;第3部分(第3、4章)為數據處理分析和可視化,主要介紹基于Pandas的數據處理分析方法和基于Matplotlib的數據可視化方法;第4部分(第5~9章)為機器學習和深度學習,其中,第5~8章主要介紹回歸、聚類、分類等機器學習算法及應用,第9章主要介紹深度學習模型及建模應用。各章都有配套的思考題、自測習題和教學視頻等資源。 本書適合作為高等學校數據科學與大數據技術、計算機科學與技術、網絡工程、軟件工程、物聯(lián)網工程等專業(yè)的大數據導論、Python編程技術、數據處理及可視化、Python數據科學導引以及機器學習等課程的教材,也可作為IT開發(fā)人員、非計算機專業(yè)師生和科研工作者的參考書。
本書詳細介紹大數據技術體系和Python編程基礎知識、數據處理分析、可視化方法和機器學習算法、深度學習模型等理論和應用知識,可作為本科通識教材,也可作為計算機科學和大數據等專業(yè)的數據處理及可視化、機器學習教材。
大數據和人工智能已經成為信息技術發(fā)展的新動能,圍繞大數據和人工智能的創(chuàng)新層出不窮。究其根本,所有新思路和新技術都離不開高質量的數據,因此與數據相關的大數據技術體系,如數據采集、數據存儲、并行計算、數據處理分析、編程工具Python、數據處理分析工具Pandas、數據可視化工具Matplotlib,以及與人工智能相關的機器學習算法和深度學習模型等,已成為學習大數據、人工智能的知識;谶@種現(xiàn)狀,本書將上述知識按照逐層深入的思路進行整合,使之成為一條有機的階梯式遞進學習鏈,幫助讀者從基礎知識到應用實踐一步步構建大數據和人工智能應用的知識體系。
本書以IT企業(yè)對從業(yè)人員技術能力要求為出發(fā)點,以工程實踐能力培養(yǎng)為目標,按照工程需求組織內容,便于讀者學習和掌握。本書既可以作為高校計算機類專業(yè)各層次的教材,還可以作為IT開發(fā)人員、非計算機專業(yè)師生和科研工作者的參考書。
本書具有以下特點:
(1) 知識覆蓋面廣,技術體系完整。本書涵蓋大數據技術體系、Python編程基礎知識、數據處理分析和可視化方法以及機器學習算法和深度學習模型等基礎理論和相關應用知識。
(2) 理論和實踐相結合。本書運用豐富的實踐案例幫助讀者理解相關原理和理論,同時用詳細的操作步驟和直觀的運行結果展示其背后的規(guī)則和算法,避免單調的理論敘述,易教易學。
(3) 配套資源豐富。本書提供配套的課件、例題案例、自測習題和各知識點的教學視頻,適合線上線下混合式教學。
本書由高靜、申志軍、姜新華、陳俊杰、謝聰嬌、左東石、劉敏、白潔和劉振羽等共同編寫。其中,高靜和劉振羽共同編寫了第1章,白潔編寫了第2章,申志軍編寫了第3、4章,劉敏編寫了第5章,謝聰嬌編寫了第6章,姜新華編寫了第7章,左東石編寫了第8章,陳俊杰編寫了第9章,全書由高靜教授統(tǒng)稿。在編寫過程中,參閱了Python、Pandas、Matplotlib和PyTorch的官網及中文社區(qū),也吸取了國內外教材的精髓,在此對這些作者的貢獻表示由衷的感謝。本書在出版過程中還得到了清華大學出版社張玥編輯的大力支持,在此向她表示誠摯的感謝。限于作者水平,書中難免有不妥和疏漏之處,懇請各位專家、同仁和讀者不吝賜教,并與編者討論,編者的郵箱是shensljx@sina.com。
編者
2022年4月
高靜博士,院長、博士生導師,致力于大數據和人工智能在農牧業(yè)等領域的應用研究。自治區(qū)新世紀321人才工程層次,內蒙古自治區(qū)農牧業(yè)大數據研究與應用重點實驗室主任,內蒙古自治區(qū)數據科學與大數據學會副會長。主持完成國家自然科學基金、國家科技重大專項等國家、省部級項目7項;出版譯著5部,發(fā)表論文45篇,獲得授權發(fā)明專利5項,登記軟件著作權10項,科研成果獲內蒙古自治區(qū)科技進步一等獎和二等獎各1項。
第1章數據與大數據導論1
1.1大數據概述1
1.1.1大數據的來源1
1.1.2大數據的定義和特征3
1.1.3數據結構類型4
1.1.4數據分析流程5
1.2大數據采集和預處理6
1.2.1大數據采集設備6
1.2.2大數據采集方法7
1.2.3大數據預處理技術7
1.3大數據的存儲20
1.3.1數據存儲設備20
1.3.2傳統(tǒng)大數據存儲22
1.3.3數據中心與云存儲23
1.3.4大數據存儲26
1.3.5數據倉庫31
1.4云計算與大數據并行計算32
1.4.1云計算與云計算平臺32
1.4.2MapReduce計算模型35
1.4.3Hadoop36
1.4.4Spark37
1.5大數據分析38
1.5.1大數據分析概念38
1.5.2大數據分析方法39
1.5.3機器學習與特征選擇42
1.5.4機器學習算法45
1.5.5深度學習算法47
1.6大數據可視化51
1.6.1數據可視化概述51
1.6.2數據可視化技術51
1.6.3數據可視化工具54
1.6.4數據可視化案例56
1.7大數據應用及挑戰(zhàn)58
1.7.1大數據應用58
1.7.2大數據帶來的挑戰(zhàn)60
思考題61第2章Python基礎62
2.1Python編程環(huán)境62
2.1.1Anaconda概述62
2.1.2Anaconda的安裝63
2.1.3Anaconda的包管理63
2.1.4運行Python代碼或程序64
2.2變量和內置數據類型66
2.2.1變量和變量賦值66
2.2.2內置數據類型68
2.2.3運算符69
2.2.4注釋和編碼規(guī)范70
2.3列表、元組和字典70
2.3.1列表70
2.3.2元組79
2.3.3字典81
2.4選擇和循環(huán)86
2.4.1選擇結構86
2.4.2for循環(huán)89
2.4.3while循環(huán)90
2.5函數和模塊92
2.5.1函數的定義和使用92
2.5.2模塊導入101
2.6文件操作101
2.6.1文件操作基礎101
2.6.2CSV文件操作103
2.6.3JSON文件操作105第3章Pandas數據處理和分析107
3.1Pandas基礎107
3.1.1Pandas簡介107
3.1.2Series108
3.1.3DataFrame114
3.2文件讀寫122
3.2.1讀寫CSV文件123
3.2.2讀寫Excel文件125
3.3數據清洗126
3.3.1缺失值處理126
3.3.2重復值處理131
3.3.3異常值處理133
3.4數據操作135
3.4.1常規(guī)運算135
3.4.2統(tǒng)計139
3.4.3排序142
3.5索引操作143
3.5.1索引重命名143
3.5.2索引設置144
3.5.3重新索引147
3.5.4索引排序149
3.6合并150
3.6.1concat()150
3.6.2merge()152
3.6.3join()155
3.7分組156
3.7.1groupby()156
3.7.2聚合操作159
3.7.3過濾與變換160
3.7.4apply()161
3.8變形162
3.8.1透視162
3.8.2啞變量與因子化164
3.8.3其他變形方法168
思考題171第4章Matplotlib數據可視化173
4.1Matplotlib的安裝和導入173
4.2繪制折線圖174
4.2.1導入數據174
4.2.2繪制圖表174
4.2.3增加基本修飾175
4.3圖表修飾176
4.3.1標題176
4.3.2坐標軸標簽177
4.3.3坐標軸刻度177
4.3.4圖例178
4.3.5線條和標記178
4.3.6網格線180
4.3.7注釋180
4.4繪制條形圖183
4.4.1垂直條形圖183
4.4.2水平條形圖184
4.4.3組合條形圖表186
4.5繪制餅圖和環(huán)圖187
4.5.1餅圖187
4.5.2環(huán)圖189
4.6繪制散點圖和泡圖190
4.6.1散點圖190
4.6.2氣泡圖191
4.7繪制雷達圖、組合雷達圖、極坐標散點圖和極坐標條形圖191
4.7.1雷達圖191
4.7.2組合雷達圖195
4.7.3極坐標散點圖196
4.7.4極坐標條形圖197
4.8繪制箱線圖198
4.9多子圖布局200
4.10樣式選擇202
思考題204第5章回歸模型原理與應用205
5.1線性回歸模型205
5.1.1回歸分析的含義205
5.1.2線性回歸模型的形式206
5.1.3線性回歸方程參數求解207
5.1.4線性回歸方程選擇209
5.1.5線性回歸方程預測214
5.2非線性回歸模型215
5.2.1可轉換為線性回歸模型的非線性回歸模型215
5.2.2非線性回歸模型216
5.3線性回歸模型實踐案例216
思考題228第6章聚類分析231
6.1聚類分析概述231
6.2聚類分析中的相似度計算方法232
6.2.1歐幾里得距離232
6.2.2曼哈頓距離232
6.2.3余弦相似度232
6.2.4切比雪夫距離232
6.2.5閔可夫斯基距離233
6.3劃分聚類算法233
6.3.1kmeans聚類算法233
6.3.2kmeans 算法235
6.3.3kmedoids算法237
6.3.4肘法237
6.3.5輪廓系數238
6.4層次聚類算法242
6.5基于密度的聚類算法246
6.5.1DBSCAN算法246
6.5.2均值漂移聚類算法248
6.6聚類算法的評價指標249
6.6.1內部質量評價標準250
6.6.2外部質量評價標準252
6.7聚類分析應用案例254
6.7.1非球形數據分布聚類分析254
6.7.2手寫體數字聚類分析257
6.7.3鳶尾花數據集聚類分析259
思考題263第7章分類模型264
7.1邏輯斯諦回歸分類模型264
7.1.1邏輯斯諦回歸模型簡介264
7.1.2損失函數265
7.1.3損失函數求解方法266
7.1.4邏輯斯諦回歸分類應用實例267
7.2決策樹分類模型268
7.2.1特征選擇268
7.2.2決策樹構建269
7.2.3決策樹剪枝270
7.2.4決策樹分類應用實例270
7.3樸素貝葉斯分類模型272
7.3.1樸素貝葉斯分類模型原理272
7.3.2樸素貝葉斯分類模型參數估計273
7.3.3貝葉斯分類應用實例274
7.4支持向量機分類模型275
7.4.1SVM分類模型原理275
7.4.2損失函數275
7.4.3經驗風險與結構風險276
7.4.4標準算法277
7.4.5算法求解278
7.4.6支持向量機分類應用實例279
7.5綜合案例應用280
7.5.1讀取數據文件281
7.5.2數據清洗282
7.5.3數據分析284
思考題291第8章集成學習293
8.1概述293
8.2序列集成方法294
8.2.1Boosting集成方法294
8.2.2AdaBoost集成方法295
8.3并行集成方法297
8.3.1Bagging集成方法297
8.3.2隨機森林集成方法298
8.4組合策略299
8.4.1平均法299
8.4.2投票法300
8.4.3學習法300
8.5集成學習應用案例301
8.5.1集成學習用于分類任務301
8.5.2集成學習用于回歸任務302
思考題304第9章深度學習305
9.1神經網絡與多層感知機305
9.1.1神經元306
9.1.2激活函數306
9.1.3多層感知機307
9.1.4神經網絡的參數學習309
9.2卷積神經網絡309
9.2.1卷積層309
9.2.2池化層312
9.2.3全連接層313
9.3循環(huán)神經網絡313
9.3.1循環(huán)神經網絡的基本結構313
9.3.2雙向循環(huán)神經網絡314
9.3.3其他類型的循環(huán)神經網絡314
9.4深度學習模型的優(yōu)化316
9.4.1初始化參數優(yōu)化316
9.4.2逐層歸一化316
9.4.3超參數優(yōu)化317
9.4.4優(yōu)化算法317
9.5深度學習應用案例318
9.5.1PyTorch的基本用法318
9.5.2PyTorch中的神經網絡層321
9.5.3PyTorch神經網絡的訓練過程325
9.5.4深度學習模型實例325
思考題331參考文獻332