评分卡实例:一步一步实现评分卡(详细长文)

评分卡实例:一步一步实现评分卡(详细长文)老饼讲解机器学习 本文讲述小贷评分卡的完整流程 包括数据处理 变量筛选 建模 上线等

大家好,欢迎来到IT知识分享网。

老饼讲解-机器学习https://www.bbbdata.com/text/125


目录

(前言一) 数据说明

(前言二) 评分卡建模步骤概述

一.变量分析、选择与分箱处理

(一) 使用badRate法(或iv法)分析变量

(二) 原始数据转为分箱数据

二.模型数据预处理

(一) 转WOE

(二) 归一化

(三) 总结

三.模型变量筛选与建立逻辑回归模型

(一)逐步回归选择尽量少的变量建模

(二)用选出的变量建立逻辑回归

四.模型评估

(一) 用AUC评估

(二) 检验系数是否为正数

五.模型输出(转评分)

(一) 模型输出与应用(概率预测)

(二) 模型输出与应用(转为客户评分)

六、模型阈值表与投产阈值

(一) 模型阈值效果表

(二) 通过阈值表确定阈值

(三) 分数分布图


本文以kaggle上的借贷数据:https://www.kaggle.com/c/GiveMeSomeCredit/data 为例,讲解《建立评分卡模型的全过程》。

本文只讲解流程,完整代码见《评分卡实例:完整建模代码》

本文的流程是完整的,详细的,具体的,可以一步步跟着执行。由于文字上比较浓缩, 需要花些耐心。

特别告知:《评分卡系列》文章在本人网站作了更完善更全面的更新,由于改动过大,本文不再更新。一切以老饼的知识网站为主。


(前一) 数据说明

数据共包含10个变量与客户好坏标签:

变量名 变量描述 数据类型
SeriousDlqin2yrs 是否有超过90天或更长时间逾期未还的不良行为 二分类(0为好,1为坏)
RevolvingUtilizationOfUnsecuredLines 信用卡和个人信用额度的总余额(除房地产以及分期付款债务(如汽车贷款))除以总信贷限额。 定量
age 借贷者的年龄 定量
NumberOfTime30-59DaysPastDueNotWorse 借款者逾期30至59天的次数(过去两年中没有恶化) 定量
DebtRatio 月债务支出、赡养费、生活费除以总收入(负债比率) 定量
MonthlyIncome 月收入 定量
NumberOfOpenCreditLinesAndLoans 公开贷款(如汽车和抵押的分期)和信用上线(比如信用卡)数量 定量
NumberOfTimes90DaysLate 90天逾期次数:借款者有90天或更高逾期的次数 定量
NumberRealEstateLoansOrLines 抵押和房地产数量(包括房屋净值信用额度) 定量
NumberOfTime60-89DaysPastDueNotWorse 借款者逾期30至59天的次数(过去两年中没有恶化) 定量
NumberOfDependents 家庭受抚养人数(不含自己) 定量

数据共15万条,如下

评分卡实例:一步一步实现评分卡(详细长文)


(前言二) 评分卡建模步骤概述

评分卡的目标模型是,依据客户数据(10个变量),预测客户是否坏客户(数据中的SeriousDlqin2yrs变量).

整个建模过程共5步:
1.变量分析与分箱:筛选与标签SeriousDlqin2yrs有相关性的变量,并把变量进行分箱,作为建模的输入特征。
2.建模
(1)数据预处理:转woe,归一化
(2)用逐步回归选出尽量少的特征(同时保持建模效果)
(3)训练逻辑回归模型
3.模型评估:检验AUC是否达标,并检查系数是否都为正。
4.将逻辑回归模型预测结果转为评分
5.确定生产上的判定为坏客户的分数阈值








一.变量分析、选择与分箱处理

(一) 使用badRate法(或iv法)分析变量
 

本阶段分析和挑选变量,一般使用badRate法(或iv法)分析哪些变量与客户的质量相关,作为入模变量。

 完整分析流程与变量初探结果见:

《评分卡实例:变量分析-整体流程》

《评分卡实例:变量分析-初探结果》

这里挑选部分讲解如下:

1.badRate法分析过程简介

2.例子
(1) 先粗略分箱,试探变量的badRate,如RevolvingUtilizationOfUnsecuredLines变量

评分卡实例:一步一步实现评分卡(详细长文)

(2)如果变量的badRate有一定的趋势,就进一步对变量仔细分箱

评分卡实例:一步一步实现评分卡(详细长文)

在本例中,所有变量与badRate都有明显的关系。因此以上10个变量都被选择用于建模。

(二) 原始数据转为分箱数据

最后,将原始数据转为分箱数据,如下:

评分卡实例:一步一步实现评分卡(详细长文)

由于原变量名过长,换成新的变量名:

评分卡实例:一步一步实现评分卡(详细长文)

完整结果见《评分卡实例:变量分析-变量分箱》


二.模型数据预处理

预处理时,将原数据映射成组号,如果直接把组号作为特征变量值,不够理想,组号是等距的,而badrate是不等距的。一般需先将组号转为WOE

WOE的意义与推导可见:《评分卡-WOE的意义与推导》

(一) 转WOE

(1) 计算每个特征每个分组的WOE(特征WOE映射表):
即将变量X第i组的输入转为

评分卡实例:一步一步实现评分卡(详细长文)

