消费者人群画像—信用智能评分

  • 简介

    • 赛题介绍
    • 线上分数:0.06391+,调参任务还没有完全做完
  • 特征工程

    • 由于题目中的数值型特征,官方自动补了0,为了识别出该操作,针对数值型增加判断是否为0

    • 由于相关APP打开次数,有些数据明显不正常,人为的划定区间(相当于手动聚类),{0, (0, 10), (10, 100), (100, 1000), (1000, )},然后One-Hot编码

      尝试过直接用编码后的代替原始特征,发现效果不太好,因此不将原始特征drop掉

    • Boolean型特征二次组合,比如可能是否大学生+是否黑名单时才是强特

      理论上应该穷举所有的组合可能,但是可能性太高了,使用PCA和SVD降维效果均不理想,有想通过CNN的方式降维,但是还没有较好的思路,只考虑了所有Boolean特征一起组合,此处用了一点小技巧:二进制编码

      • 将所有Boolean特征的值当做二进制,转为10进制即可
      • 由于有些编码情况过于少,应该合并为-1,尝试了不合并,小于2次的合并,小于5次和小于10次的合并,线下最好的为小于5合并
      • 将编码合并后进行One-Hot
    • 通过最后充值金额判断充值方式

      感谢Venn老哥的开源,开源baseline见参考资料,不过进行了一点点改动

      • 通过充值金额分三类,充值金额=0,充值金额能被10整除,充值金额不能被10整除
      • 将编码后进行One-Hot
    • 通过花费和余额等判断用户稳定性

      该特征来源于Venn老哥的baseline,详情见参考资料

      • 话费稳定性:当月花费 / (近6月平均花费 + 5) ps.分母+5是为了简单平滑
      • 当月花费 / (当月账户余额 + 5)
    • 尝试过的特征

      • 万物皆embedding已经失效
      • 所有基于label构造的特征,类似于CTR的特征均无效。(线下很好,线上GG,过拟合了)
  • 特征融合

    • 基模型
      • lightgbm
      • xgboost
      • catboost,速度很慢,调参难度大
      • RandomForest:速度慢,且效果差,舍弃
      • GradientBoostin:速度慢,效果差,舍弃
      • Adaboost:理由同上,舍弃
    • stacking融合
      • 使用BayesianRidge作为融合模型
      • 由于使用了3个基模型,所以共有3种组合,lgb+xgb,lgb+ctb,lgb+xgb+ctb,加上原始的3组,则共有6组结果
    • blending融合
      • 通过stacking后有6组结果,如何确定6组结果的权重,这就是blending需要做的
      • 最简单的做法是6组取均值,次数将其转化为最优化问题
      • 在训练集中,以mae最小为目标函数,训练6个权重
      • 将6个权重归一化
    • 尝试过的模型
      • KerasRegressor:NN模型,效果很烂
      • automl:效果很烂
      • 线性模型还没有尝试
  • 参考资料