做什么
竞赛主页:微额借款用户人品预测大赛
通过数据挖掘来分析小额微贷申请借款用户的信用状况,以分析其是否逾期
数据在这里,链接: https://pan.baidu.com/s/1b2WZnS 密码: crka
数据来源于CashBUS现金巴士赞助的微额借款用户人品预测大赛,经CashBUS授权使用
冠军团队:不得直视本王
参考资料:https://github.com/wepe/DataCastle-Solution
数据概况
- train_x.csv:训练数据特征,共1138维特征(1045为数值,93为类别),15000行
- train_y.csv:训练数据标签,1为正常,0为有问题,二分类
- test_x.csv:测试数据特征,共1138维特征,5000行,待分类
- train_unlabeled.csv:无标签训练数据,共1138维特征,50000行
- features_type.csv:1138维特征的类型说明,数值 or 类别
缺失值处理
统计train_x、test_x、train_unlabeled中,1138维特征的缺失情况并绘图
缺失值数量区间化,去掉缺失值数量大于194的行(可能引入噪声,造成过拟合)
特征工程
- 排序特征:基于7W原始数据,对数值特征排序,得到1045维排序特征
- 离散特征:将排序特征区间化(等值区间化、等量区间化),这里采用等量区间化为1-10,得到1045维离散特征
- 计数特征:统计每一行中,离散特征1-10的个数,得到10维计数特征
- 类别特征编码:将93维类别特征用one-hot编码
- 交叉特征:特征之间两两融合,x+y、x-y、x*y、x^2+y^2等,由于时间复杂度较高,暂时跳过
特征选择
基于XGBoost,在训练模型时,对特征重要性进行排序,以进行特征选择
模型设计
1 单模型
XGBoost、SVM等,0.717
2 Bagging of XGBoost
36个XGBoost模型:
- 特征多样:保留topN1个原始特征、topN2个排序特征、topN3个离散特征、10个计数特征,N1、N2、N3分别在300-500、300-500、64-100的范围内随机选择
- 模型多样:XGBoost的各项参数在经调优的最佳值附近小范围抖动
- 融合!0.725
3 多模型融合
XGboost的Py、R、Java版本,BoX,SVM,加权融合,0.7279
4 迭代半监督
用最好的模型预测无标签数据,并保留融合后能提升性能的数据
5 暴力半监督
- 每次从无标签数据中无放回选择10条,共有2^10=1024种可能的标签,保留融合后性能最好的一组标签,从而获得5000组即5W条标注数据
- 取5000组中的top500共5000条,每次选择20-50条,保留融合后能提升性能的选择,得到最终模型,0.7341
更加详细的内容
全过程演示+手敲代码,课程筹备中,敬请期待!