信用卡评分

实验基础信息

  • 实验名称:信用卡评分

  • 实验英文名:CreditCardScore

  • 所属类目:金融类

  • 实验描述:根据客户的属性和行为数据,利用信用评分模型对客户进行信用评分,以此决定是否给予授信和授信的额度,从而识别和减少金融交易中的风险

  • 主要应用算法:逻辑回归二分类

数据说明

  • 数据来源:Kaggle上某信用评分项目的数据,预测未来两年借款人遇到财务困境的可能性。

  • 数据属性:结构化数据。

  • 数据详情:数据集包含借款人的年龄、月收入、贷款情况、逾期天数及次数等信息,来预测该借款人是否会逾期90天及以上,共150000行数据。

实验搭建

实验整体流程如下:

2021 10 09 10 08 28
  • 读数据表:读入借款人相关数据。

字段 注释

age

借款人年龄

monthly_income

借款人月收入

debet_ration

负债率(债务支付+赡养费+生活费用)/月总收入

number_of_depends

不包括自己在内的家属人数(配偶、子女等)

revolving_utilization_of_unsecured_lines

(信用卡余额+个人信贷余额-房贷-其他未分期付款的债务)/ 信用额度总和 *100%

number_of_open_credit_lines_and_loans

进行贷款的数量(如房贷、车贷、抵押贷款、信用卡)

number_real_estate_loans_or_lines

抵押贷款和房贷的数量

number_of_time_30_59_days_past_due

借款人逾期30-59天的次数

number_of_time_60_89_days_past_due

借款人逾期60-89天的次数

number_of_time_90_days_late

借款人逾期90天及以上的次数

Serious_dlqin_2yrs

是否有逾期90天或更糟的拖欠

  • 缺失值填充:由于借款人的月收入有为空的情况,将null数值用中位数填充。

2021 10 09 10 22 33
  • Python脚本:删除表中number_of_depends(家属数量)为null的数据,因为该列的缺失值很少。

  • 异常值处理:采用manual方法处理age的异常值,处理后年龄处于16-90岁之间。

2021 10 09 11 47 07
  • smote采样:利用smote算法对Serious_dlqin_2yrs标签列较少的样本进行扩大,扩大比例为8倍。

  • 卡方分箱:将年龄、负债率、月收入、家属数量、剩余信用额度占比等5个特征进行分箱,将借款人分在不同的箱子里,将连续性的特征转化为类别类的离散特征。

2021 10 09 12 02 36
2021 10 09 13 42 50
  • WOE值转化:基于分箱后的类别,计算每个特征的每个类别的WOE值。

WOE的全称是”weight of envidence“,是对原始变量的一种编码形式,计算公式如下:

单个分组的WOE值计算:

2021 10 09 15 38 33

py指违约客户占所有样本的比例,pn指非违约客户占所有样本的比例,WOE是这2个值取比值再求对数。WOE越大,违约客户与非违约客户的比例就越大,客户违约的可能性越大。

IV的全称是“Information Value”,用于计算特征的价值,体现该特征对模型预测的影响能力,计算公式如下:

单个分组的IV值计算:

2021 10 09 15 43 45

某特征的所有分组IV值求和:

2021 10 09 15 44 03

IV值越大,表示该特征对模型的预测结果影响越大。

2021 10 09 15 46 41
  • 标签相关性特征筛选:筛选出前90%的重要特征,并计算这些特征的重要性。

2021 10 09 15 54 13
  • 逻辑回归二分类:采用逻辑回归算法组件进行模型构建,预测借款人是否会逾期90天及以上。

2021 10 09 15 57 35
2021 10 09 15 58 19
  • 模型评估:采用混淆矩阵评估组件,评估该分类算法的训练结果好坏。

2021 10 09 15 59 54
2021 10 09 16 00 39

如上图所示,准确率、精确率、召回率等指标均还不错,认为模型达到预期。

  • 评分卡系数转化:将分类组件得到的违约概率信息转化为评分分数。

2021 10 09 16 02 32

当基准坏好比是0.05时,基准评分是600分,当坏好比翻倍时,评分减少20分,根据此计算每个借款人的信用评分。