本書基于Python語言,結合實際的數(shù)據(jù)集,介紹如何使用機器學習與深度學習算法,對數(shù)據(jù)進行實戰(zhàn)分析。本書在內(nèi)容上循序漸進,先介紹了Python的基礎內(nèi)容,以及如何利用Python中的第三方庫對數(shù)據(jù)進行預處理和探索可視化的相關操作,然后結合實際數(shù)據(jù)集,分章節(jié)介紹了機器學習與深度學習的相關算法應用。本書為讀者提供了源程序和使用的數(shù)據(jù)集,方便讀者在閱讀時同步運行程序,在增強學習效果的同時為讀者節(jié)省了編寫程序的時間。源程序使用Notebook的形式進行組織,每個小節(jié)注釋清晰,講解透徹。同時為程序配備了相應的視頻講解,輔助讀者對程序能很好地理解和消化。本書在簡明扼要地介紹算法原理的同時,更加注重實戰(zhàn)應用和對結果的解讀。
余本國,博士,碩士研究生導師。2001年畢業(yè)于石河子大學數(shù)學系,同年到中北大學(原華北工學院)任教,主講線性代數(shù)、高等數(shù)學、微積分、概率統(tǒng)計、數(shù)學實驗、Python語言、大數(shù)據(jù)分析基礎等課程。2012年到加拿大York University做訪問學者,F(xiàn)工作于海南醫(yī)學院生物醫(yī)學信息與工程學院。作品有《Python數(shù)據(jù)分析基礎》《基于Python的大數(shù)據(jù)分析基礎及實戰(zhàn)》等書。
第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 條件判斷、循環(huán)和函數(shù) 15
1.4 Python基礎庫入門實戰(zhàn) 18
1.4.1 NumPy庫應用入門 18
1.4.2 pandas庫應用入門 25
1.4.3 Matplotlib庫應用入門 34
1.5 機器學習模型初探 40
1.6 本章小結 43
第2章 數(shù)據(jù)探索與可視化 44
2.1 缺失值處理 45
2.1.1 簡單的缺失值處理方法 46
2.1.2 復雜的缺失值填充方法 52
2.2 數(shù)據(jù)描述與異常值發(fā)現(xiàn) 55
2.2.1 數(shù)據(jù)描述統(tǒng)計 55
2.2.2 發(fā)現(xiàn)異常值的基本方法 61
2.3 可視化分析數(shù)據(jù)關系 63
2.3.1 連續(xù)變量間關系可視化分析 63
2.3.2 分類變量間關系可視化分析 68
2.3.3 連續(xù)變量和分類變量間關系可視化分析 71
2.3.4 其他類型數(shù)據(jù)可視化分析 77
2.4 數(shù)據(jù)樣本間的距離 80
2.5 本章小結 84
第3章 特征工程 86
3.1 特征變換 87
3.1.1 數(shù)據(jù)的無量綱化處理 87
3.1.2 數(shù)據(jù)特征變換 93
3.2 特征 96
3.2.1 分類特征重新編碼 97
3.2.2 數(shù)值特征重新編碼 98
3.2.3 文本數(shù)據(jù)的特征構建 102
3.3 特征選擇 105
3.3.1 基于統(tǒng)計方法 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 數(shù)據(jù)平衡方法 116
3.5.1 基于過采樣算法 117
3.5.2 基于欠采樣算法 119
3.5.3 基于過采樣和欠采樣的綜合算法 121
3.6 本章小結 122
第4章 模型選擇和評估 124
4.1 模型擬合效果 124
4.1.1 欠擬合與過擬合表現(xiàn)方式 124
4.1.2 避免欠擬合與過擬合的方法 126
4.2 模型訓練技巧 127
4.2.1 交叉驗證 128
4.2.2 參數(shù)網(wǎng)絡搜索 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 數(shù)據(jù)分布檢驗 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 彈性網(wǎng)絡回歸 176
5.5 Logistic回歸分析 178
5.5.1 數(shù)據(jù)準備與可視化 179
5.5.2 邏輯回歸分類 181
5.6 本章小結 185
第6章 時間序列分析 186
6.1 時間序列數(shù)據(jù)的相關檢驗 187
6.1.1 白噪聲檢驗 188
6.1.2 平穩(wěn)性檢驗 189
6.1.3 自相關分析和偏自相關分析 192
6.2 移動平均算法 196
6.2.1 簡單移動平均法 197
6.2.2 簡單指數(shù)平滑法 198
6.2.3 霍爾特線性趨勢法 199
6.2.4 Holt-Winters季節(jié)性預測模型 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 數(shù)據(jù)準備 216
6.5.2 模型建立與數(shù)據(jù)預測 216
6.6 多元時間序列ARIMAX模型 220
6.6.1 數(shù)據(jù)準備與可視化 220
6.6.2 ARIMAX模型建立與預測 223
6.7 時序數(shù)據(jù)的異常值檢測 227
6.7.1 數(shù)據(jù)準備與可視化 228
6.7.2 時序數(shù)據(jù)異常值檢測 228
6.8 本章小結 230
第7章 聚類算法與異常值檢測 232
7.1 模型簡介 232
7.1.1 常用的聚類算法 232
7.1.2 常用的異常值檢測算法 234
7.2 數(shù)據(jù)聚類分析 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 數(shù)據(jù)異常值檢測分析 261
7.3.1 LOF和COF算法 262
7.3.2 帶有異常值的高維數(shù)據(jù)探索 267
7.3.3 基于PCA與SOD的異常值檢測方法 270
7.3.4 孤立森林異常值檢測 274
7.3.5 支持向量機異常值檢測 276
7.4 本章小結 279
第8章 決策樹和集成學習 280
8.1 模型簡介與數(shù)據(jù)準備 280
8.1.1 決策樹與集成學習算法思想 280
8.1.2 數(shù)據(jù)準備和探索 284
8.2 決策樹模型 290
8.2.1 決策樹模型數(shù)據(jù)分類 291
8.2.2 決策樹模型數(shù)據(jù)回歸 295
8.3 隨機森林模型 302
8.3.1 隨機森林模型數(shù)據(jù)分類 302
8.3.2 隨機森林模型數(shù)據(jù)回歸 306
8.4 AdaBoost模型 310
8.4.1 AdaBoost模型數(shù)據(jù)分類 310
8.4.2 AdaBoost模型數(shù)據(jù)回歸 314
8.5 梯度提升樹(GBDT) 317
8.5.1 GBDT模型數(shù)據(jù)分類 317
8.5.2 GBDT模型數(shù)據(jù)回歸 319
8.6 本章小結 321
第9章 貝葉斯算法和K-近鄰算法 322
9.1 模型簡介 322
9.2 貝葉斯分類算法 325
9.2.1 文本數(shù)據(jù)準備與可視化 325
9.2.2 樸素貝葉斯文本分類 327
9.3 貝葉斯網(wǎng)絡數(shù)據(jù)分類 334
9.3.1 自定義貝葉斯網(wǎng)絡結構 334
9.3.2 搜索所有網(wǎng)絡結構 336
9.3.3 啟發(fā)式搜索網(wǎng)絡結構 339
9.4 K-近鄰算法 340
9.4.1 K-近鄰數(shù)據(jù)分類 340
9.4.2 K-近鄰數(shù)據(jù)回歸 353
9.5 本章小節(jié) 357
第10章 支持向量機和人工神經(jīng)網(wǎng)絡 358
10.1 模型簡介 358
10.2 支持向量機模型 362
10.2.1 支持向量機數(shù)據(jù)分類 363
10.2.2 支持向量機數(shù)據(jù)回歸 369
10.3 全連接神經(jīng)網(wǎng)絡模型 374
10.3.1 單隱藏層全連接神經(jīng)網(wǎng)絡數(shù)據(jù)分類 375
10.3.2 多隱藏層全連接神經(jīng)網(wǎng)絡數(shù)據(jù)分類 379
10.3.3 全連接神經(jīng)網(wǎng)絡數(shù)據(jù)回歸 382
10.4 本章小結 387
第11章 關聯(lián)規(guī)則與文本挖掘 388
11.1 模型簡介 388
11.1.1 關聯(lián)規(guī)則 388
11.1.2 文本挖掘 390
11.2 數(shù)據(jù)關聯(lián)規(guī)則挖掘 392
11.2.1 FPGrowth關聯(lián)規(guī)則挖掘 393
11.2.2 Apriori關聯(lián)規(guī)則挖掘 396
11.3 文本數(shù)據(jù)預處理 403
11.3.1 英文文本預處理 403
11.3.2 《三國演義》文本預處理 406
11.4 文本聚類分析 410
11.4.1 文本數(shù)據(jù)特征獲取 410
11.4.2 常用的聚類算法 412
11.4.3 LDA主題模型 416
11.5 《三國演義》人物關系分析 422
11.5.1 人物重要性時序分析 422
11.5.2 人物關系可視化分析 425
11.6 本章小節(jié) 429
第12章 深度學習入門 430
12.1 深度學習介紹 431
12.1.1 卷積和池化 431
12.1.2 卷積神經(jīng)網(wǎng)絡 432
12.1.3 循環(huán)神經(jīng)網(wǎng)絡 432
12.1.4 自編碼網(wǎng)絡 433
12.2 PyTorch入門 434
12.2.1 張量的使用 434
12.2.2 常用的層 438
12.3 卷積神經(jīng)網(wǎng)絡識別草書 441
12.3.1 草書數(shù)據(jù)預處理與可視化 441
12.3.2 ResNet18網(wǎng)絡識別草書 446
12.4 循環(huán)神經(jīng)網(wǎng)絡新聞分類 452
12.4.1 數(shù)據(jù)準備 452
12.4.2 LSTM網(wǎng)絡文本分類 454
12.5 自編碼網(wǎng)絡重構圖像 460
12.5.1 數(shù)據(jù)準備 461
12.5.2 自編碼網(wǎng)絡重構手寫數(shù)字 462
12.6 本章小結 467
參考文獻 468