《机器学习算法竞赛实战》笔记 - 第一部分 磨刀事半,砍柴功倍
I. 图书豆瓣背景:
II. 主要框架:
- 初见竞赛
- 问题建模
- 数据探索
- 特征工程
- 模型训练
- 模型融合
1. 初见竞赛:
竞赛平台:
- Kaggle
- 天池
- DF(DataFountain)
- DC(DataCastle,数据城堡)
- Kesci(和鲸社区)
- JDATA(京东旗下)
- 企业网站
2. 问题建模:
虽然通常来说,竞赛的目标明确,但也不是所有竞赛的数据都是那种可以直接加入训练的形式。有些竞赛就常常会有一些不同于一般分类和回归评价指标的评估方式,参赛者往往需要根据对赛题的理解自行利用主办方提供的数据构造训练集与测试集。
3. 数据探索:
数据探索,习惯上被大家称为 EDA (Exploratory Data Analysis,探索性数据分析)。
这部分就需要结合对赛题背景业务的理解去看看数据长什么样子、数据是否和描述相符、数据包含哪些信息、数据质量如何等。
首先,要对数据有一个清晰的认知,主要是理解各个字段的取值含义、范围和数据结构等。然后更深层次的是要结合标签分析特征的分布状态、训练集与测试集的同分布情况、特征之间的业务关联以及隐含信息表征等。
4. 特征工程:
特征工程(Feature Engineering),机器学习大多数时候是在进行特征工程,特征决定了机器学习预测效果的上限,而算法只是不断地去逼近这个上限而已。也是耗费时间最长的阶段。
5. 模型训练:
在一般的机器学习算法竞赛中,参赛者大多偏爱GDBT类的树模型,常使用的树模型主要有 XGBoost 和 LightGBM。有时参赛者需要用到 LR、SVM 和 RF 等算法,有时需要用到 DNN、CNN、RNN 等深度学习模型以及它们的衍生模型,以及广告领域流行的 FFM 等。这部分主要依赖于参赛者的计算资源。
模型训练除了选择合适的模型之外,还有一部分需要花时间的就是参数调优。
6. 模型融合:
每一种算法都有其自身的优势和局限性,扬长避短,综合各个算法的优势可以使得模型的效果更好。模型融合有许多办法,诸如 Stacking、加权投票等。