內容簡介
隨著數據存儲、數據處理等大數據技術的快速發展,數據科學在各行各業得到廣泛的套用。數據清洗、特徵工程、數據可視化、數據挖掘與建模等已成為高校師生和職場人士迎接數位化浪潮、與時俱進提升專業技能的必修課程。本書將“Python課程學習”與“數據科學套用”有機結合,為數位化人才的培養助力。
全書共分13章,內容包括:第1章數據科學套用概述;第2章Python的入門基礎知識;第3章數據清洗;第4~6章特徵工程介紹,包括特徵選擇、特徵處理和特徵提取;第7章數據可視化套用;第8~13章介紹6種數據挖掘與建模的方法,分別為線性回歸、Logistic回歸、決策樹、隨機森林、神經網路、RFM分析。
《Python數據科學套用從入門到精通》既適合作為經濟學、管理學、統計學、金融學、社會學、醫學、電子商務等相關專業的學生學習Python數據科學套用的專業教材或參考書,也適合作為企事業單位數位化人才培養的教科書與工具書。此外,還可以作為職場人士提升數據處理與分析挖掘能力,提高工作效能和績效水平的自學Python數據科學套用的工具書。
圖書目錄
目 錄
第1章 數據科學套用概述 1
1.1 什麼是數據清洗、特徵工程、數據可視化、數據挖掘與建模 1
1.1.1 數據清洗的概念 1
1.1.2 特徵工程的概念 2
1.1.3 數據可視化的概念 4
1.1.4 數據挖掘與建模的概念 4
1.2 為什麼要開展數據清洗、特徵工程、數據可視化和數據挖掘與建模 4
1.2.1 數據清洗、特徵工程的重要性 4
1.2.2 數據可視化的重要性 5
1.2.3 數據挖掘與建模的重要性 5
1.3 為什麼要將Python作為實現工具 6
1.4 數據清洗、特徵工程、數據可視化和數據挖掘與建模的主要內容 6
1.4.1 數據清洗的主要內容 6
1.4.2 特徵工程的主要內容 7
1.4.3 數據可視化的主要內容 7
1.4.4 數據挖掘與建模的主要內容 8
1.5 數據清洗、特徵工程、數據可視化和數據挖掘與建模的套用場景 8
1.5.1 數據清洗、特徵工程的套用場景 8
1.5.2 數據可視化的套用場景 9
1.5.3 數據挖掘與建模的套用場景 10
1.6 數據清洗、特徵工程和數據可視化的注意事項 14
1.6.1 數據清洗、特徵工程的注意事項 14
1.6.2 數據可視化的注意事項 14
1.7 數據挖掘與建模的注意事項 15
1.8 習題 19
第2章 Python入門基礎 21
2.1 Python概述 21
2.2 Anaconda平台的下載與安裝 22
2.2.1 Anaconda平台的下載 22
2.2.2 Anaconda平台的安裝 24
2.2.3 Anaconda Prompt (Anaconda3) 26
2.2.4 Spyder (Anaconda3)的介紹及偏好設定 26
2.2.5 Spyder (Anaconda3)視窗介紹 29
2.3 Python的注釋 34
2.4 基本輸出函式—print()函式 35
2.5 基本輸入函式—input()函式 36
2.6 Python的保留字與標識符 37
2.6.1 Python中的保留字 37
2.6.2 Python的標識符 37
2.7 Python的變數 38
2.8 Python的基本數據類型 39
2.9 Python的數據運算符 43
2.10 Python序列的概念及通用操作 45
2.10.1 索引 46
2.10.2 切片 46
2.10.3 相加 47
2.10.4 相乘 48
2.10.5 元素檢查 48
2.10.6 與序列相關的內置函式 49
2.11 Python列表 50
2.11.1 列表的基本操作 50
2.11.2 列表元素的基本操作 52
2.12 Python元組 53
2.12.1 元組的基本操作 53
2.12.2 元組元素的基本操作 55
2.13 Python字典 55
2.13.1 字典的基本操作 56
2.13.2 字典元素的基本操作 58
2.14 Python集合 60
2.15 Python字元串 61
2.16 習題 65
第3章 數據清洗 67
3.1 Python數據清洗基礎 67
3.1.1 Python函式與模組 67
3.1.2 numpy模組數組 74
3.1.3 pandas模組序列 79
3.1.4 pandas模組數據框 81
3.1.5 Python流程控制語句 86
3.2 Python數據讀取、合併、寫入 90
3.2.1 讀取、合併、寫入文本檔案(CSV或者TXT) 90
3.2.2 讀取、合併、寫入Excel數據檔案 98
3.2.3 讀取、合併、寫入Stata數據檔案 99
3.2.4 讀取、合併SPSS數據檔案 100
3.3 Python數據檢索 102
3.4 Python數據行列處理 103
3.4.1 刪除變數列、樣本行 104
3.4.2 更改變數的列名稱、調整變數列順序 104
3.4.3 改變列的數據格式 106
3.4.4 多列轉換 106
3.4.5 數據百分比格式轉換 107
3.5 Python數據缺失值處理 107
3.5.1 查看數據集中的缺失值 108
3.5.2 填充數據集中的缺失值 109
3.5.3 刪除數據集中的缺失值 113
3.6 Python數據重複值處理 115
3.6.1 查看數據集中的重複值 115
3.6.2 刪除數據集中的重複值 117
3.7 Python數據異常值處理 118
3.7.1 運用3δ準則檢測異常值 118
3.7.2 繪製箱圖檢測異常值 119
3.7.3 刪除異常值 121
3.7.4 3δ準則替換異常值 122
3.7.5 1%/99%分位數替換異常值 123
3.8 Python數據透視表、描述性分析和交叉表分析 124
3.8.1 數據透視表 124
3.8.2 描述性分析 129
3.8.3 交叉表分析 132
3.9 習題 136
第4章 特徵選擇 138
4.1 特徵選擇的概念、原則及方法 138
4.1.1 特徵選擇的概念 138
4.1.2 特徵選擇的原則 139
4.1.3 特徵選擇的方法 139
4.2 過濾法—去掉低方差的特徵 141
4.3 過濾法—單變數特徵選擇 144
4.3.1 卡方檢驗 144
4.3.2 相關性分析 146
4.3.3 方差分析(F檢驗) 149
4.3.4 互信息 150
4.4 包裹法—遞歸特徵消除 151
4.5 嵌入法 152
4.5.1 隨機森林算法選擇特徵變數 153
4.5.2 提升法算法選擇特徵變數 155
4.5.3 Logistic回歸算法選擇特徵變數 156
4.5.4 線性支持向量機算法選擇特徵變數 158
4.6 習題 159
第5章 特徵處理 161
5.1 特徵歸一化、特徵標準化、樣本歸一化 161
5.1.1 特徵歸一化 162
5.1.2 特徵標準化 164
5.1.3 樣本歸一化 165
5.2 特徵等寬分箱和等頻分箱 168
5.3 特徵決策樹分箱 170
5.3.1 信息熵 170
5.3.2 信息增益 170
5.3.3 增益比率 171
5.3.4 基尼指數 171
5.3.5 變數重要性 172
5.3.6 特徵決策樹分箱的Python實現 172
5.4 特徵卡方分箱 174
5.5 WOE(證據權重)和IV(信息價值) 175
5.5.1 WOE和IV的概念 175
5.5.2 WOE的作用 176
5.5.3 WOE編碼注意事項 177
5.5.4 IV的作用 177
5.5.5 為什麼使用IV而不是WOE來判斷特徵變數的預測能力 178
5.6 WOE、IV的Python實現 179
5.6.1 載入分析所需要的模組和函式 179
5.6.2 數據讀取及觀察 179
5.6.3 描述性統計分析 181
5.6.4 特徵變數篩選 182
5.6.5 劃分訓練樣本和測試樣本 183
5.6.6 分箱操作 184
5.6.7 畫分箱圖 185
5.6.8 調整分箱 190
5.6.9 將訓練樣本和測試樣本進行WOE編碼 192
5.6.10 構建Logistic模型進行預測 193
5.6.11 模型預測及評價 194
5.6.12 繪製ROC曲線,計算AUC值 196
5.7 習題 198
第 6 章 特徵提取 199
6.1 無監督降維技術—主成分分析 199
6.1.1 主成分分析的基本原理 199
6.1.2 主成分分析的數學概念 200
6.1.3 主成分的特徵值 201
6.1.4 樣本的主成分得分 201
6.1.5 主成分載荷 202
6.1.6 主成分分析的Python實現 203
6.2 有監督降維技術—線性判別分析 210
6.2.1 線性判別分析的基本原理 210
6.2.2 線性判別分析的算法過程 212
6.2.3 線性判別分析的Python實現 212
6.3 習題 222
第 7 章 數據可視化 224
7.1 四象限圖 224
7.1.1 四象限圖簡介 224
7.1.2 案例數據介紹 225
7.1.3 Python代碼示例 227
7.2 熱力圖 230
7.2.1 熱力圖簡介 230
7.2.2 案例數據介紹 231
7.2.3 Python代碼示例 231
7.3 直方圖 234
7.3.1 直方圖簡介 234
7.3.2 案例數據介紹 236
7.3.3 Python代碼示例 236
7.4 條形圖、核密度圖和正態QQ圖 242
7.4.1 條形圖、核密度圖和正態QQ圖簡介 242
7.4.2 案例數據介紹 243
7.4.3 Python代碼示例 243
7.5 散點圖 246
7.5.1 散點圖簡介 246
7.5.2 案例數據介紹 247
7.5.3 Python代碼示例 249
7.6 線圖(含時間序列趨勢圖) 255
7.6.1 線圖(含時間序列趨勢圖)簡介 255
7.6.2 案例數據介紹 257
7.6.3 Python代碼示例 258
7.7 雙縱軸線圖 260
7.7.1 雙縱軸線圖簡介 260
7.7.2 案例數據介紹 260
7.7.3 Python代碼示例 260
7.8 回歸擬合圖 262
7.8.1 回歸擬合圖簡介 262
7.8.2 案例數據介紹 263
7.8.3 Python代碼示例 263
7.9 箱圖 265
7.9.1 箱圖簡介 265
7.9.2 案例數據介紹 267
7.9.3 Python代碼示例 267
7.10 小提琴圖 271
7.10.1 小提琴圖簡介 271
7.10.2 案例數據介紹 273
7.10.3 Python代碼示例 274
7.11 聯合分布圖 276
7.11.1 聯合分布圖簡介 276
7.11.2 案例數據介紹 277
7.11.3 Python代碼示例 277
7.12 雷達圖 281
7.12.1 雷達圖簡介 281
7.12.2 案例數據介紹 281
7.12.3 Python代碼示例 282
7.13 餅圖 287
7.13.1 餅圖簡介 287
7.13.2 案例數據介紹 288
7.13.3 Python代碼示例 289
7.14 習題 291
第8章 數據挖掘與建模1——線性回歸 299
8.1 基本思想 299
8.1.1 線性回歸算法的概念及數學解釋 299
8.1.2 線性回歸算法的優點 301
8.1.3 線性回歸算法的缺點 302
8.2 套用案例 302
8.2.1 數據挖掘與建模思路 302
8.2.2 數據檔案介紹 303
8.2.3 導入分析所需要的模組和函式 303
8.2.4 數據讀取及觀察 304
8.3 使用smf進行線性回歸 305
8.3.1 使用smf進行線性回歸 306
8.3.2 多重共線性檢驗 310
8.3.3 解決多重共線性問題 311
8.3.4 繪製擬合回歸平面 312
8.4 使用sklearn進行線性回歸 313
8.4.1 使用驗證集法進行模型擬合 315
8.4.2 更換隨機數種子,使用驗證集法進行模型擬合 315
8.4.3 使用10折交叉驗證法進行模型擬合 316
8.4.4 使用10折重複10次交叉驗證法進行模型擬合 318
8.4.5 使用留一交叉驗證法進行模型擬合 318
8.5 習題 319
第9章 數據挖掘與建模2——Logistic回歸 320
9.1 基本思想 320
9.1.1 Logistic回歸算法的概念及數學解釋 320
9.1.2 “分類問題監督式學習”的性能度量 321
9.2 套用案例 327
9.2.1 數據檔案介紹 327
9.2.2 導入分析所需要的模組和函式 327
9.2.3 數據讀取及觀察 328
9.3 描述性分析 330
9.4 數據處理 332
9.4.1 區分分類特徵和連續特徵並進行處理 332
9.4.2 將樣本全集分割為訓練樣本和測試樣本 333
9.5 建立二元Logistic回歸算法模型 334
9.5.1 使用statsmodels建立二元Logistic回歸算法模型 334
9.5.2 使用sklearn建立二元Logistic回歸算法模型 339
9.5.3 特徵變數重要性水平分析 342
9.5.4 繪製ROC曲線,計算AUC值 345
9.5.5 計算科恩kappa得分 346
9.6 習題 347
第10章 數據挖掘與建模3——決策樹 349
10.1 基本思想 349
10.1.1 決策樹算法的概念與原理 349
10.1.2 決策樹的剪枝 350
10.1.3 包含剪枝決策樹的損失函式 351
10.2 數據準備 352
10.2.1 案例數據說明 352
10.2.2 導入分析所需要的模組和函式 353
10.3 分類問題決策樹算法示例 354
10.3.1 變數設定及數據處理 354
10.3.2 未考慮成本-複雜度剪枝的決策樹分類算法模型 355
10.3.3 考慮成本-複雜度剪枝的決策樹分類算法模型 358
10.3.4 繪製圖形觀察葉節點總不純度隨alpha值的變化情況 359
10.3.5 繪製圖形觀察節點數和樹的深度隨alpha值的變化情況 359
10.3.6 繪製圖形觀察訓練樣本和測試樣本的預測準確率隨alpha值的變化情況 360
10.3.7 通過10折交叉驗證法尋求最優alpha值 361
10.3.8 決策樹特徵變數重要性水平分析 362
10.3.9 繪製ROC曲線 363
10.3.10 運用兩個特徵變數繪製決策樹算法決策邊界圖 363
10.4 回歸問題決策樹算法示例 365
10.4.1 變數設定及數據處理 365
10.4.2 未考慮成本-複雜度剪枝的決策樹回歸算法模型 366
10.4.3 考慮成本-複雜度剪枝的決策樹回歸算法模型 367
10.4.4 繪製圖形觀察葉節點總均方誤差隨alpha值的變化情況 368
10.4.5 繪製圖形觀察節點數和樹的深度隨alpha值的變化情況 368
10.4.6 繪製圖形觀察訓練樣本和測試樣本的擬合優度隨alpha值的變化情況 369
10.4.7 通過10折交叉驗證法尋求最優alpha值並開展特徵變數重要性水平分析 370
10.4.8 最優模型擬合效果圖形展示 372
10.4.9 構建線性回歸算法模型進行對比 373
10.5 習題 373
第11章 數據挖掘與建模4——隨機森林 374
11.1 隨機森林算法的基本原理 374
11.1.1 模型融合的基本思想 374
11.1.2 集成學習的概念與分類 378
11.1.3 裝袋法的概念與原理 379
11.1.4 隨機森林算法的概念與原理 380
11.1.5 隨機森林算法特徵變數重要性度量 380
11.1.6 部分依賴圖與個體條件期望圖 380
11.2 數據準備 381
11.2.1 案例數據說明 382
11.2.2 導入分析所需要的模組和函式 382
11.3 分類問題隨機森林算法示例 382
11.3.1 變數設定及數據處理 383
11.3.2 二元Logistic回歸和單棵分類決策樹算法 383
11.3.3 裝袋法分類算法 384
11.3.4 隨機森林分類算法 385
11.3.5 尋求max_features最優參數 385
11.3.6 尋求n_estimators最優參數 386
11.3.7 隨機森林特徵變數重要性水平分析 388
11.3.8 繪製部分依賴圖與個體條件期望圖 389
11.3.9 模型性能評價 390
11.3.10 繪製ROC曲線 392
11.3.11 運用兩個特徵變數繪製隨機森林算法決策邊界圖 392
11.4 回歸問題隨機森林算法示例 393
11.4.1 變數設定及數據處理 393
11.4.2 線性回歸、單棵回歸決策樹算法 394
11.4.3 裝袋法回歸算法 395
11.4.4 隨機森林回歸算法 395
11.4.5 尋求max_features最優參數 395
11.4.6 尋求n_estimators最優參數 396
11.4.7 隨機森林特徵變數重要性水平分析 399
11.4.8 繪製部分依賴圖與個體條件期望圖 400
11.4.9 最優模型擬合效果圖形展示 401
11.5 習題 402
第12章 數據挖掘與建模5——神經網路 404
12.1 神經網路算法的基本原理 404
12.1.1 神經網路算法的基本思想 404
12.1.2 感知機 406
12.1.3 多層感知機 410
12.1.4 神經元激活函式 411
12.1.5 誤差反向傳播算法(BP算法) 416
12.1.6 萬能近似定理及多隱藏層優勢 424
12.1.7 BP算法過擬合問題的解決 424
12.2 數據準備 426
12.2.1 案例數據說明 426
12.2.2 導入分析所需要的模組和函式 428
12.3 回歸神經網路算法示例 428
12.3.1 變數設定及數據處理 428
12.3.2 單隱藏層的多層感知機算法 429
12.3.3 神經網路特徵變數重要性水平分析 431
12.3.4 繪製部分依賴圖與個體條件期望圖 432
12.3.5 擬合優度隨神經元個數變化的可視化展示 433
12.3.6 通過K折交叉驗證尋求單隱藏層最優神經元個數 434
12.3.7 雙隱藏層的多層感知機算法 436
12.3.8 最優模型擬合效果圖形展示 437
12.4 二分類神經網路算法示例 438
12.4.1 變數設定及數據處理 438
12.4.2 單隱藏層二分類問題神經網路算法 439
12.4.3 雙隱藏層二分類問題神經網路算法 440
12.4.4 早停策略減少過擬合問題 440
12.4.5 正則化(權重衰減)策略減少過擬合問題 441
12.4.6 模型性能評價 441
12.4.7 繪製ROC曲線 443
12.4.8 運用兩個特徵變數繪製二分類神經網路算法決策邊界圖 443
12.5 習題 444
第13章 數據挖掘與建模6據挖掘與建分析 446
13.1 RFM分析的基本原理 446
13.1.1 RFM分析的基本思想 446
13.1.2 RFM分類組合與客戶類型對應情況 447
13.1.3 不同類型客戶的特點及市場行銷策略 448
13.2 數據準備 449
13.2.1 案例數據說明 450
13.2.2 導入分析所需要的模組和函式 450
13.3 RFM分析示例 450
13.3.1 數據讀取及觀察 450
13.3.2 計算R、F、M分值 453
13.3.3 生成RFM數據集 455
13.3.4 不同類別客戶數量分析 459
13.3.5 不同類別客戶消費金額分析 462
13.4 習題 465