DataFountain-用户逾期行为预测

目录

一、课题设计背景

二、设计方案概述

      1. 数据预处理

        1.1 删除无意义的列

       1.2 删除脏数据

        1.3数据编码

2.XGBOOST算法

三、具体实现

1. 使用到的库

2.OneHot编码模型

 3.导入文件

4. 数据处理

4.1 删除无意义的列

4.2 删除脏数据

4.3 对数据的非数值字段OneHot编码

5.数据切分

6.Xgboost 模型建立,参数选取

7.评价指标

8. 预测测试文件

四、结果及分析

1. 训练数据集结果

2.测试数据集提交结果

五、总结


一、课题设计背景

信贷用户逾期预测是新手入门必备的一个练习课题,每个银行都有大量的信用贷款客户,随着近年来银行面向个人的小额贷款业务的不断发展,防范个人信贷欺诈,降低贷款不良率,提高银行回款率是银行开展相关业务的首要目标。通过信贷用户的其他行为,利用大数据、人工智能、机器学习等方法,预测用户是否逾期。

文件包含训练集(train.csv)、测试集(test.csv)、提交样例(submission.csv),包含627个字段(附字段说明.xlsx)。

二、设计方案概述

      1. 数据预处理

       由于数据来源于某银行公布的网上公开数据集,为该银行真实信贷用户信息,应用于信用逾期预测、信用卡评分等业务场景。数据中存在不完整的(缺少某些感兴趣的属性值)、不一致的(包含代码或者名称的差异)、极易受到噪声(错误或异常值)的侵扰的等等,因此在进行数据预测之前先进行数据预处理。

        1.1 删除无意义的列

OPEN_ORG_NUM

开户机构

IDF_TYP_CD

证件类型

GENDER

性别

bad_good

个贷是否逾期

CUST_EUP_ACCT_FLAG

是否有欧元账户

CUST_AU_ACCT_FLAG

是否有澳元账户

CUST_SALARY_FINANCIAL_FLAG

是否薪资理财

CUST_SOCIAL_SECURITYIC_FLAG

是否社保金融IC卡

CUST_MTFLOW_FLAG

是否物流IC卡

CUST_DOLLER_FLAG

是否美元卡

CUST_INTERNATIONAL_GOLD_FLAG

是否国际金卡

CUST_INTERNATIONAL_COMMON_FLAG

是否国际普卡

CUST_INTERNATIONAL_SIL_FLAG

是否国际银卡

CUST_INTERNATIONAL_DIAMOND_FLAG

是否国际钻石卡

CUST_GOLD_COMMON_FLAG

是否金普卡

CUST_STAD_PLATINUM_FLAG

是否标准白金卡

CUST_LUXURY_PLATINUM_FLAG

是否豪华白金卡

CUST_PLATINUM_FINANCIAL_FLAG

是否白金理财卡

CUST_DIAMOND_FLAG

是否钻石卡

CUST_INFINIT_FLAG

是否无限卡

CUST_BUSINESS_FLAG

是否商务卡

       1.2 删除脏数据

因为文件中可能包含空值数据,NAN数据、重复等数据,因此使用panda库对数据进行清理。

        1.3数据编码

文件中某些字段是非数值的,因此使用OneHot编码对数据进行处理。

2.XGBOOST算法

建立XGBoost模型,使用预处理数据,对模型进行训练,使用训练好的模型,对测试数据进行预测。

涉及到的参数

nthread=4

nthread=-1时,使用全部CPU进行并行运算(默认), nthread=1时,使用1个CPU进行运算。

learning_rate=0.08,

含义:学习率,控制每次迭代更新权重时的步长,默认0.3。调参:值越小,训练越慢。典型值为0.01-0.2。

n_estimators=50

总共迭代的次数,即决策树的个数

max_depth=5

树的深度,默认值为6,典型值3-10。调参:值越大,越容易过拟合;值越小,越容易欠拟合

gamma=0

惩罚项系数,指定节点分裂所需的最小损失函数下降值

subsample=0.9

训练每棵树时,使用的数据占全部训练集的比例。默认值为1,典型值为0.5-1。调参:防止过拟合

colsample_bytree=0.5

训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。调参:防止过拟合

三、具体实现

        

1. 使用到的库

2.OneHot编码模型

 3.导入文件

4. 数据处理

4.1 删除无意义的列

 

4.2 删除脏数据

4.3 对数据的非数值字段OneHot编码

5.数据切分

将数据按8:2划分为训练集、测试集。

6.Xgboost 模型建立,参数选取

7.评价指标

8. 预测测试文件

四、结果及分析

1. 训练数据集结果

 

2.测试数据集提交结果

五、总结

   在进行此次实践时,一开始对于平台的使用并不是特别的了解,也不熟悉其中的相关操作,经过一段时间的使用后,也逐渐了解了对平台的使用。

   在进行这次实践之前,思想只停留在相对基础的基础的集成学习上面,并且没有实战的经验,因此在开始阶段一头雾水。

   首先,通过视频资料,对集成学习的发展史进行了解,了解大致情况,然后,通过详细的视频资料进一步学习,层层递进,并且通过阅读陈天奇博士的XGBoost论文,大致了解了XGBoost对于前一代GBDT算法的区别,大致区别我总结了一下几点:

  1. GBDT算法只利用了一阶的导数信息,XGBoost对损失函数做了二阶的泰勒展开。
  2. XGBoost的目标函数多了正则项, 相当于预剪枝,使得学习出来的模型更加不容易过拟合。
  3. 对缺失值的处理。对于特征的值有缺失的样本,XGBoost可以自动学习出它的分裂方向。

在学习过程中,我还学习了关于参数调节的方法:贪心调参方法、网格调参方法等等。

虽然此次实战选取的题目,数据量大,最终的分数也达到了满分,但由于选取的题目难度相对来说还是偏易,因此很多机器学习的知识并没有在这次实战中体现出来,但是在此次实战还是讲很多课上的理论知识运用到实际数据当中,关于模型的选取,参数的调节,数据的处理,也通过此次实践有了全新的认识。

数据集下载:用户逾期行为预测 竞赛 - DataFountain

完整代码:zhaozhao626/Machine_learning_course_design (github.com)

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值