本書是高等學(xué)校開設(shè)數(shù)據(jù)科學(xué)導(dǎo)論或工程實踐等課程的配套用書。本書不僅介紹了數(shù)據(jù)科學(xué)的基礎(chǔ)知識,還特別引入了探索性數(shù)據(jù)分析流程的相關(guān)內(nèi)容,主要包括實踐平臺配置、數(shù)據(jù)預(yù)處理、數(shù)據(jù)存儲與管理、探索性數(shù)據(jù)分析、單模型學(xué)習(xí)算法、集成學(xué)習(xí)算法和數(shù)據(jù)可視化等;精心設(shè)計其中的函數(shù)應(yīng)用實踐和綜合應(yīng)用實踐,前者聚焦具體函數(shù)的解釋和應(yīng)用,后者致力于實際問題解決思路的探討。讀者可以由淺入深地了解相關(guān)理論,逐步完成相關(guān)實驗內(nèi)容,增強理論和實踐的連貫性認(rèn)知,培養(yǎng)數(shù)據(jù)思維和動手實踐能力。 本書可作為高等學(xué)校各相關(guān)專業(yè)的數(shù)據(jù)科學(xué)導(dǎo)論或?qū)嵺`等課程的配套教材,也可供對數(shù)據(jù)科學(xué)感興趣的讀者閱讀。
郭繼東,山東財經(jīng)大學(xué)副教授,郭繼東博士在計算機視覺、人工智能、最優(yōu)化方法、數(shù)據(jù)分析與挖掘算法和矩陣分析方面有著比較深入的研究,并取得了一些創(chuàng)新性的研究成果。主要研究方向為人工智能、計算機視覺、最優(yōu)化方法、軟件架構(gòu)設(shè)計、數(shù)據(jù)挖掘技術(shù)、三維重建、圖像處理等。在國內(nèi)外重要學(xué)術(shù)刊物及會議上發(fā)表重要學(xué)術(shù)論文20余篇,其中有多篇被SCI或EI收錄。
目錄
第1章 數(shù)據(jù)科學(xué)概述 1
1.1 數(shù)據(jù)科學(xué)簡介 1
1.1.1 基本概念及發(fā)展歷史 1
1.1.2 特點及應(yīng)用領(lǐng)域 2
1.1.3 數(shù)據(jù)科學(xué)的過程 3
1.2 Python的安裝 5
1.3 常用工具包概述 7
1.4 Anaconda3的安裝 9
1.5 Jupyter Notebook的使用 10
1.5.1 Jupyter Notebook簡介 10
1.5.2 Jupyter Notebook
的啟動 10
1.5.3 新手如何快速上手Jupyter Notebook 10
1.6 本章小結(jié) 12
課后習(xí)題 12
第2章 數(shù)據(jù)預(yù)處理 13
2.1 NumPy數(shù)據(jù)處理及運算 13
2.1.1 NumPy的安裝 13
2.1.2 創(chuàng)建N維數(shù)組 14
2.1.3 NumPy切片和索引 19
2.1.4 NumPy數(shù)組操作 20
2.1.5 數(shù)學(xué)函數(shù) 32
2.1.6 統(tǒng)計函數(shù) 40
2.1.7 排序函數(shù) 46
2.1.8 直方圖函數(shù) 47
2.2 Pandas基礎(chǔ) 49
2.2.1 數(shù)據(jù)快捷加載 49
2.2.2 Pandas的數(shù)據(jù)結(jié)構(gòu) 53
2.3 非數(shù)值數(shù)據(jù)轉(zhuǎn)換 61
2.3.1 map()函數(shù) 61
2.3.2 One-Hot編碼 62
2.4 數(shù)據(jù)清洗 63
2.4.1 缺失值處理 63
2.4.2 錯誤數(shù)據(jù)替換 65
2.4.3 數(shù)據(jù)去重 65
2.4.4 數(shù)據(jù)合并連接 66
2.4.5 數(shù)據(jù)分組及聚合 70
2.5 本章小結(jié) 72
課后習(xí)題 72
第3章 數(shù)據(jù)存儲與管理 74
3.1 概述 74
3.1.1 數(shù)據(jù)存儲的概念 74
3.1.2 數(shù)據(jù)管理技術(shù)的概念 74
3.1.3 數(shù)據(jù)庫的概念 74
3.1.4 新型數(shù)據(jù)管理系統(tǒng) 75
3.2 關(guān)系數(shù)據(jù)庫 75
3.2.1 關(guān)系數(shù)據(jù)模型 75
3.2.2 應(yīng)用舉例 76
3.3 分布式文件系統(tǒng) 78
3.3.1 HDFS的概念及特點 78
3.3.2 HDFS數(shù)據(jù)文件存儲 78
3.3.3 HDFS的結(jié)構(gòu)及組件 78
3.3.4 HDFS的讀/寫操作 79
3.3.5 Python訪問HDFS 81
3.4 分布式數(shù)據(jù)庫 82
3.4.1 HBase的特點 82
3.4.2 HBase相關(guān)概念 82
3.4.3 HBase架構(gòu) 82
3.4.4 Python操作HBase 84
3.5 流數(shù)據(jù) 87
3.5.1 流數(shù)據(jù)概述 87
3.5.2 流數(shù)據(jù)模型 87
3.5.3 流數(shù)據(jù)處理系統(tǒng) 88
3.6 本章小結(jié) 90
課后習(xí)題 90
第4章 探索性數(shù)據(jù)分析 92
4.1 EDA簡介 92
4.2 特征創(chuàng)建 98
4.3 維度約簡 101
4.3.1 為什么要降維 101
4.3.2 基于特征轉(zhuǎn)換的降維 102
4.3.3 基于特征選擇的降維 122
4.3.4 基于特征組合的降維 135
4.4 異常值檢測及處理 141
4.4.1 單變量異常檢測 141
4.4.2 OneClassSVM 143
4.4.3 EllipticEnvelope 145
4.5 評價函數(shù) 149
4.5.1 多標(biāo)簽分類 149
4.5.2 二分類 151
4.5.3 回歸 155
4.6 測試和驗證 156
4.7 交叉驗證 159
4.7.1 建立自定義評分函數(shù) 160
4.7.2 使用交叉驗證迭代器 162
4.8 超參數(shù)調(diào)優(yōu) 167
4.8.1 超參數(shù)調(diào)優(yōu)概述 167
4.8.2 超參數(shù)調(diào)優(yōu)實踐 174
4.9 小結(jié) 190
課后習(xí)題 190
第5章 單模型學(xué)習(xí)算法 191
5.1 概述 191
5.1.1 分類模型和回歸模型 192
5.1.2 機器學(xué)習(xí)的步驟和
要素 193
5.2 線性回歸和邏輯回歸 194
5.2.1 從線性回歸到邏輯
回歸 195
5.2.2 線性回歸實踐 197
5.2.3 Sigmoid函數(shù) 199
5.2.4 推廣至多元場景 200
5.2.5 邏輯回歸實踐 201
5.2.6 算法小結(jié) 203
進(jìn)階A 交叉熵?fù)p失函數(shù)和平方差
損失函數(shù) 203
5.3 樸素貝葉斯分類 207
5.3.1 樸素貝葉斯分類算法 207
5.3.2 樸素貝葉斯實踐 210
5.3.3 算法小結(jié) 212
5.4 最近鄰算法 212
5.4.1 k近鄰算法的概念及
原理 212
5.4.2 k值的選取及特征歸一化的重要性 213
5.4.3 最近鄰算法實踐 215
5.4.4 算法小結(jié) 228
進(jìn)階B kd樹 228
B.1 kd樹的構(gòu)建 228
B.2 kd樹的搜索 230
B.3 kd樹的不足 232
5.5 支持向量機 233
5.5.1 支持向量機基礎(chǔ) 234
5.5.2 軟間隔 236
5.5.3 核函數(shù) 236
5.5.4 支持向量機實踐 238
5.5.5 算法小結(jié) 256
進(jìn)階C 對偶問題 257
C.1 拉格朗日乘子法 257
C.2 支持向量機優(yōu)化 259
進(jìn)階D 軟間隔情況下的最優(yōu)化問題
及其求解 260
5.6 決策樹 261
5.6.1 信息論知識 261
5.6.2 決策樹基礎(chǔ) 264
5.6.3 決策樹實踐 268
5.6.4 算法小結(jié) 285
5.7 聚類 286
5.7.1 K均值聚類 286
5.7.2 小批量KMeans 296
5.7.3 Affinity Propagation聚類
算法 299
5.7.4 層次聚類 301
5.7.5 DBSCAN 307
5.7.6 算法小結(jié) 310
5.8 本章小結(jié) 311
課后習(xí)題 311
第6章 集成學(xué)習(xí)算法 312
6.1 集成學(xué)習(xí)能帶來什么 312
6.1.1 集成學(xué)習(xí)的基本步驟 313
6.1.2 集成學(xué)習(xí)中的偏差與
方差 314
6.2 Bagging元學(xué)習(xí)器 320
6.3 隨機森林 326
6.3.1 隨機森林算法 327
6.3.2 極度隨機化樹 327
6.3.3 隨機森林實踐 328
6.3.4 算法小結(jié) 332
6.4 Boosting算法 332
6.5 AdaBoost算法 333
6.5.1 AdaBoost實踐 334
6.5.2 算法小結(jié) 341
進(jìn)階E AdaBoost算法偽代碼 342
6.6 GBDT算法 342
6.6.1 分類和回歸 347
6.6.2 GBDT實踐 349
6.7 基于直方圖的梯度提升 351
6.7.1 用法 351
6.7.2 直方圖梯度提升模型
實踐 353
6.8 堆疊泛化 356
6.9 概率校準(zhǔn) 358
6.9.1 校準(zhǔn)曲線 359
6.9.2 校準(zhǔn)分類器 362
6.10 本章小結(jié) 373
課后習(xí)題 373
第7章 數(shù)據(jù)可視化 374
7.1 可視化的定義及作用 374
7.2 可視化的原則 375
7.3 常用的可視化分析技術(shù)與
工具 375
7.4 Matplotlib繪圖 378
7.4.1 繪制曲線 378
7.4.2 繪制散點圖 384
7.4.3 繪制直方圖 385
7.4.4 繪制柱狀圖 387
7.4.5 繪制箱線圖 392
7.4.6 繪制圖像 394
7.4.7 繪制矩陣 396
7.5 Pandas繪圖 398
7.6 Scikit-learn繪圖 401
7.6.1 學(xué)習(xí)曲線 401
7.6.2 驗證曲線 405
7.6.3 ROC曲線 407
7.6.4 混淆矩陣 408
7.6.5 精確率-召回率曲線 410
7.6.6 部分依賴關(guān)系圖 412
7.7 本章小結(jié) 414
課后習(xí)題 414