(2) 将分组转换为WOE
(3) 举例说明
特征 rev_grp 计算得到的每组对应的WOE:

评分卡实例:一步一步实现评分卡(详细长文)

将rev_grp的分组数据转换成分组对应的woe数据:

评分卡实例:一步一步实现评分卡(详细长文)

备注:有些人在分箱时,只作分箱,而不按badRate大小重新调整分组,即badRate不随序号增加而增加,这时,作 WOE转换可解决此问题。

(二) 归一化

(1) 归一化公式 
归一化直接使用如下公式对数据缩放到[0,1]即可:

评分卡实例:一步一步实现评分卡(详细长文)

(2) 举例说明
特征rev_grp 归一化前的最大值为:2.793,最小值为:-1.574,则对rev_grp统一作归一化如下:

评分卡实例:一步一步实现评分卡(详细长文)

(三) 总结

总的来说,由分组数据–>woe数据–>归一化数据,如下:

评分卡实例:一步一步实现评分卡(详细长文)


三.模型变量筛选与建立逻辑回归模型

(一)逐步回归选择尽量少的变量建模

则选出的变量,就是变量池中,最具代表的变量。这样既保障了模型的效果,又尽量减少变量的个数。

代码结果:

===========逐回步归过程=============== 本轮最佳AUC: 0.30279 ,本轮最佳变量: rev_grp 本轮最佳AUC: 0.6963 ,本轮最佳变量: due3059_grp 本轮最佳AUC: 0.24723 ,本轮最佳变量: due90_grp 本轮最佳AUC: 0.25118 ,本轮最佳变量: due6089_grp 本轮最佳AUC: 0.57751 ,本轮最佳变量: debratio_grp ,效果不明显,不再添加变量 最终选用变量 4 个: Index(['rev_grp', 'due3059_grp', 'due90_grp', 'due6089_grp'], dtype='object')

可以看到,在加入第5个变量,deratio_grp时,AUC增长并不明显,则可以停止添加变量。只使用前4轮挑出的变量:rev_grp,due3059_grp,due90_grp,due6089_grp

(二)用选出的变量建立逻辑回归

备注:训练时, sklearn默认加入L2正则项,训练时可先将penalty选项设为’none'(即不加入正则项),如果最后训练系数不满意,再改回’l2’训练。

训练完成,即可得到各个特征的权重w和阈值b:

=========模型参数========== 模型系数(对应原始数据): [0. 0. 0. 0. ] 模型阈值(对应原始数据): -2.22016

四.模型评估

(一) 用AUC评估

模型的效果评估一般是使用AUC。

PASS:为什么使用AUC,而不是准确率?因为模型预测的是概率,判断最终是好坏,还需要引入阈值(大于阈值,判为坏,小于阈值,判断为好),阈值不同,准确率也不同。而AUC则是所有阈值的准确率的综合评估。

计算模型的AUC,AUC值的意义如下:

(二) 检验系数是否为正数


五.模型输出(转评分)

(一) 模型输出与应用(概率预测)

共由三部分组成:

如下:
(1) 模型变量(model_feture):rev_grp,due3059_grp,due90_grp,due6089_grp
(2) WOE对应表:

评分卡实例:一步一步实现评分卡(详细长文)

(3)模型系数:

评分卡实例:一步一步实现评分卡(详细长文)

2.模型应用

(二) 模型输出与应用(转为客户评分)

评分卡实例:一步一步实现评分卡(详细长文)

 整理后可得:

评分卡实例:一步一步实现评分卡(详细长文)

备注:评分卡不使用概率转换分数,而是用线性部分转换成分数,这样做的好处是,每一个特征x的分数和就是总分,而如果用概率转分,则单个特征增加s分,总分并不增加s分。

1.将概率模型转换为评分模型

(1) 设置 init_socre,init_odds,delta_score,delta_rate

(2) 计算模型的基础分和每个特征每个分组的评分。

先用公式计算offset和factor。

评分卡实例:一步一步实现评分卡(详细长文)

 计算基础分与特征得分:

评分卡实例:一步一步实现评分卡(详细长文)

公式的推导可阅读:《评分卡-分数转换与推导》

2.最终评分模型输出

如下:
(1) 模型变量(model_feture):rev_grp,due3059_grp,due90_grp,due6089_grp
(2) 基础分(BaseScore):692.45
(3) 特征评分表:


评分卡实例:一步一步实现评分卡(详细长文)

3.模型应用

模型应用时,即对客户评分,如下使用:


六、模型阈值表与投产阈值

模型投产时,需要确定一个评分阈值,将低于评分阈值的客户拒绝。

(一) 模型阈值效果表

为了结合业务,确定阈值,一般统计阈值效果表。阈值表展示用不同评分阈值,模型在业务带来的效果。

阈值效果表的统计字段如下:

评分卡实例:一步一步实现评分卡(详细长文)

(二) 通过阈值表确定阈值

(2) 再看《损失的客户%》确定阈值。

如阈值取<670,则损失 10.55%客户(15818个),如果损失客户过多,业务上不能接受,则阈值取更小。

(3) 最后评估综合信息.

(三) 分数分布图

评分卡实例:一步一步实现评分卡(详细长文)


特别告知:《评分卡系列》文章在本人网站作了更完善更全面的更新,由于改动过大,本文不再更新。一切以老饼的知识网站为主。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129545.html

(0)
上一篇 2025-08-23 16:15
下一篇 2025-08-23 16:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信