基于逻辑回归的评分卡模型简单概述
前言:
Github代码:基于逻辑评分卡建模
在介绍基于逻辑评分卡之前,需要对逻辑回归有个基本认知,最好能自己推导公式。文章链接:逻辑回归推导及相关常问问题
评分卡模型
1:概述
信用评分本质上是模式识别中的一类分类问题,将企业或者个体消费者划分为能够按期还本付息(即“好”客户)和违约(即“坏”)两类。
具体做法是根据历史数据中的样本,从已知的数据中找出违约及不违约客户的特征,从而总结出分类的规则,建立数学模型,用于测量价款人的违约风险(或者违约概率),为消费信贷决策提供依据。
2:建模的准备
2.1:目标变量的准备
研究的目标变量为客户是否具有违约行为,其中,以标管定义的在应还日期前应该还款但没有还款的行为,定义为逾期行为。
2.2:定量指标的筛选方法
筛选方法 | 大致流程 |
---|---|
随机森林 | 用随机森林法寻找自变量中对违约状态影响最显著的指标 |
计算变量的相对重要性 | 通过相对重要性的排序,获取自变量中对违约状态影响最显著的指标 |
广义交叉验证法 | 通过自变量间的广义交叉验证,获取自变量中对违约状态影响最显著指标 |
自变量的逐步回归法 | 通过自变量的逐步回归,获取自变量中对违约状态影响最显著的指标 |
采用“Boruta”法 | 采用采用“Boruta”法,获取自变量中对违约状态影响最显著的指标 |
2.3:定性指标的筛选方法
定性指标的筛选是通过IV(Information Value)值选出适用于建模的指标-----(这里就不对IV做详细的解释和介绍了),总之IV值可以帮助我们衡量变量的预测能力(即帮模型预测好坏客户的能力)。再引入IV之前,要介绍另一个概念——WOE,这是因为IV值得计算是在WOE基础上的,同时,在介绍WOE之前,要介绍下特征分箱,这是因为WOE值是特征分箱后的计算结果。
由此,我们按照:特征分箱—— WOE值—— IV值,这条逻辑主线来依次介绍。
2.3.1 特征分箱
分箱的定义:
(1)将连续变量离散化
(2)将多状态的离散变量合并成少状态
(3)可以 将缺失作为独立的一个箱带入模型中
(4)将所有变量变换到相似的尺度上
分箱的重要性:
(1)稳定性:避免特征中无意义的波动对评分带来的波动
(2)健壮性:避免了极端值的影响
分箱的限制:
(1)计算量大
(2)分箱后需要编码
其中,分箱的方法分为:有监督和无监督分箱
有监督 | 无监督 |
---|---|
Best-KS | 等频 |
ChiMerge(即:常用的卡方分箱法) | 等距 |
聚类 |
**注:**这里不详细介绍每种分箱方法具体实现的过程
接下来介绍分箱需要注意点:
对于连续型变量:
(1)使用ChiMerge进行分箱(默认是5份)
(2)检查分箱后的bad rate的单调性,如果不满足,需要进行相邻的两箱合并,直到bad rate为止
(3)上述过程是收敛的,因为当箱数为2时,bad rate自然单调
(4)分箱必须覆盖所有样本为可能存在的值
(5)原始值很多时,为了减小时间的开销,通常选取较少(例如50个)初始切分点,但是要注意分布不均匀。
对于类别型变量:
(1)当类别上较少时,原则上不需要进行分箱
(2)都某个或者几个类别的bad rate为0时,需要和最小的非0的bad rate的箱进行合并
(3)当该变量可以完全区分目标变量时,需要认真检查该变量的合理性
2.3.2 WOE编码
WOE(weight of evidence),证据权重,是一种有监督的编码方式,将预测类别的集中度的属性作为编码的数值。
优势:
(1)将特征的值规范到相近的尺度上
(2)具有业务含义
缺点:
(1)需要每箱中同时包含好坏两个类别
以年龄属性,查看好坏样本的数量分布,得出WOE值:
**表1:按照“年龄”各个属性的好、坏统计**
Age | bad | good | WOE |
---|---|---|---|
<10 | 50 | 200 | =ln((50/100)/(200/1000))=ln((50/200)/(100/1000)) |
10-18 | 20 | 200 | =ln((20/100)/(200/1000))=ln((20/200)/(100/1000)) |
18-35 | 5 | 200 | =ln((5/100)/(200/1000))=ln((5/200)/(100/1000)) |
35-50 | 15 | 200 | =ln((15/100)/(200/1000))=ln((15/200)/(100/1000)) |
50y以上 | 10 | 200 | =ln((10/100)/(200/1000))=ln((10/200)/(100/1000)) |
总计 | 100 | 1000 |
可以看出,WOE反映的是在自变量每个分组下违约用户对正常用户占比和总体中违约用户对正常用户占比之间的差异,WOE越大,这种差异越大,这个分组里的样本响应的可能性就越大,WOE越小,差异越小,这个分组里的样本响应的可能性就越小。
从而可以直观的认为WOE蕴含了自变量取值对目标变量(违约概率)的影响。同时,又因为WOE计算形式与逻辑回归中目标变量的逻辑转换:
lnp1−p=W0+W1∗X1+...+Wn∗Xnln\frac{p}{1-p}=W_0+W_1*X_1+...+W_n*X_n ln1−pp=W0+W1∗X1+...+Wn∗Xn
非常相似,所以可将自变量WOE值替代原先的自变量值,计算公式如下:
WOEi=lnpipni=lnBi∗GTGi∗BTWOE_i=ln\frac{p_i}{p_{ni}}=ln\frac{B_i*G_T}{G_i*B_T} WOEi=lnpnipi=lnGi∗BTBi∗GT
其中,Bi 表示第i组违约用户的数量,BT 表示违约用户的总数量,Gi表示第i组正常用户的数量,GT表示正常用户的总数量。
WOE编码的一个最大好处,也就是把badrate呈现非线性的变量转换为线形,便于理解也便于后续模型求解
同样,对于每个分组i,都有一个IV值,IV指的计算公式如下:
IVi=BiBT−GiGT∗ln(Bi∗GTGi∗BT)IV_i=\frac{B_i}{B_T}-\frac{G_i}{G_T}*ln(\frac{B_i*G_T}{G_i*B_T}) IVi=BTBi−GTGi∗ln(Gi∗BTBi∗GT)
IV=∑k=0nIViIV=\sum_{k=0}^n{IV_i} IV=k=0∑nIVi
IV值衡量的是解释变量对于目标变量的影响的显著水平。在使用IV值来考虑解释变量对于目标变量的影响时,解释变量筛选、变量赋值编码和模型稳健性评估,这些有先后顺序的过程可以同时进行。筛选出能够较好第预测目标变量的解释变量,并同时给出这些解释变量的一个合理的赋值编码结果。在进行建模前选择入模变量一般选择IV值较大的变量。
IV值的作用:
(1)非负指标,高IV表示该特征和目标变量的关联度高
(2)目标变量只能是二分类
(3)过高的IV,可能有潜在的风险
(4)特征分箱越细,IV值越高
常用的阈值:
IV <= 0.02 : 没有预测性,不可用
0.02 ~ 0.1 : 弱预测性
0.1 ~ 0.2 :有一定预测性
0.2 + :高预测性
3 :基于逻辑回归的评分卡模型
特征工程
3.1 特征工程
在构建基于逻辑回归评分卡模型前,需要进行特征工程步骤:
- 包括数据探索性分析
- 缺失值处理
- 异常值处理
3.2 特征分箱
完成特征工程步骤后,再进行特征分箱需要注意以下几点:
不超过5箱
Bad Rate单调
每箱同时包含好坏样本
特殊值如-1,单独成一箱
连续型变量可直接分箱
类别型变量:
当取值较多时,先用bad rate编码,再用连续型分箱的方式进行分箱
当取值较少时:
2.1 如果每种类别同时包含好坏样本,无需分箱
2.2 如果有类别只包含好坏样本的一种,需要合并
3.3 特征筛选
特征筛选主要包括多变量和单变量分析
- 多变量分析主要是特征之间的协方差,得出不同特征之间相似性,剔除某些相似性高度相关的特征,可以加速模型收敛(即python常见的热度图分析)。
- 单变量分析,主要是根据基于WOE计算得出的IV值的大小进行特征筛选,IV值越大,包含的信息越多。剔除掉低于阈值的特征,因为这些特征没有预测性或者说预测性很低。
3.4 特征WOE化
再进行特征筛选后,仅保留需要的特征,然后进行WOE编码。
3.5 逻辑回归拟合
特征WOE编码后的结果,在进行逻辑回归拟合,得到拟合后的系数值
3.6 建立评分卡
每个属性对应的分支可以用过公式计算:WOE乘该变量的回归系数,再加上回归截距,再乘以比例因子,最后加上偏置量:
(woei∗βi)∗factor+offsetn(woe_i*\beta_i)*factor+\frac{offset}{n} (woei∗βi)∗factor+noffset
对于评分卡的分值,可以这样计算:
score=log(odds)∗factor+offsetscore=\log(odds)*factor+offset score=log(odds)∗factor+offset
=(∑i=1n(woei∗βi)+a)∗factor+offset=(\sum_{i=1}^n(woe_i*\beta_i)+a)*factor+offset =(i=1∑n(woei∗βi)+a)∗factor+offset
=(∑i=1n(woei∗βi+an))∗factor+offset=(\sum_{i=1}^n(woe_i*\beta_i+\frac{a}{n}))*factor+offset =(i=1∑n(woei∗βi+na))∗factor+offset
=∑i=1n((woei∗βi+an)∗factor+offetn)=\sum_{i=1}^n((woe_i*\beta_i+\frac{a}{n})*factor+\frac{offet}{n}) =i=1∑n((woei∗βi+na)∗factor+noffet)
依据以上信息得到:
a=log(PgoodPbad)a=\log(\frac{Pgood}{Pbad}) a=log(PbadPgood)
score=offset+factor∗log(odds)score=offset+factor*\log(odds) score=offset+factor∗log(odds)
在建立标准评分卡之前,需要选取几个评分卡参数:基础分值,PDO(比率翻倍的分支)和好坏比,这里我们取600分为基础分值,PDO为20(每高20分好环比翻一倍),好坏比取20。
4 :BadRate单调与特征分箱之间的联系
Bad Rate:
坏样本率,指的是将特征进行分箱之后,每个bin下的样本所统计得到的坏样本率
bad rate 单调性与不同的特征场景:
在评分卡模型中,对于比较严格的评分模型,会要求连续性变量和有序性的变量在经过分箱后需要保证bad rate的单调性。
1. 连续性变量:
在严格的评分卡模型中,对于连续型变量就需要满足分箱后 所有的bin的 bad rate 要满足单调性,只有满足单调新的情况下,才能进行后续的WOE编码
2. 离散型变量:
离散化程度高,且无序的变量:
比如省份,职业等,我们会根据每个省份信息统计得到bad rate 数值对原始省份信息进行编码,这样就转化为了连续性变 量,进行后续的分箱操作,对于经过bad rate编码后的特征数据,天然单调。
只有当分箱后的所有的bin的bad rate 呈现单调性,才可以进行下一步的WOE编码
3. 离散化程度低,且无序的变量:
比如婚姻状况,只有四五个状态值,因此就不需要专门进行bad rate数值编码,只要求出每个离散值对应的bin的bad rate比例是否出现0或者1的情况,若出现说明正负样本的分布存在极端情况,需要对该bin与其他bin进行合并, 合并过程完了之后 就可以直接进行后续的WOE编码
4. 有序的离散变量:
对于学历这种情况,存在着小学,初中,高中,本科,硕士,博士等几种情况,而且从业务角度来说 这些离散值是有序的, 因此我们在分箱的时候,必须保证bin之间的有序性,再根据bad rate 是否为0 或者1的情况 决定是否进行合并,最终将合并的结果进行WOE编码
因此bad rate单调性只在连续性数值变量和有序性离散变量分箱的过程中会考虑。
bad rate要求单调性的原因分析:
(1) 逻辑回归模型本身不要求特征对目标变量的单调性。之所以要求分箱后单调,主要是从业务角度考虑,解释、使用起来方便一点。如果有某个(分箱后的)特征对目标变量不单调,会加剧模型解释型的复杂化
(2) 对于像年龄这种特征,其对目标变量往往是一个U型或倒U型的分布,有些公司/部门/团队是允许变量的bad rate呈(倒)U型的。
基于逻辑回归的评分卡模型简单概述相关推荐
- 基于logistics回归的评分卡模型【相关理论】
评分卡模型 KS和roc曲线 KS值 ROC 曲线 AUC 评分卡 分箱 WOE IV 分箱 WOE与IV值 逻辑回归模型转化为评分卡: KS和roc曲线 TN:将负类预测为负类(真负类) FN:将正 ...
- 基于逻辑回归的金融风控模型评分卡
2022年1月报名了单位组织参加的传智教育线上Python数据分析培训班,一共五天.前三天主要介绍了一些Python和机器学习的基础知识.包括pandas库的使用.若干机器学习经典算法.基于机器学习的 ...
- 《如何搭建小微企业风控模型》第十一节 逻辑回归与评分卡 节选
<如何搭建小微企业风控模型>第十一节 逻辑回归与评分卡 节选 第一章 小微企业数据风控技术的框架 小微企业数据贷发展情况概述 搭建小微企业风控模型所需知识 风控模型概览 第二章 强相关变量 ...
- python信用评分卡_基于Python的信用评分卡模型分析(二)
上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...
- sklearn实战-----5.逻辑回归与评分卡
1 概述 1.1 名为"回归"的分类器 在过去的四周中,我们接触了不少带"回归"二字的算法,回归树,随机森林的回归,无一例外他们都是区别于分类 算法们,用来处理 ...
- sklearn_逻辑回归制作评分卡_菜菜视频学习笔记
逻辑回归制作评分卡 3.0 前言 逻辑回归与线性回归的关系 消除特征间的多重共线性 为什么使用逻辑回归处理金融领域数据 正则化的选择 特征选择的方法 分箱的作用 3.1导库 3.2数据预处理 3.2. ...
- 基于Python的信用评分卡模型-give me some credit数据集,AUC 0.93 KS 0.71
信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级.人信用评级有一系列评级模型组成,常见是A卡(申请评分卡).B卡(行为模型).C卡(催收模型)和F卡(反欺诈模型). 今天我们展示的是 ...
- 使用逻辑回归制作评分卡
1.什么是评分卡? 在银行借贷场景中,评分卡是一种以分数形式来衡量一个客户的信用风险大小的手段,一般来说,评分卡打出的分数越高,客户的信用越好,风险越小. 2.评分卡怎么使用? 对于需要借贷的个人或者 ...
- sklearn专题五:用逻辑回归制作评分卡
目录 3.1 导库,获取数据 3.2 探索数据与数据预处理 3.2.1 去除重复值 3.2.2 填补缺失值 3.2.3 描述性统计处理异常值 3.2.4 为什么不统一量纲,也不标准化数据分布? 3.2 ...
- 用逻辑回归制作评分卡
目录 一.评分卡 二.导库,获取数据 三.探索数据与数据预处理 1.去除重复值 2.填补缺失值 3.描述性统计处理异常值 4.为什么不统一量纲,也不标准化数据分布 5.样本不均衡问题 6.分训练集和测 ...
最新文章
- Nativefier 网页转桌面程序 app
- SQL CASE When THEN END 行列转换,复杂查询
- 为Eclipse plug-in(插件)创建语言包
- (6) ebj学习:ejb使用jpa注解
- 【Github开源】一站搞定各种开发文档
- 大于3小于4的整数bleem_比三大,比四小的整数是存在的吗?
- 破解版xmind 8
- 计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
- 关于mysql的表情包_mysql表情包 - mysql微信表情包 - mysqlQQ表情包 - 发表情 fabiaoqing.com...
- 华为云域名注册_华为云申请个人域名步骤
- Excel — 动态图表(复选框实现动态图)
- 钉钉考勤接口python3.6调用
- 饿了么“盛夏之战”,背后的底气是什么? | 一点财经
- JavaEE初阶---网络原理初识+网络编程套接字+网络原理之TCP_IP
- Github Actions - 实现百度贴吧自动签到
- PyQt5 常用窗口总结
- 对未来计算机网络的展望作文300,2017年关于网络的300字作文篇我与网络
- 运维 英文 日常 总结
- lftp和sftp区别联系
- COOX培训材料 — SCADA(2.Slider_R)