Python 機器學習算法與實戰
內容描述
本書基於Python語言,結合實際的數據集,介紹如何使用機器學習與深度學習算法,對數據進行實戰分析。本書在內容上循序漸進,先介紹了Python的基礎內容,以及如何利用Python中的第三方庫對數據進行預處理和探索可視化的相關操作,然後結合實際數據集,分章節介紹了機器學習與深度學習的相關算法應用。本書為讀者提供了源程序和使用的數據集,方便讀者在閱讀時同步運行程序,在增強學習效果的同時為讀者節省了編寫程序的時間。源程序使用Notebook的形式進行組織,每個小節註釋清晰,講解透徹。同時為程序配備了相應的視頻講解,輔助讀者對程序能很好地理解和消化。本書在簡明扼要地介紹算法原理的同時,更加註重實戰應用和對結果的解讀。
目錄大綱
第1章 Python機器學習入門 1
1.1 機器學習簡介 1
1.1.1 機器學習是什麼 1
1.1.2 機器學習算法分類 2
1.2 安裝Anaconda(Python) 6
1.2.1 Spyder 7
1.2.2 Jupyter Notebook 8
1.2.3 JupyterLab 8
1.3 Python快速入門 10
1.3.1 列表、元組和字典 10
1.3.2 條件判斷、循環和函數 15
1.4 Python基礎庫入門實戰 18
1.4.1 NumPy庫應用入門 18
1.4.2 pandas庫應用入門 25
1.4.3 Matplotlib庫應用入門 34
1.5 機器學習模型初探 40
1.6 本章小結 43
第2章 數據探索與可視化 44
2.1 缺失值處理 45
2.1.1 簡單的缺失值處理方法 46
2.1.2 複雜的缺失值填充方法 52
2.2 數據描述與異常值發現 55
2.2.1 數據描述統計 55
2.2.2 發現異常值的基本方法 61
2.3 可視化分析數據關係 63
2.3.1 連續變量間關係可視化分析 63
2.3.2 分類變量間關係可視化分析 68
2.3.3 連續變量和分類變量間關係可視化分析 71
2.3.4 其他類型數據可視化分析 77
2.4 數據樣本間的距離 80
2.5 本章小結 84
第3章 特徵工程 86
3.1 特徵變換 87
3.1.1 數據的無量綱化處理 87
3.1.2 數據特徵變換 93
3.2 特徵 96
3.2.1 分類特徵重新編碼 97
3.2.2 數值特徵重新編碼 98
3.2.3 文本數據的特徵構建 102
3.3 特徵選擇 105
3.3.1 基於統計方法 106
3.3.2 基於遞歸消除特徵法 107
3.3.3 基於機器學習的方法 108
3.4 特徵提取和降維 109
3.4.1 主成分分析 109
3.4.2 核主成分分析 111
3.4.3 流形學習 113
3.4.4 t-SNE 114
3.4.5 多維尺度分析 115
3.5 數據平衡方法 116
3.5.1 基於過採樣算法 117
3.5.2 基於欠採樣算法 119
3.5.3 基於過採樣和欠採樣的綜合算法 121
3.6 本章小結 122
第4章 模型選擇和評估 124
4.1 模型擬合效果 124
4.1.1 欠擬合與過擬合表現方式 124
4.1.2 避免欠擬合與過擬合的方法 126
4.2 模型訓練技巧 127
4.2.1 交叉驗證 128
4.2.2 參數網絡搜索 132
4.3 模型的評價指標 134
4.3.1 分類效果評價 134
4.3.2 回歸效果評價 135
4.3.3 聚類效果評價 137
4.4 本章小結 138
第5章 假設檢驗和回歸分析 139
5.1 假設檢驗 141
5.1.1 數據分佈檢驗 141
5.1.2 t檢驗 144
5.1.3 方差分析 145
5.2 一元回歸 149
5.2.1 一元線性回歸 149
5.2.2 一元非線性回歸 151
5.3 多元回歸 154
5.3.1 多元線性回歸 155
5.3.2 逐步回歸 161
5.3.3 多元自適應回歸樣條 164
5.4 正則化回歸分析 166
5.4.1 Ridge回歸分析 169
5.4.2 LASSO回歸分析 172
5.4.3 彈性網絡回歸 176
5.5 Logistic回歸分析 178
5.5.1 數據準備與可視化 179
5.5.2 邏輯回歸分類 181
5.6 本章小結 185
第6章 時間序列分析 186
6.1 時間序列數據的相關檢驗 187
6.1.1 白噪聲檢驗 188
6.1.2 平穩性檢驗 189
6.1.3 自相關分析和偏自相關分析 192
6.2 移動平均算法 196
6.2.1 簡單移動平均法 197
6.2.2 簡單指數平滑法 198
6.2.3 霍爾特線性趨勢法 199
6.2.4 Holt-Winters季節性預測模型 201
6.3 ARIMA模型 202
6.3.1 AR模型 202
6.3.2 ARMA模型 205
6.3.3 ARIMA模型 209
6.4 SARIMA模型 213
6.5 Prophet模型預測時間序列 215
6.5.1 數據準備 216
6.5.2 模型建立與數據預測 216
6.6 多元時間序列ARIMAX模型 220
6.6.1 數據準備與可視化 220
6.6.2 ARIMAX模型建立與預測 223
6.7 時序數據的異常值檢測 227
6.7.1 數據準備與可視化 228
6.7.2 時序數據異常值檢測 228
6.8 本章小結 230
第7章 聚類算法與異常值檢測 232
7.1 模型簡介 232
7.1.1 常用的聚類算法 232
7.1.2 常用的異常值檢測算法 234
7.2 數據聚類分析 236
7.2.1 K-均值與K-中值聚類算法 236
7.2.2 層次聚類 243
7.2.3 譜聚類與模糊聚類 245
7.2.4 密度聚類(DBSCAN) 249
7.2.5 高斯混合模型聚類 253
7.2.6 親和力傳播聚類 255
7.2.7 BIRCH聚類 258
7.3 數據異常值檢測分析 261
7.3.1 LOF和COF算法 262
7.3.2 帶有異常值的高維數據探索 267
7.3.3 基於PCA與SOD的異常值檢測方法 270
7.3.4 孤立森林異常值檢測 274
7.3.5 支持向量機異常值檢測 276
7.4 本章小結 279
第8章 決策樹和集成學習 280
8.1 模型簡介與數據準備 280
8.1.1 決策樹與集成學習算法思想 280
8.1.2 數據準備和探索 284
8.2 決策樹模型 290
8.2.1 決策樹模型數據分類 291
8.2.2 決策樹模型數據回歸 295
8.3 隨機森林模型 302
8.3.1 隨機森林模型數據分類 302
8.3.2 隨機森林模型數據回歸 306
8.4 AdaBoost模型 310
8.4.1 AdaBoost模型數據分類 310
8.4.2 AdaBoost模型數據回歸 314
8.5 梯度提升樹(GBDT) 317
8.5.1 GBDT模型數據分類 317
8.5.2 GBDT模型數據回歸 319
8.6 本章小結 321
第9章 貝葉斯算法和K-近鄰算法 322
9.1 模型簡介 322
9.2 貝葉斯分類算法 325
9.2.1 文本數據準備與可視化 325
9.2.2 樸素貝葉斯文本分類 327
9.3 貝葉斯網絡數據分類 334
9.3.1 自定義貝葉斯網絡結構 334
9.3.2 搜索所有網絡結構 336
9.3.3 啟發式搜索網絡結構 339
9.4 K-近鄰算法 340
9.4.1 K-近鄰數據分類 340
9.4.2 K-近鄰數據回歸 353
9.5 本章小節 357
第10章 支持向量機和人工神經網絡 358
10.1 模型簡介 358
10.2 支持向量機模型 362
10.2.1 支持向量機數據分類 363
10.2.2 支持向量機數據回歸 369
10.3 全連接神經網絡模型 374
10.3.1 單隱藏層全連接神經網絡數據分類 375
10.3.2 多隱藏層全連接神經網絡數據分類 379
10.3.3 全連接神經網絡數據回歸 382
10.4 本章小結 387
第11章 關聯規則與文本挖掘 388
11.1 模型簡介 388
11.1.1 關聯規則 388
11.1.2 文本挖掘 390
11.2 數據關聯規則挖掘 392
11.2.1 FPGrowth關聯規則挖掘 393
11.2.2 Apriori關聯規則挖掘 396
11.3 文本數據預處理 403
11.3.1 英文文本預處理 403
11.3.2 《三國演義》文本預處理 406
11.4 文本聚類分析 410
11.4.1 文本數據特徵獲取 410
11.4.2 常用的聚類算法 412
11.4.3 LDA主題模型 416
11.5 《三國演義》人物關係分析 422
11.5.1 人物重要性時序分析 422
11.5.2 人物關係可視化分析 425
11.6 本章小節 429
第12章 深度學習入門 430
12.1 深度學習介紹 431
12.1.1 卷積和池化 431
12.1.2 卷積神經網絡 432
12.1.3 循環神經網絡 432
12.1.4 自編碼網絡 433
12.2 PyTorch入門 434
12.2.1 張量的使用 434
12.2.2 常用的層 438
12.3 卷積神經網絡識別草書 441
12.3.1 草書數據預處理與可視化 441
12.3.2 ResNet18網絡識別草書 446
12.4 循環神經網絡新聞分類 452
12.4.1 數據準備 452
12.4.2 LSTM網絡文本分類 454
12.5 自編碼網絡重構圖像 460
12.5.1 數據準備 461
12.5.2 自編碼網絡重構手寫數字 462
12.6 本章小結 467
參考文獻 468
作者介紹
餘本國,博士,碩士研究生導師。
2001年畢業於石河子大學數學系,同年到中北大學(原華北工學院)任教,主講線性代數、高等數學、微積分、概率統計、數學實驗、Python語言、大數據分析基礎等課程。
2012年到加拿大York University做訪問學者。
現工作於海南醫學院生物醫學信息與工程學院。
作品有《Python數據分析基礎》《基於Python的大數據分析基礎及實戰》等書。