《阿里云天池大赛赛题解析——机器学习篇》简介:
《阿里云天池大赛赛题解析——机器学习篇》聚焦机器学习算法建模及相关技术,以工业蒸汽量预测、天猫用户重复购买预测、O2O优惠券预测和阿里云安全恶意程序检测等四个天池经典赛题作为实战案例,针对实际赛题按照赛题理解、数据探索、特征工程、模型训练、模型验证、特征优化、模型融合等步骤,将赛题的解决方案从0到1层层拆解、详细说明,在展现专业选手解题过程的同时,配以丰富的相关技术知识作为补充。
《阿里云天池大赛赛题解析——机器学习篇》从经典商业案例出发,内容由浅入深、层层递进,既可以作为专业开发者的参考用书,也可以作为参赛新手研读专业算法的实战手册。
《阿里云天池大赛赛题解析——机器学习篇》目录:
赛题一 工业蒸汽量预测
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
· · · · · ·