梯度提升算法實戰——基於XGBoost和scikit-learn
[美]科里·韋德(Corey Wade),張生軍
買這商品的人也買了...
-
$254Python 數據處理與挖掘
-
$980$774 -
$556AI 源碼解讀:機器學習案例 (Python版)
-
$454AI 源碼解讀:循環神經網絡(RNN)深度學習案例 (Python版)
-
$594$564 -
$403PyTorch 開發入門:深度學習模型的構建與程序實現
-
$403動手學推薦系統 — 基於 PyTorch 的算法實現 (微課視頻版)
-
$500$390 -
$414$393 -
$708$673 -
$500$390 -
$580$458 -
$650$514 -
$650$513 -
$602因果推斷與機器學習
-
$880$695 -
$880$695 -
$499$394 -
$680$530 -
$465Python 量化投資指南 — 基礎、數據與實戰
-
$948$901 -
$474$450 -
$599$569 -
$600$570 -
$720$569
相關主題
商品描述
目錄大綱
目錄
第一部分 裝袋和提升
第1章 機器學習概覽 2
1.1 XGBoost概覽 2
1.2 數據整理 3
1.2.1 數據集1:自行車租賃數據集 3
1.2.2 理解數據 5
1.2.3 糾正空值 7
1.3 回歸預測 12
1.3.1 預測自行車租賃數量 12
1.3.2 保存數據以備將來使用 12
1.3.3 聲明預測列和目標列 13
1.3.4 理解回歸 13
1.3.5 訪問 scikit-learn 14
1.3.6 關閉警告信息 14
1.3.7 線性回歸建模 14
1.3.8 XGBoost 16
1.3.9 XGBRegressor 16
1.3.10 交叉驗證 17
1.4 分類預測 20
1.4.1 什麽是分類? 20
1.4.2 數據集2:人口普查數據集 21
1.4.3 XGBoost分類器 26
1.5 總結 27
第2章 深入淺出決策樹 28
2.1 介紹XGBoost決策樹 28
2.2 探索決策樹 29
2.2.1 第一個決策樹模型 29
2.2.2 決策樹內部結構 30
2.3 對比方差和偏差 32
2.4 調整決策樹超參數 35
2.4.1 決策樹回歸器 35
2.4.2 一般超參數 37
2.4.3 綜合微調超參數 43
2.5 實例:預測心臟病 43
2.5.1 心臟病數據集 43
2.5.2 決策樹分類器 45
2.5.3 選擇超參數 46
2.5.4 縮小範圍 46
2.5.5 feature_importances_ 47
2.6 總結 49
第3章 隨機森林與裝袋法 50
3.1 裝袋集成 50
3.1.1 集成方法 50
3.1.2 自助聚合 51
3.2 探索隨機森林 52
3.2.1 隨機森林分類器 52
3.2.2 隨機森林回歸器 54
3.3 隨機森林超參數 55
3.3.1 oob_score 55
3.3.2 n_estimators 56
3.3.3 warm_start 57
3.3.4 自助法 58
3.3.5 冗長度 59
3.3.6 決策樹超參數 59
3.4 實例:突破隨機森林邊界 59
3.4.1 準備數據集 60
3.4.2 n_estimators 60
3.4.3 cross_val_score 61
3.4.4 微調超參數 61
3.4.5 隨機森林的缺點 65
3.5 總結 66
第4章 從梯度提升到XGBoost 67
4.1 從裝袋到提升 67
4.1.1 AdaBoost簡介 68
4.1.2 有所區別的梯度提升算法 68
4.2 梯度提升的工作原理 69
4.2.1 殘差 69
4.2.2 學習如何從零開始構建梯度提升模型 70
4.2.3 在 scikit-learn 中構建梯度提升模型 73
4.3 修改梯度提升超參數 74
4.3.1 learning_rate 74
4.3.2 基學習器 76
4.3.3 subsample 77
4.3.4 RandomizedSearchCV 78
4.3.5 XGBoost 80
4.4 接近大數據——梯度提升與XGBoost的比較 80
4.4.1 介紹系外行星數據集 81
4.4.2 預處理系外行星數據集 82
4.4.3 構建梯度提升分類器 83
4.4.4 時間模塊 83
4.4.5 比較速度 84
4.5 總結 86
第二部分 XGBoost
第5章 XGBoost揭秘 88
5.1 設計XGBoost 88
5.1.1 背景描述 88
5.1.2 設計特點 89
5.2 分析 XGBoost 參數 91
5.3 構建XGBoost模型 94
5.3.1 鳶尾花數據集 95
5.3.2 糖尿病數據集 97
5.4 案例:尋找希格斯玻色子 99
5.4.1 物理學背景 99
5.4.2 Kaggle競賽 100
5.4.3 XGBoost和希格斯玻色子挑戰賽 100
5.4.4 數據 100
5.4.5 評分 103
5.4.6 權重 104
5.4.7 模型 105
5.5 總結 107
第6章 XGBoost 超參數 108
6.1 準備數據和基礎模型 108
6.1.1 心臟病數據集 108
6.1.2 XGBClassifier 110
6.1.3 StratifiedKFold 111
6.1.4 基線模型 112
6.1.5 結合 GridSearchCV 和 RandomizedSearchCV 112
6.2 優化 XGBoost 超參數 113
6.3 應用提前停止 117
6.3.1 什麽是提前停止? 118
6.3.2 eval_set 和 eval_metric 118
6.3.3 early_stopping_rounds 120
6.4 組合超參數 121
6.4.1 一次一個超參數 121
6.4.2 超參數調整 124
6.5 總結 126
第7章 用XGBoost發現系外行星 127
7.1 尋找系外行星 127
7.1.1 背景描述 128
7.1.2 系外行星數據集 128
7.1.3 繪制數據圖表 129
7.1.4 準備數據 132
7.1.5 初始化 XGBClassifier 133
7.2 分析混淆矩陣 134
7.2.1 confusion_matrix 134
7.2.2 classification_report 135
7.2.3 備選評分方法 137
7.3 重採樣不平衡數據 139
7.3.1 重採樣 139
7.3.2 欠採樣 139
7.3.3 過採樣 141
7.4 調整和縮放 XGBClassifier 143
7.4.1 調整權重 144
7.4.2 調整 XGBClassifier 145
7.4.3 鞏固成果 151
7.4.4 分析結果 153
7.5 總結 154
第三部分 XGBoost進階
第8章 XGBoost的備選基學習器 156
8.1 備選基學習器概覽 156
8.1.1 gblinear 157
8.1.2 DART 157
8.1.3 XGBoost隨機森林 158
8.2 應用 gblinear 158
8.2.1 將 gblinear 應用於糖尿病數據集 158
8.2.2 線性數據集 164
8.2.3 gblinear 分析 166
8.3 比較DART 166
8.3.1 DART與XGBRegressor 166
8.3.2 使用XGBClassifier的DART 167
8.3.3 DART超參數 168
8.3.4 修改DART超參數 170
8.3.5 DART分析 171
8.4 尋找 XGBoost 隨機森林 172
8.4.1 將隨機森林作為基學習器使用 172
8.4.2 作為XGBoost模型的隨機森林 173
8.4.3 分析XGBoost隨機森林 175
8.5 總結 175
第9章 XGBoost Kaggle 大師 176
9.1 探索Kaggle競賽 176
9.1.1 Kaggle競賽中的XGBoost 176
9.1.2 Kaggle競賽的結構 177
9.1.3 保留集(hold-out set) 178
9.2 工程新列 180
9.2.1 什麽是特徵工程? 180
9.2.2 Uber和Lyft的數據集 180
9.3 構建非相關集成 187
9.3.1 模型範圍 188
9.3.2 相關性 190
9.3.3 機器學習集成中的相關性 191
9.3.4 VotingClassifier 集成 194
9.4 堆疊模型 195
9.4.1 什麽是堆疊? 195
9.4.2 scikit-learn 中的堆疊 195
9.5 總結 196
第10章 XGBoost模型部署 197
10.1 混合數據編碼 197
10.1.1 加載數據 197
10.1.2 清除空值 199
10.1.3 獨熱編碼 201
10.1.4 將一個獨熱編碼矩陣和數值列合並 202
10.2 自定義 scikit-learn 轉換器 204
10.2.1 定製轉換器 204
10.2.2 預處理管道 209
10.3 完成一個 XGBoost 模型 210
10.3.1 第一個 XGBoost 模型 210
10.3.2 微調 XGBoost 超參數 211
10.3.3 測試模型 215
10.4 構建機器學習管道 216
10.5 總結 218
附 錄 本書相關網址 219