使用逻辑回归制作信用卡评分卡

目录

一、摘要

二、数据集介绍

三、数据探索 

四、数据预处理

五、分箱处理

六、建模与评价​​​​​​​

一、摘要

  本文基于kaggle上Give Me Some Credit数据和菜菜的sklearn课堂的处理思路,结合信用卡评分构建原理,采用python语言完成。主要包括特征预处理、特征选择、数据分箱、将特征WOE值映射到数据中、使用逻辑回归进行建模和参数优化。

  ps:第一次写,请多指教。

二、数据集介绍

  数据集约15W条样本数据,各特征及标签含义如下:

特征/标签 含义
SeriousDlqin2yrs 0:好客户  1:坏客户
RevolvingUtilizationOfUnsecuredLines 贷款以及信用卡可用额度与总额度比例
age 借款人年龄
NumberOfTime30-59DaysPastDueNotWorse 两年内35-59天逾期次数
NumberOfTime60-89DaysPastDueNotWorse 两年内60-89天逾期次数
NumberOfTimes90DaysLate 两年内90天或高于90天逾期的次数
DebtRatio 负债比率
MonthlyIncome 借款人的月收入
NumberOfOpenCreditLinesAndLoans 开放式信贷和贷款数量
NumberRealEstateLoansOrLines 不动产贷款或额度数量
NumberOfDependents 借款人的家属数量(不包括本人在内

三、数据探索 

使用逻辑回归制作信用卡评分卡_第1张图片

使用逻辑回归制作信用卡评分卡_第2张图片

数据集共有150000行,其中MonthlyIncome和NumberOfDependents存在缺失值。 

3.1 查看标签

使用逻辑回归制作信用卡评分卡_第3张图片

 结论:样本分布极其不均衡,稍后通过过采样方式处理。

3.2 查看缺失比例

使用逻辑回归制作信用卡评分卡_第4张图片

 MonthlyIncome缺失较多,NumberOfDependents有部分缺失。

月收入缺失接近20%,这项指标作为借贷的重要参考缺失这么多很反常,应该及时和业务部门沟通。

假设1:因为月收入会影响借贷额,如果收入高自然借贷额高,没有理由不写。考虑是收入低的人群,为了能够借更多而故意隐瞒。如果是这样,就将缺失值都赋值为0处理。

假设2:数据录入异常,这个要结合业务处理。本案例无法结合业务,稍后可采用随机森林填补缺失值。

如果是假设1,那么应当是SeriousDlqin2yrs为1(坏客户)的客户更多,排除假设1,稍后按照假设2处理。

家属人数缺失只有不到2%,稍后可采取以众数或者0进行填充。 

3.3 查看离群点

使用逻辑回归制作信用卡评分卡_第5张图片

使用逻辑回归制作信用卡评分卡_第6张图片

 当一行有3个特征都属于离群值时,删除该行。

3.4 查看RevolvingUtilizationOfUnsecuredLines

使用逻辑回归制作信用卡评分卡_第7张图片

从上图可以看到在99%处,数据值为1.07左右,但最大值为50708,存在异常。

3.5 查看年龄

使用逻辑回归制作信用卡评分卡_第8张图片

  从网上查的资料,信贷年龄一般要求在18到65周岁之间,从上图可以看出最小值出现了0岁,这显然是不正常的。四分之三位数在65岁以内,最大值在109周岁。进一步查看不同年龄阶段的人数。 

使用逻辑回归制作信用卡评分卡_第9张图片

年龄分布较为集中在青壮年 

只有一条数据年龄小于18,稍后将其作为异常值直接删除。

大于65周岁的有28599条数据,说明其是正常值,保留。

 3.6 查看逾期30-59天 | 60-89天 | 90天笔数分布

使用逻辑回归制作信用卡评分卡_第10张图片

使用逻辑回归制作信用卡评分卡_第11张图片

使用逻辑回归制作信用卡评分卡_第12张图片

30-59天,68-89天和90天以上的逾期次数最大值98显然超出了正常范围,根据上面3幅图可以看出,逾期次数都是从20以下跳到90以上,且96和98数量都相同。可以认为90以上为异常数据,逾期次数最大值可以取为17。

3.7 查看DebtRatio

使用逻辑回归制作信用卡评分卡_第13张图片

数据中出现支出是收入成千上万倍的数据,进一步查看这些数据的标签值。

  

正常用户居多,不认为是异常值。

3.8 查看NumberOfOpenCreditLinesAndLoans 

使用逻辑回归制作信用卡评分卡_第14张图片

使用逻辑回归制作信用卡评分卡_第15张图片

3.9 查看NumberRealEstateLoansOrLines

使用逻辑回归制作信用卡评分卡_第16张图片

使用逻辑回归制作信用卡评分卡_第17张图片

四、数据预处理

4.1 重复值处理

​​​​​​​ 

4.2 处理缺失值

1.使用0填充NumberOfDependents

使用逻辑回归制作信用卡评分卡_第18张图片

2.使用随机森林填补缺失的特征

使用逻辑回归制作信用卡评分卡_第19张图片

  

 4.3 处理异常值

使用逻辑回归制作信用卡评分卡_第20张图片

使用逻辑回归制作信用卡评分卡_第21张图片  

4.4 查看数据间相关

使用逻辑回归制作信用卡评分卡_第22张图片

使用逻辑回归制作信用卡评分卡_第23张图片

 各个特征相关性较低,不需要进行变量删除。

4.5 处理样本均衡问题

使用逻辑回归制作信用卡评分卡_第24张图片

使用逻辑回归制作信用卡评分卡_第25张图片  

 五、分箱处理

  1. 分箱数量不宜过多,应该控制在4-6个之间。
  2. 先等距分箱,默认分为50个(函数:cut_bins_first)
  3. 确保每个箱子都含有同时包含正样本和负样本,合并不符合条件的箱子(函数:merge_bins_01)
  4. 对箱子进行卡方检验,合并p值最大的箱子以保证差异性,默认先合并到20个(函数:merge_bins_kf)
  5. 通过画图找到最佳分箱数量。将分箱数为2~20所对应的IV值画出来,找到最适合的分箱数量(函数:graph_for_bins)
  6. 合并箱子至最佳分箱数,计算分箱woe值,得到训练数据(函数:get_final_bins_auto,get_final_bins_hand)

使用逻辑回归制作信用卡评分卡_第26张图片

使用逻辑回归制作信用卡评分卡_第27张图片

使用逻辑回归制作信用卡评分卡_第28张图片

使用逻辑回归制作信用卡评分卡_第29张图片  

使用逻辑回归制作信用卡评分卡_第30张图片

 画出分箱数和IV值之间的关系

部分特征适合自动分箱(图未贴完)

使用逻辑回归制作信用卡评分卡_第31张图片 ​​​​​​​​​​​​​​​​​​​​​使用逻辑回归制作信用卡评分卡_第32张图片

部分特征不适合自动分箱

使用逻辑回归制作信用卡评分卡_第33张图片 使用逻辑回归制作信用卡评分卡_第34张图片

使用逻辑回归制作信用卡评分卡_第35张图片

使用逻辑回归制作信用卡评分卡_第36张图片  

得到分箱cut和woe值后,将其对应到原数据上。

使用逻辑回归制作信用卡评分卡_第37张图片

  最终得到对应woe值的训练数据和测试数据

使用逻辑回归制作信用卡评分卡_第38张图片

使用逻辑回归制作信用卡评分卡_第39张图片  

六、建模与评价

使用逻辑回归制作信用卡评分卡_第40张图片

使用逻辑回归制作信用卡评分卡_第41张图片

使用逻辑回归制作信用卡评分卡_第42张图片

使用逻辑回归制作信用卡评分卡_第43张图片

使用逻辑回归制作信用卡评分卡_第44张图片

使用逻辑回归制作信用卡评分卡_第45张图片

使用逻辑回归制作信用卡评分卡_第46张图片  

你可能感兴趣的:(数据挖掘,人工智能,机器学习,逻辑回归)