机器学习算法竞赛实战
作者:王贺
出版时间: 2021年版
内容简介
本书是算法竞赛领域一本系统介绍竞赛的图书,书中不仅包含竞赛的基本理论知识,还结合多个方向和案例详细阐述了竞赛中的上分思路和技巧。全书分为五部分:第一部分以算法竞赛的通用流程为主,介绍竞赛中各个部分的核心内容和具体工作;第二部分介绍了用户画像相关的问题;第三部分以时间序列预测问题为主,先讲述这类问题的常见解题思路和技巧,然后分析天池平台的全球城市计算AI 挑战赛和 Kaggle 平台的Corporación Favorita Grocery Sales Forecasting;第四部分主要介绍计算广告的核心技术和业务,包括广告召回、广告排序和广告竞价,其中两个实战案例是2018 腾讯广告算法大赛——相似人群拓展和Kaggle 平台的TalkingData AdTracking Fraud Detection Challenge;第五部分基于自然语言处理相关的内容进行讲解,其中实战案例是Kaggle 平台上的经典竞赛Quora Question Pairs。 本书适合从事机器学习、数据挖掘和人工智能相关算法岗位的人阅读。
目录
目 录
第 1 章 初见竞赛 1
1.1 竞赛平台 2
1.1.1 Kaggle 2
1.1.2 天池 6
1.1.3 DF 7
1.1.4 DC 7
1.1.5 Kesci 7
1.1.6 JDATA 8
1.1.7 企业网站 8
1.2 竞赛流程 8
1.2.1 问题建模 8
1.2.2 数据探索 9
1.2.3 特征工程 9
1.2.4 模型训练 9
1.2.5 模型融合 10
1.3 竞赛类型 10
1.3.1 数据类型 10
1.3.2 任务类型 11
1.3.3 应用场景 11
1.4 思考练习 11
第 2 章 问题建模 12
2.1 赛题理解 12
2.1.1 业务背景 12
2.1.2 数据理解 14
2.1.3 评价指标 14
2.2 样本选择 20
2.2.1 主要原因 20
2.2.2 准确方法 22
2.2.3 应用场景 23
2.3 线下评估策略 24
2.3.1 强时序性问题 24
2.3.2 弱时序性问题 24
2.4 实战案例 25
2.4.1 赛题理解 26
2.4.2 线下验证 27
2.5 思考练习 28
第3 章 数据探索 29
3.1 数据初探 29
3.1.1 分析思路 29
3.1.2 分析方法 30
3.1.3 明确目的 30
3.2 变量分析 32
3.2.1 单变量分析 33
3.2.2 多变量分析 37
3.3 模型分析 39
3.3.1 学习曲线 39
3.3.2 特征重要性分析 40
3.3.3 误差分析 41
3.4 思考练习 42
第4 章 特征工程 43
4.1 数据预处理 43
4.1.1 缺失值处理 44
4.1.2 异常值处理 45
4.1.3 优化内存 46
4.2 特征变换 47
4.2.1 连续变量无量纲化 47
4.2.2 连续变量数据变换 48
4.2.3 类别特征转换 50
4.2.4 不规则特征变换 50
4.3 特征提取 51
4.3.1 类别相关的统计特征 51
4.3.2 数值相关的统计特征 53
4.3.3 时间特征 53
4.3.4 多值特征 54
4.3.5 小结 55
4.4 特征选择 55
4.4.1 特征关联性分析 55
4.4.2 特征重要性分析 57
4.4.3 封装方法 57
4.4.4 小结 58
4.5 实战案例 59
4.5.1 数据预处理 59
4.5.2 特征提取 60
4.5.3 特征选择 61
4.6 练习 62
第5 章 模型选择 63
5.1 线性模型 63
5.1.1 Lasso 回归 63
5.1.2 Ridge 回归 64
5.2 树模型 64
5.2.1 随机森林 65
5.2.2 梯度提升树 66
5.2.3 XGBoost 67
5.2.4 LightGBM 68
5.2.5 CatBoost 69
5.2.6 模型深入对比 70
5.3 神经网络 73
5.3.1 多层感知机 74
5.3.2 卷积神经网络 75
5.3.3 循环神经网络 77
5.4 实战案例 79
5.5 练习 80
第6 章 模型融合 81
6.1 构建多样性 81
6.1.1 特征多样性 81
6.1.2 样本多样性 82
6.1.3 模型多样性 82
6.2 训练过程融合 83
6.2.1 Bagging 83
6.2.2 Boosting 83
6.3 训练结果融合 84
6.3.1 加权法 84
6.3.2 Stacking 融合 86
6.3.3 Blending 融合 87
6.4 实战案例 88
6.5 练习 90
第7 章 用户画像 91
7.1 什么是用户画像 92
7.2 标签系统 92
7.2.1 标签分类方式 92
7.2.2 多渠道获取标签 93
7.2.3 标签体系框架 94
7.3 用户画像数据特征 95
7.3.1 常见的数据形式 95
7.3.2 文本挖掘算法 97
7.3.3 神奇的嵌入表示 98
7.3.4 相似度计算方法 101
7.4 用户画像的应用 103
7.4.1 用户分析 103
7.4.2 精准营销 104
7.4.3 风控领域 105
7.5 思考练习 106
第8 章 实战案例:Elo Merchant Category Recommendation(Kaggle) 107
8.1 赛题理解 107
8.1.1 赛题背景 107
8.1.2 赛题数据 108
8.1.3 赛题任务 108
8.1.4 评价指标 109
8.1.5 赛题FAQ 109
8.2 探索性分析 109
8.2.1 字段类别含义 110
8.2.2 字段取值状况 111
8.2.3 数据分布差异 112
8.2.4 表格关联关系 115
8.2.5 数据预处理 115
8.3 特征工程 116
8.3.1 通用特征 116
8.3.2 业务特征 117
8.3.3 文本特征 118
8.3.4 特征选择 119
8.4 模型训练 119
8.4.1 随机森林 119
8.4.2 LightGBM 121
8.4.3 XGBoost 124
8.5 模型融合 127
8.5.1 加权融合 127
8.5.2 Stacking 融合 127
8.6 高效提分 128
8.6.1 特征优化 128
8.6.2 融合技巧 130
8.7 赛题总结 134
8.7.1 更多方案 134
8.7.2 知识点梳理 135
8.7.3 延伸学习 135
第9 章 时间序列分析 138
9.1 介绍时间序列分析 138
9.1.1 简单定义 138
9.1.2 常见问题 139
9.1.3 交叉验证 140
9.1.4 基本规则方法 141
9.2 时间序列模式 142
9.2.1 趋势性 142
9.2.2 周期性 143
9.2.3 相关性 144
9.2.4 随机性 144
9.3 特征提取方式 144
9.3.1 历史平移 145
9.3.2 窗口统计 145
9.3.3 序列熵特征 145
9.3.4 其他特征 146
9.4 模型的多样性 146
9.4.1 传统的时序模型 147
9.4.2 树模型 147
9.4.3 深度学习模型 148
9.5 练习 150
第 10 章 实战案例:全球城市计算AI挑战赛 151
10.1 赛题理解 151
10.1.1 背景介绍 152
10.1.2 赛题数据 152
10.1.3 评价指标 153
10.1.4 赛题FAQ 153
10.1.5 baseline 方案 153
10.2 探索性数据分析 157
10.2.1 数据初探 157
10.2.2 模式分析 159
10.3 特征工程 162
10.3.1 数据预处理 162
10.3.2 强相关性特征 163
10.3.3 趋势性特征 165
10.3.4 站点相关特征 165
10.3.5 特征强化 166
10.4 模型选择 166
10.4.1 LightGBM 模型 167
10.4.2 时序模型 168
10.5 强化学习 170
10.5.1 时序stacking 170
10.5.2 Top 方案解析 171
10.5.3 相关赛题推荐 172
第 11 章 实战案例-Corporación Favorita Grocery Sales Forecasting 174
11.1 赛题理解 174
11.1.1 背景介绍 174
11.1.2 赛题数据 175
11.1.3 评价指标 175
11.1.4 赛题FAQ 176
11.1.5 baseline 方案 176
11.2 探索性数据分析 181
11.2.1 数据初探 181
11.2.2 单变量分析 184
11.2.3 多变量分析 188
11.3 特征工程 190
11.3.1 历史平移特征 191
11.3.2 窗口统计特征 192
11.3.3 构造粒度多样性 193
11.3.4 高效特征选择 194
11.4 模型选择 195
11.4.1 LightGBM 模型 196
11.4.2 LSTM 模型 196
11.4.3 Wavenet 模型 198
11.4.4 模型融合 199
11.5 赛题总结 200
11.5.1 更多方案 200
11.5.2 知识点梳理 201
11.5.2 延伸学习 202
第 12 章 计算广告 204
12.1 什么是计算广告 204
12.1.1 主要问题 205
12.1.2 计算广告系统架构 205
12.2 广告类型 207
12.2.1 合约广告 207
12.2.2 竞价广告 207
12.2.3 程序化交易广告 208
12.3 广告召回 208
12.3.1 广告召回模块 208
12.3.2 DSSM 语义召回 210
12.4 广告排序 211
12.4.1 点击率预估 211
12.4.2 特征处理 212
12.4.3 常见模型 214
12.5 广告竞价 219
12.6 小结 221
12.7 思考练习 221
第 13 章 实战案例:2018 腾讯广告算法大赛——相似人群拓展 222
13.1 赛题理解 222
13.1.1 赛题背景 223
13.1.2 赛题数据 224
13.1.3 赛题任务 226
13.1.4 评价指标 226
13.1.5 赛题FAQ 227
13.2 探索性数据分析 227
13.2.1 竞赛的公开数据集 227
13.2.2 训练集与测试集 227
13.2.3 广告属性 229
13.2.4 用户信息 229
13.2.5 数据集特征拼接 230
13.2.6 基本建模思路 232
13.3 特征工程 232
13.3.1 经典特征 232
13.3.2 业务特征 234
13.3.3 文本特征 235
13.3.4 特征降维 237
13.3.5 特征存储 238
13.4 模型训练 238
13.4.1 LightGBM 238
13.4.2 CatBoost 238
13.4.3 XGBoost 239
13.5 模型融合 239
13.5.1 加权融合 239
13.5.2 Stacking 融合 239
13.6 赛题总结 240
13.6.1 更多方案 240
13.6.2 知识点梳理 241
13.6.3 延伸学习 241
第 14 章 实战案例-TalkingData AdTracking Fraud DetectionChallenge 243
14.1 赛题理解 243
14.1.1 背景介绍 243
14.1.2 赛题数据 244
14.1.3 评价指标 244
14.1.4 赛题FAQ 244
14.1.5 baseline 方案 245
14.2 探索性数据分析 247
14.2.1 数据初探 247
14.2.2 单变量分析 249
14.2.3 多变量分析 254
14.2.4 数据分布 255
14.3 特征工程 256
14.3.1 统计特征 256
14.3.2 时间差特征 257
14.3.3 排序特征 258
14.3.4 目标编码特征 258
14.4 模型选择 259
14.4.1 LR 模型 259
14.4.2 CatBoost 模型 259
14.4.3 LightGBM 模型 260
14.4.4 DeepFM 模型 261
14.5 赛题总结 264
14.5.1 更多方案 264
14.5.2 知识点梳理 265
14.5.3 延伸学习 266
第 15 章 自然语言处理 268
15.1 自然语言处理的发展历程 268
15.2 自然语言处理的常见场景 269
15.2.1 分类、回归任务 269
15.2.2 信息检索、文本匹配等任务 269
15.2.3 序列对序列、序列标注 269
15.2.4 机器阅读 270
15.3 自然语言处理的常见技术 270
15.3.1 基于词袋模型、TF-IDF.的特征提取 270
15.3.2 N-Gram 模型 271
15.3.3 词嵌入模型 271
15.3.5 上下文相关预训练模型 272
15.3.6 常用的深度学习模型结构 274
15.4 练习 276
第 16 章 实战案例:Quora QuestionPairs 277
16.1 赛题理解 277
16.1.1 赛题背景 277
16.1.2 赛题数据 278
16.1.3 赛题任务 278
16.1.4 评价指标 278
16.1.5 赛题FAQ 278
16.2 探索性数据分析 279
16.2.1 字段类别含义 279
16.2.2 数据集基本量 279
16.2.3 文本的分布 280
16.2.4 词的数量与词云分析 282
16.2.5 基于传统手段的文本数据预处理 284
16.2.6 基于深度学习模型的文本数据预处理 284
16.3 特征工程 285
16.3.1 通用文本特征 285
16.3.2 相似度特征 287
16.3.3 词向量的进一步应用——独有词匹配 290
16.3.4 词向量的进一步应用——词与词的两两匹配 290
16.3.5 其他相似度计算方式 291
16.4 机器学习模型和模型的训练 291
16.4.1 TextCNN 模型 291
16.4.2 TextLSTM 模型 292
16.4.3 TextLSTM with Attention 模型 293
16.4.4 Self-Attention 层 295
16.4.5 Transformer 和BERT 类模型 296
16.4.6 基于 representation 和基于 interaction 的深度学习模型的差异 298
16.4.7 一种特殊的基于 interaction 的深度学习模型 303
16.4.8 深度学习文本数据的翻译增强 303
16.4.9 深度学习文本数据的预处理 304
16.4.10 BERT 模型的训练 306
16.5 模型融合 310
16.6 赛题总结 310
16.6.1 更多方案 310
16.6.2 知识点梳理 310
16.6.3 延伸学习 311