python信用评分卡建模(附代码,博主录制)

——————————————————————————————————————————

一、风控建模流程以及分类模型建设

1、建模流程

该图源自课程讲义。主要将建模过程分为了五类。数据准备、变量粗筛、变量清洗、变量细筛、建模与实施。

2、分类模型种类与区别

风控与其他领域一样,分类模型主要分为两大类:排序类、决策类、标注类(文本、自然语言处理)。

一般来说风控领域在意的是前两个模型种类,排序类以及决策类。

其中:巴塞尔协议定义了金融风险类型:市场风险、作业风险、信用风险。信用风险ABC模型有进件申请评分、行为评分、催收评分。

模型 解释 复杂度 应用场景
Logistics回归 影响程度大小与显著性,解释力度强,但只是线性,没有顾及到非线性,预测精度较低   申请评分、流失预测
决策树 1、描述性,重建用户场景,可做变量提取与用户画像 叶子的数量 流失模式识别
2、树的结构不稳定,可以得出变量重要性,可以作为变量筛选
随机森林 随机森林比决策树在变量筛选中,变量排序比较优秀    
神经网络 1、不可解释,内部使用,预测精度较高。可以作为初始模型的金模型(用以评估在给定数据条件下,逻辑回归可达到的最精确程度)
2、线性(逻辑回归)+非线性关系,可用于行为评分的预测模型(行为评分对模型可解释性不强),可用于申请评分的金模型
3、使用场景:先做一个神经网络,让预测精度(AUC)达到最大时,再用逻辑回归
迭代次数 申请评分的金模型;
行为评分的预测模型

(1)信用风险——申请信用评分

申请评分可以将神经网络+逻辑回归联合使用。

《公平信用报告法》制约,强调评分卡的可解释性。所以初始评分(申请评分)一般用回归,回归是解释力度最大的。

神经网络可用于银行行为评级以及不受该法制约监管的业务(P2P)。其次,神经也可以作为申请信用评分的金模型。

金模型的使用:一般会先做一个神经网络,让预测精度(AUC)达到最大时,再用逻辑回归。

建模大致流程:

一批训练集+测试集+一批字段——神经网络建模看AUC——如果额定的AUC在85%,没超过则返回重新筛选训练、测试集以及字段;

超过则,可以后续做逻辑回归。

(2)信用风险——行为评分

行为评分建模:行为信用评级不需要解释性,所以可以用非线性的神经网络。

——————————————————————————————————————————

二、分类模型评估体系

上述将分类模型做了归纳,不同的分类模型所采用的评估体系不同。

决策类:准确率/误分率、利润/成本

排序类:ROC指标(一致性)、Gini指数、KS统计量、提升度

1、决策类评估——混淆矩阵指标

混淆矩阵,如图:其中这些指标名称在不同行业有不同的名称解释

正确率=(A+D)/(A+B+C+D)

灵敏度(覆盖率、召回率)=A/(A+B)

命中率(PV+)=A/(A+C)

特异度(负灵敏度、负覆盖率)=D/(C+D)

负命中率(PV-)=D/(D+B)

在以上几个指标中不同行业看中不同的指标:

(1)灵敏度/召回率/覆盖率(——相对于命中率)

譬如灵敏度(召回率)这一指标就比正确率要重要,覆盖率(Recall)这个词比较直观,在数据挖掘领域常用。因为感兴趣的是正例(positive),比如在信用卡欺诈建模中,我们感兴趣的是有高欺诈倾向的客户,那么我们最高兴看到的就是,用模型正确预测出来的欺诈客户(True Positive)cover到了大多数的实际上的欺诈客户,覆盖率,自然就是一个非常重要的指标。

(2)命中率(——相对于覆盖率)

欺诈分析中,命中率(不低于20%),看模型预测识别的能力。

在数据库营销里,你预测到b+d个客户是正例,就给他们邮寄传单发邮件,但只有其中d个会给你反馈(这d个客户才是真正会响应的正例),这样,命中率就是一个非常有价值的指标。 以后提到这个概念,就表示为PV+(命中率,Positive Predicted Value)*。

2、排序类指标评估

ROC指标(一致性)、Gini指数(洛伦兹曲线)、KS统计量、提升度四类指标。

(1)ROC曲线

对角线模型,最差,风控喜欢的指标。由决策类指标的灵敏度(召回率/覆盖率)与特异度(负灵敏度、负召回率)来构造。

求覆盖率等指标,需要指定一个阈值(threshold)。随着阈值的减小,灵敏度和1-特异度也相应增加(也即特异度相应减少)。

把基于不同的阈值而产生的一系列灵敏度和特异度描绘到直角坐标上,就能更清楚地看到它们的对应关系。把sensitivity和1-Specificity描绘到同一个图中,它们的对应关系,就是传说中的ROC曲线,全称是receiver operating characteristic curve,中文叫“接受者操作特性曲线”。

