內容簡介
本書以Python 3.7版本作為數據分析與挖掘實戰的應辯請循只用工具,從Python的基礎語法開始,陸續介紹有關數值計算的numpy、數據處理的pandas、數據可視化的matplotlib和數據挖掘的sklearn等內容。全書共涵蓋15種可視化圖形以及10個常用的數據挖掘算法和實戰項目,通過本書的學習,讀者可以掌握數據分析與挖掘的理論知識和實戰技能。 本書適於統計學、數學、經再檔棵鞏濟學、金融學、管理學以及相關理工科專業的本科生、研究生使用,也能夠提高從事數據諮詢、研究或分析等人士的專業水平和技能。
作品目錄
第1章數據分析與挖掘概述 1
1.1什麼是數據分析和挖掘 1
1.2數據分析與挖掘的套用領域 2
1.2.1電商領域——發現破壞規則的“害群之馬” 2
1.2.2交通出行領域——為打車平台進行私人訂製 3
1.2.3醫療健康領域——找到最佳醫療方案 3
1.3數據分析與挖掘的區別 4
1.4數據挖掘的流程 5
1.4.1明確目標 5
1.4.2數據蒐集 6
1.4.3數據清洗 6
1.4.4構建模型 7
1.4.5模型評估 7
1.4.6套用部署 7
1.5常用的數據分析與挖掘工具 8
1.6本章小結 9
1.7課後練習 9
第2章從收入的預測分析開始 10
2.1下載與安裝Anaconda 10
2.1.1基於Windows系統安裝 11
2.1.2基於Mac系統安裝 12
2.1.3基於Linux系統安裝 14
2.2基於Python的案例實戰 14
2.2.1數據的預處頌狼市理 14
2.2.2數據的探索性分析 16
2.2.3數據建模 19
2.3本章小結 29
2.4課後練習 29
第3章Python基礎與數據抓取 30
3.1數據結構及方法 30
3.1.1列表 30
3.1.2元組 36
3.1.3字典 36
3.2控制流 40
3.2.1if分支 40
3.2.2for循環 41
3.2.3while循環 43
3.3字元串處理方法 45
3.3.1字元串的常用方法 45
3.3.2正則表達式 47
3.4自定義函式 50
3.4.1自定義函式語法 50
3.4.2自定義函式的幾種參數 52
3.5一個爬蟲案例 55
3.6本章小結 57
3.7課後練習 59
第4章Python數值計算——numpy的高效技能 60
4.1數組的創建與操作 60
4.1.1數組的創建 60
4.1.2數組元素的獲取 61
4.1.3數組的常用屬性 63
4.1.4數組的形狀處理 64
4.2數組的基本運算符 67
4.2.1四則運算 67
4.2.2比較運算 68
4.2.3廣播運盼凝嘗算 70
4.3常用的數學和統計函式 71
4.4線性代數的相關計算 73
4.4.1矩陣乘法 73
4.4.2diag函式的使用 74
4.4.3特徵根與特徵向量 75
4.4.5多元一次方程組的求解 76
4.4.6範數的計算 76
4.5偽隨機數的生成 77
4.6本章小結 80
4.7課後練習 81
第5章Python數據處理——展現pandas的強大 82
5.1序列與數據框的構造 82
5.1.1構戒判籃造序列 83
5.1.2構造數據框 85
5.2外部數據的讀取 86
5.2.1文本檔案的讀取 86
5.2.2電子表格的讀取 88
5.2.3資料庫數據的讀取 89
5.3數據類型轉換及描述統計 91
5.4字元與日期數據的處理 95
5.5常用的數據清洗方法酷照樂 99
5.5.1重複觀測處理 99
5.5.2缺失值處理 100
5.5.3異常值處理 103
5.6數據子集的獲取 106
5.7透視表功能 108
5.8表之間全催的合併與連線 111
5.9分組聚合操作 114
5.10本章小結 116
5.11課後練習 118
第6章Python數據可視化——分析報告必要元素 119
6.1離散型變數的可視化 119
6.1.1餅圖——“芝麻信用”失信用戶分布 120
6.1.2條形圖——胡潤排行榜 124
6.2.1直方圖與核密度曲線——展現年齡分布特徵 134
6.2.2箱線圖——二手房單價分布形態 138
6.2.3小提琴圖——客戶消費數據的呈現 142
6.2.4折線圖——公眾號每日閱讀趨勢 144
6.3關係型數據的可視化 149
6.3.1散點圖——探究鳶尾花花瓣長度與寬度的關係 149
6.3.2氣泡圖——暴露商品的銷售特徵 153
6.3.3熱力圖——一份簡單的月度日曆 154
6.4多個圖形的合併 157
6.5本章小結 160
6.6課後練習 161
7.2多元線性回歸模型——銷售利潤預測 167
7.2.1回歸模型的參數求解 167
7.2.2回歸模型的預測 168
7.3回歸模型的假設檢驗 171
7.3.2回歸係數的顯著性檢驗——t檢驗 174
7.4回歸模型的診斷 175
7.4.1正態性檢驗 176
7.4.3線性相關性檢驗 179
7.4.4異常值檢驗 181
7.4.5獨立性檢驗 184
7.4.6方差齊性檢驗 184
7.5本章小結 187
7.6課後練習 188
第8章嶺回歸與LASSO回歸模型 189
8.1嶺回歸模型 189
8.1.1參數求解 190
8.1.2係數求解的幾何意義 191
8.2嶺回歸模型的套用——糖尿病病情預測(1) 192
8.2.1可視化方法確定λ值 192
8.2.2交叉驗證法確定λ值 194
8.2.3模型的預測 196
8.3LASSO回歸模型——糖尿病病情預測(2) 197
8.3.1參數求解 197
8.3.2係數求解的幾何意義 199
8.4LASSO回歸模型的套用 200
8.4.1可視化方法確定λ值 200
8.4.2交叉驗證法確定λ值 201
8.4.3模型的預測 202
8.5本章小結 204
8.6課後練習 205
9.1.1Logistic模型的參數求解 209
9.1.2Logistic模型的參數解釋 211
9.2分類模型的評估方法 211
9.2.1混淆矩陣 212
9.2.3K-S曲線 214
9.3Logistic回歸模型的套用——運動狀態的識別 217
9.3.1模型的構建 217
9.3.2模型的預測 219
9.3.3模型的評估 219
9.4本章小結 223
9.5課後練習 224
第10章決策樹與隨機森林 225
10.1節點欄位的選擇 226
10.1.1信息增益 227
10.1.3基尼指數 230
10.2決策樹的剪枝 233
10.2.1誤差降低剪枝法 234
10.2.2悲觀剪枝法 234
10.2.3代價複雜度剪枝法 236
10.3隨機森林 237
10.4決策樹與隨機森林的套用——腎病患者病情預測 239
10.4.1分類問題的解決 239
10.4.2預測問題的解決 246
10.5本章小結 249
10.6課後練習 250
第11章KNN模型及套用 251
11.1KNN算法的思想 251
11.2最佳k值的選擇 252
11.3相似度的度量方法 253
11.3.1歐式距離 253
11.3.2曼哈頓距離 254
11.3.4傑卡德相似係數 255
11.4近鄰樣本的搜尋方法 255
11.4.1KD樹搜尋法 256
11.4.2球樹搜尋法 259
11.5KNN模型的套用——高爐發電量的預測 260
11.5.1分類問題的解決 261
11.5.2預測問題的解決 265
11.6本章小結 269
11.7課後練習 270
12.1樸素貝葉斯理論基礎 272
12.2幾種貝葉斯模型 273
12.2.2高斯貝葉斯分類器的套用——面部皮膚的判別 275
12.2.3多項式貝葉斯分類器 278
12.2.4多項式貝葉斯分類器的套用——蘑菇毒性的預判 280
12.2.6伯努利貝葉斯分類器的套用——評論的情感識別 285
12.3本章小結 289
12.4課後練習 290
第13章SVM模型及套用 292
13.1SVM簡介 293
13.1.1距離公式的介紹 293
13.1.2SVM的實現思想 294
13.2幾種常見的SVM模型 295
13.2.1線性可分的SVM 295
13.2.2一個手動計算的案例 298
13.2.3近似線性可分SVM 300
13.2.4非線性可分SVM 303
13.2.5幾種常用的SVM核函式 304
13.2.6SVM的回歸預測 306
13.3分類問題的解決——手寫字母的識別 308
13.4預測問題的解決——受災面積的預測 310
13.5本章小結 314
13.6課後練習 315
第14章GBDT模型及套用 316
14.1提升樹算法 317
14.1.1AdaBoost算法的損失函式 317
14.1.2AdaBoost算法的操作步驟 319
14.1.3AdaBoost算法的簡單例子 320
14.1.4AdaBoost算法的套用——違約客戶的識別 322
14.2梯度提升樹算法 328
14.2.1GBDT算法的操作步驟 328
14.2.2GBDT分類算法 329
14.2.3GBDT回歸算法 330
14.2.4GBDT算法的套用——欺詐交易的識別 331
14.3非平衡數據的處理 334
14.4XGBoost算法 336
14.4.1XGBoost算法的損失函式 336
14.4.2損失函式的演變 337
14.4.3XGBoost算法的套用 340
14.5本章小結 346
14.6課後練習 347
第15章Kmeans聚類分析 349
15.1Kmeans聚類 350
15.1.1Kmeans的思想 350
15.1.2Kmeans的原理 351
15.2最佳k值的確定 352
15.2.1拐點法 352
15.2.2輪廓係數法 355
15.2.3間隔統計量法 357
15.3Kmeans聚類的套用 359
15.3.1鳶尾花類別的聚合 360
15.3.2基於NBA球員歷史參賽數據的聚類 363
15.4Kmeans聚類的注意事項 367
15.5本章小結 367
15.6課後練習 368
第16章DBSCAN與層次聚類分析 369
16.1密度聚類簡介 370
16.1.1密度聚類相關的概念 370
16.1.2密度聚類的步驟 371
16.2密度聚類與Kmeans的比較 373
16.3層次聚類 376
16.3.1簇間的距離度量 377
16.3.2層次聚類的步驟 378
16.3.3三種層次聚類的比較 380
16.4密度聚類與層次聚類的套用——基於各省出生率與死亡率的聚類 382
16.5本章小結 388
16.6課後練習 390
第4章Python數值計算——numpy的高效技能 60
4.1數組的創建與操作 60
4.1.1數組的創建 60
4.1.2數組元素的獲取 61
4.1.3數組的常用屬性 63
4.1.4數組的形狀處理 64
4.2數組的基本運算符 67
4.2.1四則運算 67
4.2.2比較運算 68
4.2.3廣播運算 70
4.3常用的數學和統計函式 71
4.4線性代數的相關計算 73
4.4.1矩陣乘法 73
4.4.2diag函式的使用 74
4.4.3特徵根與特徵向量 75
4.4.5多元一次方程組的求解 76
4.4.6範數的計算 76
4.5偽隨機數的生成 77
4.6本章小結 80
4.7課後練習 81
第5章Python數據處理——展現pandas的強大 82
5.1序列與數據框的構造 82
5.1.1構造序列 83
5.1.2構造數據框 85
5.2外部數據的讀取 86
5.2.1文本檔案的讀取 86
5.2.2電子表格的讀取 88
5.2.3資料庫數據的讀取 89
5.3數據類型轉換及描述統計 91
5.4字元與日期數據的處理 95
5.5常用的數據清洗方法 99
5.5.1重複觀測處理 99
5.5.2缺失值處理 100
5.5.3異常值處理 103
5.6數據子集的獲取 106
5.7透視表功能 108
5.8表之間的合併與連線 111
5.9分組聚合操作 114
5.10本章小結 116
5.11課後練習 118
第6章Python數據可視化——分析報告必要元素 119
6.1離散型變數的可視化 119
6.1.1餅圖——“芝麻信用”失信用戶分布 120
6.1.2條形圖——胡潤排行榜 124
6.2.1直方圖與核密度曲線——展現年齡分布特徵 134
6.2.2箱線圖——二手房單價分布形態 138
6.2.3小提琴圖——客戶消費數據的呈現 142
6.2.4折線圖——公眾號每日閱讀趨勢 144
6.3關係型數據的可視化 149
6.3.1散點圖——探究鳶尾花花瓣長度與寬度的關係 149
6.3.2氣泡圖——暴露商品的銷售特徵 153
6.3.3熱力圖——一份簡單的月度日曆 154
6.4多個圖形的合併 157
6.5本章小結 160
6.6課後練習 161
7.2多元線性回歸模型——銷售利潤預測 167
7.2.1回歸模型的參數求解 167
7.2.2回歸模型的預測 168
7.3回歸模型的假設檢驗 171
7.3.2回歸係數的顯著性檢驗——t檢驗 174
7.4回歸模型的診斷 175
7.4.1正態性檢驗 176
7.4.3線性相關性檢驗 179
7.4.4異常值檢驗 181
7.4.5獨立性檢驗 184
7.4.6方差齊性檢驗 184
7.5本章小結 187
7.6課後練習 188
第8章嶺回歸與LASSO回歸模型 189
8.1嶺回歸模型 189
8.1.1參數求解 190
8.1.2係數求解的幾何意義 191
8.2嶺回歸模型的套用——糖尿病病情預測(1) 192
8.2.1可視化方法確定λ值 192
8.2.2交叉驗證法確定λ值 194
8.2.3模型的預測 196
8.3LASSO回歸模型——糖尿病病情預測(2) 197
8.3.1參數求解 197
8.3.2係數求解的幾何意義 199
8.4LASSO回歸模型的套用 200
8.4.1可視化方法確定λ值 200
8.4.2交叉驗證法確定λ值 201
8.4.3模型的預測 202
8.5本章小結 204
8.6課後練習 205
9.1.1Logistic模型的參數求解 209
9.1.2Logistic模型的參數解釋 211
9.2分類模型的評估方法 211
9.2.1混淆矩陣 212
9.2.3K-S曲線 214
9.3Logistic回歸模型的套用——運動狀態的識別 217
9.3.1模型的構建 217
9.3.2模型的預測 219
9.3.3模型的評估 219
9.4本章小結 223
9.5課後練習 224
第10章決策樹與隨機森林 225
10.1節點欄位的選擇 226
10.1.1信息增益 227
10.1.3基尼指數 230
10.2決策樹的剪枝 233
10.2.1誤差降低剪枝法 234
10.2.2悲觀剪枝法 234
10.2.3代價複雜度剪枝法 236
10.3隨機森林 237
10.4決策樹與隨機森林的套用——腎病患者病情預測 239
10.4.1分類問題的解決 239
10.4.2預測問題的解決 246
10.5本章小結 249
10.6課後練習 250
第11章KNN模型及套用 251
11.1KNN算法的思想 251
11.2最佳k值的選擇 252
11.3相似度的度量方法 253
11.3.1歐式距離 253
11.3.2曼哈頓距離 254
11.3.4傑卡德相似係數 255
11.4近鄰樣本的搜尋方法 255
11.4.1KD樹搜尋法 256
11.4.2球樹搜尋法 259
11.5KNN模型的套用——高爐發電量的預測 260
11.5.1分類問題的解決 261
11.5.2預測問題的解決 265
11.6本章小結 269
11.7課後練習 270
12.1樸素貝葉斯理論基礎 272
12.2幾種貝葉斯模型 273
12.2.2高斯貝葉斯分類器的套用——面部皮膚的判別 275
12.2.3多項式貝葉斯分類器 278
12.2.4多項式貝葉斯分類器的套用——蘑菇毒性的預判 280
12.2.6伯努利貝葉斯分類器的套用——評論的情感識別 285
12.3本章小結 289
12.4課後練習 290
第13章SVM模型及套用 292
13.1SVM簡介 293
13.1.1距離公式的介紹 293
13.1.2SVM的實現思想 294
13.2幾種常見的SVM模型 295
13.2.1線性可分的SVM 295
13.2.2一個手動計算的案例 298
13.2.3近似線性可分SVM 300
13.2.4非線性可分SVM 303
13.2.5幾種常用的SVM核函式 304
13.2.6SVM的回歸預測 306
13.3分類問題的解決——手寫字母的識別 308
13.4預測問題的解決——受災面積的預測 310
13.5本章小結 314
13.6課後練習 315
第14章GBDT模型及套用 316
14.1提升樹算法 317
14.1.1AdaBoost算法的損失函式 317
14.1.2AdaBoost算法的操作步驟 319
14.1.3AdaBoost算法的簡單例子 320
14.1.4AdaBoost算法的套用——違約客戶的識別 322
14.2梯度提升樹算法 328
14.2.1GBDT算法的操作步驟 328
14.2.2GBDT分類算法 329
14.2.3GBDT回歸算法 330
14.2.4GBDT算法的套用——欺詐交易的識別 331
14.3非平衡數據的處理 334
14.4XGBoost算法 336
14.4.1XGBoost算法的損失函式 336
14.4.2損失函式的演變 337
14.4.3XGBoost算法的套用 340
14.5本章小結 346
14.6課後練習 347
第15章Kmeans聚類分析 349
15.1Kmeans聚類 350
15.1.1Kmeans的思想 350
15.1.2Kmeans的原理 351
15.2最佳k值的確定 352
15.2.1拐點法 352
15.2.2輪廓係數法 355
15.2.3間隔統計量法 357
15.3Kmeans聚類的套用 359
15.3.1鳶尾花類別的聚合 360
15.3.2基於NBA球員歷史參賽數據的聚類 363
15.4Kmeans聚類的注意事項 367
15.5本章小結 367
15.6課後練習 368
第16章DBSCAN與層次聚類分析 369
16.1密度聚類簡介 370
16.1.1密度聚類相關的概念 370
16.1.2密度聚類的步驟 371
16.2密度聚類與Kmeans的比較 373
16.3層次聚類 376
16.3.1簇間的距離度量 377
16.3.2層次聚類的步驟 378
16.3.3三種層次聚類的比較 380
16.4密度聚類與層次聚類的套用——基於各省出生率與死亡率的聚類 382
16.5本章小結 388
16.6課後練習 390