书籍作者:天池平台 | ISBN:9787121393501 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:3122 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《阿里云天池大赛赛题解析——机器学习篇》聚焦机器学习算法建模及相关技术,以工业蒸汽量预测、天猫用户重复购买预测、O2O优惠券预测和阿里云安全恶意程序检测等四个天池经典赛题作为实战案例,针对实际赛题按照赛题理解、数据探索、特征工程、模型训练、模型验证、特征优化、模型融合等步骤,将赛题的解决方案从0到1层层拆解、详细说明,在展现专业选手解题过程的同时,配以丰富的相关技术知识作为补充。
《阿里云天池大赛赛题解析——机器学习篇》从经典商业案例出发,内容由浅入深、层层递进,既可以作为专业开发者的参考用书,也可以作为参赛新手研读专业算法的实战手册。
本书由阿里云天池平台编写。
天池平台已经举办了超过 200 场来自真实业务场景的竞赛,每场赛事沉淀的课题和数据集,将在天池保留和开放。天池平台已成为在校学生踏入职场前的虚拟实践基地,也成为聚集40万数据人才,孵化2000余家数据创新工作室的数据智能大社区。
本书的赛题均来自阿里云天池的真实业务场景,由具有丰富实战经验的大赛优秀选手精心完成。本书通过解析优秀选手的解题思路,总结了大赛可复制的套路。其可以向专业开发者提供技术参考,可以使高校学生和相关技术人员入门天池大赛及其他比赛,还可以帮助参赛选手进阶。
转眼间,天池平台(简称天池)已经走过了7年。7年前,天池团队的几名创始成员还在做阿里巴巴集团的高校合作工作,为了“让全世界没有能力获取大数据的人可以公平地获取到大数据”的情怀,而走上了建设天池的道路。
这7年间,天池举办了超过200场来自真实业务场景的竞赛。从2014年的首场天池天猫推荐算法挑战赛到2015年的阿里巴巴集团算法黄金联赛,天池在阿里巴巴经济体内各条业务线成功地燃起了一把火,电商、金融、物流、文娱业务都相继在天池开放数据并举办算法竞赛。与此同时,高校也弥漫着浓浓的天池竞赛风,很多学生通过参加天池竞赛拿到了阿里巴巴校招的Offer。从2016年开始,天池不仅服务于阿里巴巴经济体,还将内部打磨成熟的算法竞赛模式复制给阿里云的客户,把阿里巴巴的技术和算力产品带到政府、金融、交通、物流、航空、电力、医疗等领域,让天池开发者得以直接触达不同行业。到目前为止,天池已经成为中国数据智能的第一大社区。
我们见证了大数据产业的兴起,见证了天池选手从青涩的在校大学生成长为数字时代的中坚力量,也收到了他们对比赛的感想和对天池的感谢。感恩这个时代,让我们得以在新技术的洪流中和大家携手前行,我们将竭尽所能回馈社会,帮助更多的大数据、人工智能爱好者成长。
为了满足社区开发者的学习诉求,帮助其更快地入门和成长,我们不仅把每场赛事沉淀的课题和数据集在天池永久保留和开放,还思考如何把头部玩家沉淀的珍贵解决方案和技术分享出来,让他们的经验成为某种可参考、可依循的轨迹,帮助初级开发者入门。显然,一本基于天池大数据竞赛实战经验和技术积累、从应用场景出发的算法图书是最好的输出形式,我们和天池几位老选手一拍即合,决定出版此书。
本书最大的特色在于,它是一本真正意义上的实操手册,筛选了最典型的四大场景——工业蒸汽量预测、天猫用户重复购买预测、O2O优惠券预测和阿里云安全恶意程序检测,然后按照赛题解读、数据探索、特征工程、模型训练、模型验证、特征优化、模型融合等步骤,将方案从0到1层层拆解后呈现在读者面前,并提供源码。数据集在天池永久开放,读者可以通过天池实验室的PAI DSW和天池notebook进行编码运行,天池会配置免费的计算资源,让读者真正实现边学边练。
天池将持续致力于人工智能实践型人才的培养,未来还会继续出版覆盖计算机视觉、自然语言处理等多个人工智能技术的赛事实践图书,形成系列书。感谢选手一直对天池平台的支持,感谢张永亮老师和天池优秀选手朱翔宇、洪鹏飞和陈宇对本书编写所做出的贡献,以及陈旭、宁萌、朱启凡和龚佳棋所做的校对和整理工作。天池已经研发上线了与图书配套的人工智能实训平台,欢迎高校、企业通过天池官网申请账号和使用。
王一婷、崔颖、王听
天池平台
赛题一 工业蒸汽量预测
1 赛题理解 2
1.1 赛题背景 2
1.2 赛题目标 2
1.3 数据概览 2
1.4 评估指标 3
1.5 赛题模型 4
2 数据探索 6
2.1 理论知识 6
2.1.1 变量识别 6
2.1.2 变量分析 6
2.1.3 缺失值处理 10
2.1.4 异常值处理 11
2.1.5 变量转换 14
2.1.6 新变量生成 15
2.2 赛题数据探索 16
2.2.1 导入工具包 16
2.2.2 读取数据 16
2.2.3 查看数据 16
2.2.4 可视化数据分布 18
2.2.5 查看特征变量的相关性 26
3 特征工程 33
3.1 特征工程的重要性和处理 33
3.2 数据预处理和特征处理 33
3.2.1 数据预处理 33
3.2.2 特征处理 34
3.3 特征降维 38
3.3.1 特征选择 39
3.3.2 线性降维 44
3.4 赛题特征工程 45
3.4.1 异常值分析 45
3.4.2 最大值和最小值的
归一化 46
3.4.3 查看数据分布 47
3.4.4 特征相关性 48
3.4.5 特征降维 48
3.4.6 多重共线性分析 49
3.4.7 PCA处理 50
4 模型训练 52
4.1 回归及相关模型 52
4.1.1 回归的概念 52
4.1.2 回归模型训练和预测 52
4.1.3 线性回归模型 52
4.1.4 K近邻回归模型 54
4.1.5 决策树回归模型 55
4.1.6 集成学习回归模型 58
4.2 赛题模型训练 61
4.2.1 导入相关库 61
4.2.2 切分数据 62
4.2.3 多元线性回归 62
4.2.4 K近邻回归 62
4.2.5 随机森林回归 63
4.2.6 LGB模型回归 63
5 模型验证 64
5.1 模型评估的概念和方法 64
5.1.1 欠拟合与过拟合 64
5.1.2 模型的泛化与正则化 68
5.1.3 回归模型的评估指标和
调用方法 70
5.1.4 交叉验证 72
5.2 模型调参 75
5.2.1 调参 75
5.2.2 网格搜索 76
5.2.3 学习曲线 77
5.2.4 验证曲线 78
5.3 赛题模型验证和调参 78
5.3.1 模型过拟合与欠拟合 78
5.3.2 模型正则化 81
5.3.3 模型交叉验证 82
5.3.4 模型超参空间及调参 85
5.3.5 学习曲线和验证曲线 89
6 特征优化 93
6.1 特征优化的方法 93
6.1.1 合成特征 93
6.1.2 特征的简单变换 93
6.1.3 用决策树创造新特征 94
6.1.4 特征组合 94
6.2 赛题特征优化 96
6.2.1 导入数据 96
6.2.2 特征构造方法 96
6.2.3 特征构造函数 96
6.2.4 特征降维处理 96
6.2.5 模型训练和评估 97
7 模型融合 100
7.1 模型优化 100
7.1.1 模型学习曲线 100
7.1.2 模型融合提升技术 100
7.1.3 预测结果融合策略 102
7.1.4 其他提升方法 105
7.2 赛题模型融合 106
7.2.1 导入工具包 106
7.2.2 获取训练数据和测试
数据 106
7.2.3 模型评价函数 107
7.2.4 采用网格搜索训练
模型 107
7.2.5 单一模型预测效果 109
7.2.6 模型融合Boosting方法 115
7.2.7 多模型预测Bagging
方法 118
7.2.8 多模型融合Stacking
方法 119
7.2.9 模型验证 127
7.2.10 使用lr_reg和lgb_reg
进行融合预测 127
赛题二 天猫用户重复购买预测
1 赛题理解 130
1.1 赛题背景 130
1.2 数据介绍 131
1.3 评估指标 133
1.4 赛题分析 134
2 数据探索 137
2.1 理论知识 137
2.1.1 缺失数据处理 137
2.1.2 不均衡样本 138
2.1.3 常见的数据分布 141
2.2 赛题数据探索 144
2.2.1 导入工具包 145
2.2.2 读取数据 145
2.2.3 数据集样例查看 145
2.2.4 查看数据类型和数据
大小 146
2.2.5 查看缺失值 147
2.2.6 观察数据分布 148
2.2.7 探查影响复购的各种
因素 150
3 特征工程 155
3.1 特征工程介绍 155
3.1.1 特征工程的概念 155
3.1.2 特征归一化 155
3.1.3 类别型特征的转换 156
3.1.4 高维组合特征的处理 156
3.1.5 组合特征 157
3.1.6 文本表示模型 157
3.2 赛题特征工程思路 158
3.3 赛题特征工程构造 160
3.3.1 工具导入 160
3.3.2 数据读取 160
3.3.3 对数据进行内存压缩 161
3.3.4 数据处理 163
3.3.5 定义特征统计函数 164
3.3.6 提取统计特征 166
3.3.7 利用Countvector和
TF-IDF提取特征 170
3.3.8 嵌入特征 170
3.3.9 Stacking分类特征 171
4 模型训练 179
4.1 分类的概念 179
4.2 分类相关模型 179
4.2.1 逻辑回归分类模型 179
4.2.2 K近邻分类模型 180
4.2.3 高斯贝叶斯分类模型 182
4.2.4 决策树分类模型 182
4.2.5 集成学习分类模型 183
5 模型验证 186
5.1 模型验证指标 186
5.1.1 准确度 186
5.1.2 查准率和查全率 188
5.1.3 F1值 189
5.1.4 分类报告 189
5.1.5 混淆矩阵 189
5.1.6 ROC 190
5.1.7 AUC曲线 190
5.2 赛题模型验证和评估 190
5.2.1 基础代码 190
5.2.2 简单验证 191
5.2.3 设置交叉验证方式 192
5.2.4 模型调参 194
5.2.5 混淆矩阵 195
5.2.6 不同的分类模型 198
5.2.7 自己封装模型 205
6 特征优化 211
6.1 特征选择技巧 211
6.2 赛题特征优化 213
6.2.1 基础代码 213
6.2.2 缺失值补全 213
6.2.3 特征选择 213
赛题三 O2O优惠券预测
1 赛题理解 222
1.1 赛题介绍 222
1.2 赛题分析 223
2 数据探索 225
2.1 理论知识 225
2.1.1 数据探索的定义 225
2.1.2 数据探索的目的 226
2.1.3 相关Python包 226
2.2 初步的数据探索 226
2.2.1 数据读取 226
2.2.2 数据查看 227
2.2.3 数据边界探索 231
2.2.4 训练集与测试集的
相关性 232
2.2.5 数据统计 236
2.3 数据分布 238
2.3.1 对文本数据的数值化
处理 238
2.3.2 数据分布可视化 242
3 特征工程 246
3.1 赛题特征工程思路 246
3.2 赛题特征构建 248
3.2.1 工具函数 248
3.2.2 特征群生成函数 250
3.2.3 特征集成函数 256
3.2.4 特征输出 257
3.3 对特征进行探索 260
3.3.1 特征读取函数 260
3.3.2 特征总览 261
3.3.3 查看特征的分布 262
3.3.4 特征相关性分析 265
4 模型训练 266
4.1 模型训练与评估 266
4.2 不同算法模型的性能对比 271
4.2.1 朴素贝叶斯 271
4.2.2 逻辑回归 271
4.2.3 决策树 272
4.2.4 随机森林 272
4.2.5 XGBoost 273
4.2.6 LightGBM 274
4.2.7 不同特征效果对比 274
4.3 结果输出 274
5 模型验证 276
5.1 评估指标 276
5.2 交叉验证 276
5.3 模型比较 279
5.4 验证结果可视化 282
5.5 结果分析 289
5.6 模型调参 290
5.7 实际方案 292
6 提交结果 299
6.1 整合及输出结果 299
6.2 结果提交及线上验证 302
赛题四 阿里云安全恶意程序检测
1 赛题理解 306
1.1 赛题介绍 306
1.2 赛题分析 307
2 数据探索 310
2.1 训练集数据探索 310
2.1.1 数据特征类型 310
2.1.2 数据分布 311
2.1.3 缺失值 312
2.1.4 异常值 312
2.1.5 标签分布 313
2.2 测试集数据探索 314
2.2.1 数据信息 314
2.2.2 缺失值 315
2.2.3 数据分布 315
2.2.4 异常值 315
2.3 数据集联合分析 316
2.3.1 file_id分析 316
2.3.2 API分析 317
3 特征工程与基线模型 318
3.1 特征工程概述 318
3.1.1 特征工程介绍 318
3.1.2 构造特征 318
3.1.3 特征选择 319
3.2 构造线下验证集 319
3.2.1 评估穿越 319
3.2.2 训练集和测试集的特征
差异性 320
3.2.3 训练集和测试集的分布
差异性 320
3.3 基线模型 320
3.3.1 数据读取 320
3.3.2 特征工程 321
3.3.3 基线构建 322
3.3.4 特征重要性分析 324
3.3.5 模型测试 325
4 高阶数据探索 326
4.1 变量分析 326
4.2 高阶数据探索实战 329
4.2.1 数据读取 329
4.2.2 多变量交叉探索 329
5 特征工程进阶与方案优化 343
5.1 pivot特征构建 343
5.1.1 pivot特征 343
5.1.2 pivot特征构建时间 343
5.1.3 pivot特征构建细节和
特点 343
5.2 业务理解和结果分析 344
5.2.1 结合模型理解业务 344
5.2.2 多分类问题预测结果
分析 344
5.3 特征工程进阶实践 344
5.3.1 特征工程基础部分 344
5.3.2 特征工程进阶部分 348
5.3.3 基于LightGBM的模型
验证 349
5.3.4 模型结果分析 351
5.3.5 模型测试 354
6 优化技巧与解决方案升级 355
6.1 优化技巧:Python处理大数据
的技巧 355
6.1.1 内存管理控制 355
6.1.2 加速数据处理的技巧 356
6.1.3 其他开源工具包 356
6.2 深度学习解决方案:TextCNN
建模 358
6.2.1 问题转化 358
6.2.2 TextCNN建模 358
6.2.3 数据预处理 360
6.2.4 TextCNN网络结构 361
6.2.5 TextCNN训练和测试 362
6.2.6 结果提交 364
7 开源方案学习 365