AUC值,为了更好的衡量ROC所表达结果的好坏,Area Under Curve(AUC)被提了出来,简单来说就是曲线右下角部分占正方形格子的面积比例。该比例代表着分类器预测精度。(R语言︱ROC曲线——分类器的性能表现评价

(2)累积提升曲线

营销最好的图,很简单。它衡量的是,与不利用模型相比,模型的预测能力“变好”了多少(分类模型评估——混淆矩阵、ROC、Lift等)。

将概率从大到小铺开x,提升度可以有一些“忽悠”的成本,哈哈~可以微调,可以自己调节提升度的区间

(3)K-S曲线

风控喜欢的指标。K-S曲线的最大值代表K-S统计量。

(4)洛伦兹曲线gini

风控喜欢的指标,TP率给了一个累积比,跟提升度差不多。

——————————————————————————————————————————

三、信用风险模型检测

监测可以分为前端、后端监控。

前端监控,授信之前,别的客户来了,这个模型能不能用?

后端监控,建模授信之后,打了分数,看看一年之后,分数是否发生了改变。

1、前端监控

长期使用的模型,其中的变量一定不能波动性较大。比如,收入这个指标,虽然很重要,但是波动性很大,不适合用在长期建模过程中。

如果硬要把收入放到模型之中,要放入收入的百分位制(排名)。

2、后端监控

主要监控模型的正确性以及变量选择的有效性。出现了不平滑的问题,需要重新考虑

python风控建模实战lendingClub(博主录制,catboost,lightgbm建模,2K超清分辨率)

https://study.163.com/course/courseMain.htm?courseId=1005988013&share=2&shareId=400000000398149

微信扫二维码,免费学习更多python资源

风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)的更多相关文章

  1. 笔记︱风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...

  2. 文本分类实战(五)—— Bi-LSTM + Attention模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  3. 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)

    洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...

  4. PyQt(Python+Qt)学习随笔:model/view架构中的排序和代理模型QSortFilterProxyModel

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Model/View体系架构中,有两种方法可以进行排序:选择哪种方法取决于底层模型. 如 ...

  5. 生成模型(Generative)和判别模型(Discriminative)

    生成模型(Generative)和判别模型(Discriminative) 引言    最近看文章<A survey of appearance models in visual object ...

  6. 模型评估——ROC、KS

    无论是利用模型对信用申请人进行违约识别,还是对授信申请人进行逾期识别……在各种各样的统计建模中,永远必不可少的一步是对模型的评价,这样我们就可以根据模型评价指标的取值高低,来决定选取哪个模型.本篇主要 ...

  7. Coursera Deep Learning笔记 序列模型(一)循环序列模型[RNN GRU LSTM]

    参考1 参考2 参考3 1. 为什么选择序列模型 序列模型能够应用在许多领域,例如: 语音识别 音乐发生器 情感分类 DNA序列分析 机器翻译 视频动作识别 命名实体识别 这些序列模型都可以称作使用标 ...

  8. R2CNN模型——用于文本目标检测的模型

    引言 R2CNN全称Rotational Region CNN,是一个针对斜框文本检测的CNN模型,原型是Faster R-CNN,paper中的模型主要针对文本检测,调整后也可用于航拍图像的检测中去 ...

  9. 什么是领域模型(domain model)?贫血模型(anaemic domain model) 和充血模型(rich domain model)有什么区别

    http://blog.csdn.net/helloboat/article/details/51208128 领域模型是领域内的概念类或现实世界中对象的可视化表示,又称为概念模型或分析对象模型,它专 ...

随机推荐

  1. python2,3区别

      Python2 Python3 default charset ascii(can change) utf-8 print 可不加括号 必须加 range 有xrange()生成器 可转换为ran ...

  2. 排序方法——python

    1.冒泡排序法(Bubble Sort) 比较相邻的元素.如果第一个比第二个大,就交换它们两个: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数: 针对所 ...

  3. zabbix low-level discovery 监控mysql

    当一台服务器上MySQL有多个实例的时候,MySQL占用多个不同端口.利用zabbix的low-level discovery可以轻松监控. 思路参考:http://dl528888.blog.51c ...

  4. ubuntu python3虚拟环境

    mkvirtualenv flow_chart -p /usr/bin/python3.6 #  命令    环境名    -p   python所在路径 pip install -r request ...

  5. PHP数组赋值

    <?php $array1 = array('a','b'); $array2 = array('a'=>array('1','2'),'b'=>array('3','4')); $ ...

  6. c# json数据解析——将字符串json格式数据转换成对象或实体类

    网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋 ...

  7. JavaScript中数组的排序——sort()

    数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. arrayObject.sort(方法函数) 1.如果不指定<方法函数>,则按unicode码顺序排列. 2.如果 ...

  8. ActiveMQ之JMS及保证消息的可靠性<持久化、事务、签收>(三)

    1.JAVAEE 是一套使用Java 进行企业级开发的13 个核心规范工业标准 , 包括: JDBC  数据库连接 JNDI  Java的命名和目录接口 EJB   Enterprise java b ...

  9. Junit加载Spring容器作单元测试

    阅读目录 > 基本的搭建 > 常见的用法 如果我们需要对我们的Service方法作单元测试,恰好又是用Spring作为IOC容器的,我们可以这么配置Junit加载Spring容器,方便做单 ...

  10. github下载慢的问题

    1. 修改HOSTS文件:在“C:\Windows\System32\drivers\etc” 下的HOSTS文件,添加以下地址:  151.101.44.249 github.global.ssl. ...