/ppd_mirror

2019拍拍魔镜杯(用户还款日及还款金额预测) 亚军

Primary LanguagePython

赛题链接

https://www.ppdai.ai/mirror/goToMirrorDetail?mirrorId=17

数据情况

表名 内容 备注
train 训练集
test 测试集
listing_info 标的属性
user_info 用户信息
user_taglist 用户画像
user_behavior_logs 用户行为SDK
user_repay_logs 还款日志

特征工程

Y

  • 33类 多分类问题 未还款-1 还款0~31
lgb 正常33 468.35 /7211
lgb0619 468.98 2.05467
xgb 正常33 461/
去除0/32 535.85
  • 10类 多分类问题 未还款-1 /当天还款 一/ 1 2 3二/4 5 6 7三/8 9 10 11 四/12 13 14 15五/ 16 17 18 19六/20 21 22 23七/24 25 26 27 八/28 29 30 31 九
472/8022
  • 3类 找到最可能为1~31的id
  • 二分类问题 是否在账单日还款
  • 二分类问题 是否逾期
  • 二分类问题 是否1~31

策略

  1. 33分类
  2. 10分类 (效果较差)
  3. 模型组合
    1. 以33类为基础,剔除0/32分箱训练,覆盖是否账单日还款/是否逾期(7153)(效果较差)
    2. 以33类为基础,正常训练,覆盖是否账单日还款/是否逾期(auc0.5 6404)
    3. 以上述最优模型为基础,覆盖是否1~31模型 6028
    4. 构建xgb模型,与lgb(7211)融合,加权平均(无效)
    5. 构建神经网络 和lgb融合
  4. 覆盖用户画像/可能的工资日等规则

train/test

  • 近3/6/9月订单数、订单金额、提前还款日期统计
  • 近3/6/9月首逾记录、截止日还款记录统计
  • max/min/skew/std/kurtosis
  • 每天还款金额
  • 当前金额占3/6/9均值比例
  • 借款日dayofweek, dayofmonth
  • 还款截止日dayofweek
  • 账单日据1/5/6/10/15/16/20/21/25/26天数差
  • 账单日前1/5/6/10/15/16/20/21/25/26星期几

6.18

  • 还款截止日dayofmonth
  • 距2018-02-16春节的时间/距2019-02-05春节的时间(距最近一次春节的时间)
  • 近3月订单数、订单金额、提前还款日期、首逾记录、截止日还款记录占6/9的比例

距2018-03-02 /2019-02-19 元宵节 距2018-03-08 妇女节/2019-03-08 妇女节

listing_info

  • 用户当前标的属性(期数,费率,总金额)
  • 用户近3个月标的期数均值、最大值、最小值,方差
  • 用户近3个月标的费率均值、最大值、最小值,方差
  • 用户近3个月标的总金额均值、最大值、最小值,方差
  • 用户近6个月标的期数均值、最大值、最小值,方差
  • 用户近6个月标的费率均值、最大值、最小值,方差
  • 用户近6个月标的总金额均值、最大值、最小值,方差
  • 用户近9个月标的期数均值、最大值、最小值,方差
  • 用户近9个月标的费率均值、最大值、最小值,方差
  • 用户近9个月标的总金额均值、最大值、最小值,方差
  • 用户近12个月标的期数均值、最大值、最小值,方差
  • 用户近12个月标的费率均值、最大值、最小值,方差
  • 用户近12个月标的总金额均值、最大值、最小值,方差
  • 历史借款距当前最小天/最大天

6.18

  • 当前标的期数/费率/金额占3/6/9/12均值的比例
  • 近3月标的期数/费率/金额占6/9/12均值的比例
  • 近6月标的期数/费率/金额占9/12均值的比例

user_info

  • 性别、年龄、身份证省、id省
  • 身份证和id是否同一个省
  • 注册时间据放款时间的月数

6.18

  • 提取占比最多的几个城市、N 观察市的分布,看是否可用,城市过多,统一one-hot可能过拟合 省份可能过拟合,尝试去除部分省份做处理

user_taglist

  • 多少个不同的用户画像
  • 通过IV筛选最高的若干tag

user_behavior_logs

  • 用户近7天行为数、白天夜晚行为数

  • 用户近7天行为1数、2数、3数

  • 用户近1天行为数、白天夜晚行为数

  • 用户近1天行为1数、2数、3数

  • 用户近15天行为数、白天夜晚行为数

  • 用户近15天行为1数、2数、3数

  • 用户近30天行为数、白天夜晚行为数

  • 用户近30天行为1数、2数、3数

6.18

  • 用户60天行为数、白天夜晚行为数

  • 用户近60天行为1数、2数、3数

  • 近1/7/15/30/60天行为数中1/2/3/白天/黑夜数占比 sum

  • 近1天行为数中1/2/3/白天/黑夜数占7/15/30/60比

  • 近7天行为数中1/2/3/白天/黑夜数占15/30/60比

  • 近15天行为数中1/2/3/白天/黑夜数占30/60比

6.30

  • 将一天分为4个时间段
  • 时间和类型联合编码,得到12个不同的组合类型
  • 近7天最近一次行为距借款日的时间
  • 最近7天内10次行为对应的组合类型

user_repay_logs

  • 全部历史数据/历史1期/2期/3期账单
  • 以上逾期次数/逾期占比/还款额统计/提前还款日期统计/
  • 以上周1/5/6/7还款次数 /
  • 以上1/5/6/10/11/15/16/20/21/25/26日还款次数
  • 近100天内最近一次还款账单还款时间/金额
  • 近1/2/3月各种统计

6.18

  • 统计中加入(提前还款0/1/2/3占比)

  • 历史还款记录距今时间最大/最小值/均值

  • 近6/12月逾期次数/还款额统计/提前还款日期统计/ 周1/5/6/7还款次数 / 1/5/6/10/11/15/16/20/21/25/26日还款次数

  • 1/2/3期账单与历史的比例

  • 近1/2/3/6月账单与历史的比例

  • 近1月账单与2/3/6/12的比例

  • 近2月账单与3/6/12的比例

  • 近3月账单与6/12的比例

  • 近100天内最近一次还款账单还款提前天数、期数

6.30

两次一期借款的间隔

  • 与listing_info关联,借款日后一个月内要还款的金额、笔数(需考虑提前还款)
  • 下月还款中离账单日最近的日期(排除到期还款),可做规则,还款日是否在该日期内(88.78%在日期内)
  • 一个月内有几次还清贷款的记录

是否新客户(874841/928195为老客户,有历史纪录,)

(似乎效果不好,用户更倾向于按照截止日期还款,而不是每月固定时间)

other多表聚合特征

  • 当前账单占近1/2/3月、1/2/3期账单比例 repay_logs_order

6.18

  • 当前账单占近6/12月账单比例 repay_logs_order
  • 使用lgb训练所有用户画像,y为截止日还款和是否逾期,将预测概率作为特征
  • 使用iv筛选,将iv最高的28个用户特征作为模型输入