前言 \n
第1章 机器学习概述1 \n
1.1 何谓机器学习1 \n
1.1.1 机器学习常用基本概念2 \n
1.1.2 机器学习类型3 \n
1.1.3 机器学习应用开发步骤4 \n
1.2 集成学习发展与XGBoost提出5 \n
1.2.1 集成学习5 \n
1.2.2 XGBoost6 \n
1.3 小结7 \n
第2章 XGBoost骊珠初探9 \n
2.1 搭建Python机器学习环境9 \n
2.1.1 Jupyter Notebook10 \n
2.1.2 NumPy11 \n
2.1.3 Pandas18 \n
2.1.4 Matplotlib32 \n
2.1.5 scikit-learn39 \n
2.2 搭建XGBoost运行环境39 \n
2.3 示例:XGBoost告诉你蘑菇是否有毒42 \n
2.4 小结44 \n
第3章 机器学习算法基础45 \n
3.1 KNN45 \n
3.1.1 KNN关键因素46 \n
3.1.2 用KNN预测鸢尾花品种47 \n
3.2 线性回归52 \n
3.2.1 梯度下降法53 \n
3.2.2 模型评估55 \n
3.2.3 通过线性回归预测波士顿房屋价格55 \n
3.3 逻辑回归57 \n
3.3.1 模型参数估计59 \n
3.3.2 模型评估60 \n
3.3.3 良性/恶性乳腺肿瘤预测61 \n
3.3.4 softmax64 \n
3.4 决策树65 \n
3.4.1 构造决策树66 \n
3.4.2 特征选择67 \n
3.4.3 决策树剪枝71 \n
3.4.4 决策树解决肿瘤分类问题71 \n
3.5 正则化75 \n
3.6 排序78 \n
3.6.1 排序学习算法80 \n
3.6.2 排序评价指标81 \n
3.7 人工神经网络85 \n
3.7.1 感知器85 \n
3.7.2 人工神经网络的实现原理87 \n
3.7.3 神经网络识别手写体数字90 \n
3.8 支持向量机92 \n
3.8.1 核函数95 \n
3.8.2 松弛变量97 \n
3.8.3 通过SVM识别手写体数字98 \n
3.9 小结99 \n
第4章 XGBoost小试牛刀100 \n
4.1 XGBoost实现原理100 \n
4.2 二分类问题101 \n
4.3 多分类问题109 \n
4.4 回归问题113 \n
4.5 排序问题117 \n
4.6 其他常用功能121 \n
4.7 小结145 \n
第5章 XGBoost原理与理论证明146 \n
5.1 CART146 \n
5.1.1 CART生成147 \n
5.1.2 剪枝算法150 \n
5.2 Boosting算法思想与实现151 \n
5.2.1 AdaBoost151 \n
5.2.2 Gradient Boosting151 \n
5.2.3 缩减153 \n
5.2.4 Gradient Tree Boosting153 \n
5.3 XGBoost中的Tree Boosting154 \n
5.3.1 模型定义155 \n
5.3.2 XGBoost中的Gradient Tree Boosting156 \n
5.4 切分点查找算法161 \n
5.4.1 精确贪心算法161 \n
5.4.2 基于直方图的近似算法163 \n
5.4.3 快速直方图算法165 \n
5.4.4 加权分位数概要算法167 \n
5.4.5 稀疏感知切分点查找算法167 \n
5.5 排序学习169 \n
5.6 DART174 \n
5.7 树模型的可解释性177 \n
5.7.1 Saabas177 \n
5.7.2 SHAP179 \n
5.8 线性模型原理183 \n
5.8.1 Elastic Net回归183 \n
5.8.2 并行坐标下降法184 \n
5.8.3 XGBoost线性模型的实现185 \n
5.9 系统优化187 \n
5.9.1 基于列存储数据块的并行学习188 \n
5.9.2 缓存感知访问190 \n
5.9.3 外存块计算191 \n
5.10 小结192 \n
第6章 分布式XGBoost193 \n
6.1 分布式机器学习框架Rabit 193 \n
6.1.1 AllReduce193 \n
6.1.2 Rabit195 \n
6.1.3 Rabit应用197 \n
6.2 资源管理系统YARN 200 \n
6.2.1 YARN的基本架构201 \n
6.2.2 YARN的工作流程202 \n
6.2.3 XGBoost on YARN203 \n
6.3 可移植分布式XGBoost4J205 \n
6.4 基于Spark平台的实现208 \n
6.4.1 Spark架构208 \n
6.4.2 RDD210 \n
6.4.3 XGBoost4J-Spark211 \n
6.5 基于Flink平台的实现223 \n
6.5.1 Flink原理简介224 \n
6.5.2 XGBoost4J-Flink227 \n
6.6 基于GPU加速的实现229 \n
6.6.1 GPU及其编程语言简介229 \n
6.6.2 XGBoost GPU加速原理230 \n
6.6.3 XGBoost GPU应用236 \n
6.7 小结239 \n
第7章 XGBoost进阶240 \n
7.1 模型训练、预测及解析240 \n
7.1.1 树模型训练240 \n
7.1.2 线性模型训练256 \n
7.1.3 模型预测258 \n
7.1.4 模型解析261 \n
7.2 树模型更新264 \n
7.2.1 updater_colmaker264 \n
7.2.2 updater_histmaker264 \n
7.2.3 updater_fast_hist271 \n
7.2.4 其他更新器276 \n
7.3 目标函数278 \n
7.3.1 二分类279 \n
7.3.2 回归280 \n
7.3.3 多分类282 \n
7.3.4 排序学习284 \n
7.4 评估函数288 \n
7.4.1 概述289 \n
7.4.2 二分类291 \n
7.4.3 多分类295 \n
7.4.4 回归296 \n
7.4.5 排序297 \n
7.5 小结299 \n
第8章 模型选择与优化300 \n
8.1 偏差与方差300 \n
8.2 模型选择303 \n
8.2.1 交叉验证304 \n
8.2.2 Bootstrap306 \n
8.3 超参数优化307 \n
8.3.1 网格搜索308 \n
8.3.2 随机搜索310 \n
8.3.3 贝叶斯优化313 \n
8.4 XGBoost超参数优化315 \n
8.4.1 XGBoost参数介绍315 \n
8.4.2 XGBoost调参示例319 \n
8.5 小结334 \n
第9章 通过XGBoost实现广告分类器335 \n
9.1 PCA335 \n
9.1.1 PCA的实现原理335 \n
9.1.2 通过PCA对人脸识别数据降维338 \n
9.1.3 利用PCA实现数据可视化341 \n
9.2 通过XGBoost实现广告分类器343 \n
9.3 小结357 \n
第10章 基于树模型的其他研究与应用358 \n
10.1 GBDT、LR融合提升广告点击率358 \n
10.2 mGBDT360 \n
10.3 DEF362 \n
10.4 一种基于树模型的强化学习方法366 \n
10.5 小结370