数据科学研究|竞赛的基本步骤
0. 基本步骤
1. 问题建模
1.1 问题/赛题理解
1.1.1 业务理解
1.1.2 数据理解
- 每种数据集之间的关系
- 数据中缺失值情况
- 类别特征和数值特征
- 基本分布(类别数、均值、最值等)
1.1.3 评价指标
- 分类指标:精确率、召回率、AUC、logloss
- 回归指标:MAE、MAPE、RMSE等
1.2 线下验证
1.2.1 时序验证
1.2.2 K折交叉验证
2. 数据分析
2.1 了解数据
- 数据类型大小(需要什么配置,参赛代价大不大)…
- 数据是否干净(明显错误的数据,例如身高5m…)
- 标签是什么类型的,是否需要格式转换?..(DataFrame.info())
- 线下验证集的构建,是否可能会穿越?(观察数据分布情况)
- 是否存在某些奇异的现象?为特征工程做准备:例如时序的周期变化现象
2.2 数据探索性分析(EDA)
- 数据集大小,字段类型:数据多大,每个字段是什么类型的
- 缺失值的情况:缺失是否严重,是否缺失有特殊含义
- 特征之间是否冗余:比如身高用cm表示和m表示就存在冗余
- 是否存在时间信息:潜在的穿越问题
- 标签的分布:是否类别分布不平衡等
- 训练集测试集的分布:测试集中有的字段很多特征训练集没有
- 单变量/多变量分布:熟悉特征的分布情况,和标签的关系
3. 特征工程
3.1 数据预处理
- 离群点处理
处理方法: 当作缺失值进行处理、删掉离群点所在样本、使用统计值进行填充 - 缺失值处理
处理方法:是否真正意义缺失?各种填充办法,不填充,填充为np.nan,对比效果选择等 - 错误值处理
处理方法:明显错误,血压999999、体重800等;不明显错误,出现-1和999,表示了缺失值,替换为np.nan - 假标签处理
处理方法:标签错误,血压999999等;标签和评估指标不一致
3.2 特征提取
- 类别特征/数值特征
- 编码方式:自然数编码、独热编码(one-hot)、count编码(替代类别特征)、目标编码
- 统计方式:count、nunique(宽度)、ratio(偏好)
- 交叉统计:行交叉(均值、中位数、最值)、业务交叉构造
- 离散方式:分桶、二值化(0/1)
- 时间特征
- 日期变量(年、月、周、日、小时、分钟)
- 距离某天的时间差,是否某个特殊日期,时间组合
- 时序相关特征(历史平移,滑窗统计)
3.3 特征选择
4. 必备模型
5. 模型融合
6. 模型优化