前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >lightgbm模型实战案例:京东金融信贷需求预测

lightgbm模型实战案例:京东金融信贷需求预测

作者头像
机器学习AI算法工程
发布2019-10-29 11:19:35
1.9K0
发布2019-10-29 11:19:35
举报
文章被收录于专栏:机器学习AI算法工程

解决方案

  1. 数据分析
  2. 区间划分
  3. 特征提取
  4. 模型分析
  5. 模型调参
  6. 模型融合

数据分析

在本次比赛中,数据分析比较少,仅仅是用 Jupyter Notebook 简单的画了几个图,没有针对数据情况进行特定的特征提取,基本上是想到什么特征就用什么特征,然后 总和、平均、最大、最小、方差 这几个来一套。这是本次比赛中不足的地方。

赛题中对金额字段进行了加密,但是在竞赛群里,立刻就有大佬给出了加密(y=log5(x+1))和脱敏(y=5x+1)方法,我们直接使用该方法,效果提升非常明显。

区间划分

采用传统的划窗法对数据划分,注意:在划分数据时,一定不能出现数据穿越,即 训练的数据集中用到预测的数据 (如:要预测11月的贷款数据,则在训练数据中不能包含11月的数据信息) 否则会造成线下CV(交叉验证)效果非常好,但是线上糟糕。

本次比赛的划分方式我们尝试了两种方案:

模型分析

一看题目,咋们就很明显的看出这是一个回归问题,那么我们就先选用回归的各种模型来尝试,比如 GBDT、XGB、LR、 Ridge。

随后,我们通过分析数据发现,有相当大的一部分用户没有发生贷款行为,那么是否可以尝试采用先分类再回归呢?分为用户是否会贷款,如果否,直接将贷款值设为0;如果是,那么再用回归模型对用户的贷款行为预测。但是实际情况是,我们的分类模型得到的CV结果准确率仅为85%,加上分类再回归,反而导致了总体评分下降。在做了简单的尝试之后,我们便放弃了这个方法,还是直接使用回归模型。

模型调参

在这里,我们安利一个非常棒的 自动 特征处理(归一化、放缩)、模型选择、调参、模型融合的工具 TPOT,它是用遗传算法跑的,所以运行速度非常非常慢。在本次比赛中,我们一百多维的特征,9W多行(用户),TPOT参数设置:迭代25次,种群规模40,跑完一次,得到模型结果需要1-2天的时间。 此外,我们主要尝试了XGB和GBDT模型,最终的结果是GBDT要优于XGB,参数如下:

GBDT:

代码语言:javascript
复制
 X_train, X_test, y_train, y_test = train_test_split(train_X, train_Y,test_size=0.2, random_state=1)

XGB:

代码语言:javascript
复制
{'max_depth': 5, 'eta': 0.05, 'silent': 1, 'eval_metric': 'rmse', 'max_leaf_nodes': 5}
模型融合

在这次比赛中,我们采用了Stacking融合方法,理解不深,只是简单尝试了一下:

但是效果不咋滴。 由于我们用了TPOT这个调参工具,根据它生成的模型,貌似已经加上模型融合,所以我们在这一块没有放上太多的时间。

还有其他几个模型融合方法,比如:blending,加权平均。据师兄介绍,加权平均的融合方法有时候能取得一个非常不错的结果。

总结

初次比赛,还不懂套路,拿到赛题和数据后,我们没有做数据分析,直接巴拉巴拉暴力提取特征,导致很多特征都没有什么实际用处。另外在数据清洗上也没有进行操作,直接选取了全部数据;在一些缺失值,异常值(比如购买金额,贷款金额为负值)操作上,直接进行填零。不知道是否因为这些原因导致结果比较差。另外,在比赛初期,我们新增特征时,对结果有较大提高,特别是一些强特征(GBDT特征重要性排序),但在比赛后期,新增特征后,对结果几乎没有提高,有时甚至下降了。在本次比赛中,没有找到什么骚操作,也没有发掘出某个神奇的东西,对结果有大幅提高。但是,TPOT是个不错的东西,在特征确定的情况下,通过该工具,对模型调整有着突出的效果,缺点是运行速度太慢。https://tianle.me/2017/12/12/jd/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
    • 数据分析
      • 区间划分
        • 模型分析
          • 模型调参
            • 模型融合
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档