赛题地址:
Pipeline:
对于这种csv表格式数据有一套固定的流程, 多用传统机器学习方法搭建模型。
- EDA数据分析:
- 数据总体了解:大小,维度,特征 等
- 查看数据中的缺省值和唯一值
- 深入查看数据类型:数值型(连续还是离散),类别型或对象型,并进行分析
- 分析特征和特征之间的关系,特征和目标变量的关系
- 将结果可视化以便更好分析
- 特征工程:(重要部分)
- 对特征进行预处理:缺失值填充,时间格式处理,对象类型数据转换
- 异常值处理,去除噪音:${3\sigma}$,箱型图过滤
- 数据分箱
- 卡方交互:特征间组合,特征间衍生
- 特征编码:one-hot, label-encode
- 特征选择
- 必要时还要进行归一化处理,降维,去除相关性高的特征等
- 建模调参:(重要部分)
- 逻辑回归模型需要预先处理缺失值和异常值,必要时要做归一化处理
- xgboost 和 lightgbm 都是决策树模型,会自动处理缺失值。其中lightgbm也可以处理类别类型数据
- 构造模型,划分验证集和测试集
- 集成学习方法:bagging, boosting
- 模型评估:AUC指标
- 模型调参:(最耗时耗力的一步)网格搜索(sklearn 提供GridSearchCV), 贝叶斯调参
- 一般来说,调参并不会让模型性能有特别大的飞跃,但是会有一些性能上的提升
- 注意不要过拟合
- 模型融合:
- 简单加权,取平均或按权重分配
- 简单投票或者加权投票
- stacking\blending
- 其他融合方式…
我的baseline地址:here
我采用了lightgbm,xgboost,catboost 这三种决策树模型,AUC最好的是0.7317。之后又再此基础上做了多次尝试,主要是在特征工程方面,比如利用随机森林填补缺省值Nan,去除噪音,删除一些不相关的特征等,发现了过拟合问题。还是得再从模型融合的方向下手,能够显著提升模型性能的是特征工程和模型融合。