数据竞赛要点
Hexo博客地址:Yanbin’s blog
视频链接:从0-1的数据竞赛经验分享
0 所需能力
0.1 工具
- 语言:Python
- 库:Pandas, Numpy, Sklearn, Scipy, Seaborn, Keras, Xgboost, Lightgbm
0.2 参考书籍
- 李航《统计学习方法》
- 周老师《机器学习》
1 建模工作框架
2 数据预处理
删除噪音,获得更加干净的数据
2.1缺失值处理
- 缺失严重(达到90%):直接删除特征列
- 单条记录缺失严重(达到90%):直接删除记录
- 缺失不严重(低于90%):填充均值、中位数、单独生成一列0-1,或根据相关性高的特征进行还原
2.2 奇异值处理
- 转化为非奇异值
- 无法修整,直接删除
- 区分标签与特征的处理
2.3 特殊的预处理
- 流量的归一化
- 图像的标准化
3 特征工程
3.1 人工特征:人为构建,基于个人水平和经验
- 覆盖面越多越好
- 覆盖角度越多越好(宏观到微观)
- 与预测目标相关的所有信息全部加入
3.2 机器特征:模型的生成,模型的理解
- PCA,FLD特征
- GBDT输出的路径特征
- 神经网络特征(AutoEncoder等)
3.3 自动化特征轮:AutoML(流行),可根据经验自行设计
4 模型
逼近上界
4.1 最为流行的模型
4.1.1 单模型
- 结构化数据类:XGBoost,LightGBM等
- 推荐类:FFM等
- 图像+文本类:各种神经网络
4.1.2 模型融合
- 均值集成,加权集成,Rank集成
- Stacking:简单的5折Stacking,StackNet等
4.2 如何让模型更好的消化数据?
目前80%~90%的比赛冠军方案都是基于LGB,XGB,RF,GBDT模型
4.2.1 反作用数据预处理
- 数据过少不具有代表性的:删除
- 方差较小不具有代表性的:删除
4.2.2 反作用特征工程
- 一阶、二阶、三阶+固定属性特征
- 不同的比赛略有不同
5 数据分析
一般质的飞跃都在这个阶段
- 数据标签分析:好的label构建,成功了一半
-
数据特征分析:
a) 设计更好的特征
b) 设计强特 -
结果分析
a) 根据预测结果设计Tricks
b) 李勇预测结果设计更为高级的算法,例如:基于RF概率的KNN修正