风控ML[10] | 风控建模中的自动分箱的方法有哪些

3777d910fbb07e68ddc25d5a95561fac.png

之前有位读者朋友说有空介绍一下自动分箱的方法,这个确实在我们实际建模过程前是需要解决的一个问题,简单来说就是把连续变量通过分箱的方式转换为类别变量。关于这个话题,我也借着这个主题来系统的梳理总结一下几点:为什么要分箱?不分箱可以入模型吗?自动分箱的常用方法有哪些?评估分箱效果好坏的方法有哪些? 如果篇幅允许,就顺便把实现的Python代码也分享下,如果太长了就另外起一篇文章来讲。因此,本篇文章主要从下面几个模块来展开说说。

00 Index

01 分箱是什么意思,为什么要分箱,什么时候分箱?
02 常见的自动分箱方法有哪些?
03 如何评估分箱效果的好坏
04 设计一个基于风控建模的自动分箱轮子

01 分箱是什么意思,为什么要分箱,什么时候分箱?

分箱的意思就是将连续性变量通过几个划分点,分割成几段的过程。比如说我们有一个字段「年龄」,通过分箱可以变成:
465ae79123abe61f1a933a0651a030f0.png

那到了这里有同学就会问了,为什么要对连续性变量进行分箱呢?直接拿来用不行吗?要回答这个问题,我们先要搞清楚分箱的好处有有哪些,主要有2点:
1)对变量进行分箱后,会对异常数据有较强的鲁棒性,变量会更加稳定;
2)变量分箱后,对于风控建模常用的LR,这种表达能力有限的线性模型,可以提升模型的表达能力,加强模型拟合能力。
嗯,讲了一些好处,还是有一个问题需要解决的,那就是:不分箱直接使用变量进入模型可以吗?
Actually,对于风控评分卡的大多数模型,是可以的,只不过有些模型,如果直接把连续变量进入模型的话,带来的模型效果会不太理想。那么,下面我将从两类我们常用的风控模型来说下:
1)LR:本身属于线性模型,表达能力有限,将变量分箱后意味着引入了更多的非线性特征,有助于提升模型拟合能力,一般情况下都进行WOE分箱之后再进入模型;
2)GBDT:作为Boosting类集成分类器模型的经典,这是一类将弱分类器提升为强分类器的算法,其中的提升树(Boosting tree)中间过程会产生大量决策树,如果输入的变量是分箱后高稀疏特征的话,一是会导致模型训练效果过低,二是会特别容易过拟合。一般都是输入连续型变量或者是非稀疏的OneHot;
3)XGBoost:它与GBDT类似,可以简单理解为XGBoost是一种基于GBDT的极度梯度提升的模型,优化了正则项和将损失函数展开到二阶,在算法精度、训练速度、泛化能力上有较大的优化。同GBDT,使用高稀疏的分箱特征入模型的话,速度还是会比较慢的。
4)CatBoost:CatBoost的主要“卖点”就是可以直接处理类别变量,也就是不需要OneHot直接入模,它也是可以直接对连续变量直接使用的;
总的来说,像LR这类的线性模型一般都是需要对连续变量分箱的,而对于GBDT、XGBoost这类的非线性模型,可以直接输入连续变量

02 常见的自动最优分箱方法有哪些?

在介绍了分箱的好处以及应用的场景后,我们需要知道一些方法去进行分箱,最直观的自动分箱方法就是等频和等距分箱,不过这类过于简单理论的方法,往往效果并不是特别地好。所以今天介绍一下3种业界常用的自动最优分箱方法。
1)基于CART算法的连续变量最优分箱
2)基于卡方检验的连续变量最优分箱
3)基于最优KS的连续变量最优分箱

基于CART算法的连续变量最优分箱

回顾一下CART,全称为分类与回归树(Classification And Regression Tree),由于CART生成的决策树都是二叉决策树,并且该算法是基于最小基尼指数递归的方式选择最优的二值划分点,不断地把数据集划分成D1和D2两部分,依此类推直到满足停止条件。
所以连续分箱也是可以借助相同的理论来使用,其实现步骤如下:
1,给定连续变量 V,对V中的值进行排序;
2,依次计算相邻元素间中位数作为二值划分点的基尼指数;
3,选择最优(划分后基尼指数下降最大)的划分点作为本次迭代的划分点;
4,递归迭代步骤2-3,直到满足停止条件。(一般是以划分后的样本量作为停止条件,比如叶子节点的样本量>=总样本量的10%)

基于卡方检验的连续变量最优分箱

卡方检验相信很多同学会比较熟悉,它是基于卡方分布的一种假设检验的方法,主要是用于两个分类变量之间的独立性检验,其基本思想就是根据样本数据推断两个分类变量是否相互独立,其卡方值的计算公式如下:

其中,A是实际频数,E是期望频数。那么这应该怎么算呢?可以参考一下下面的例子:
a2f504e854ea476f248fbe5f247d03a8.png

套入上面的公式,算得卡方值为1.26:

这个卡方值我们可以通过查找卡方表来确定是否拒绝原假设,这里的原假设是假设两个数据集D1和D2没有区别,也就是不需要拆分,可以合并

import pandas as pd
import numpy as np
from scipy.stats import chi2
p = [0.995, 0.990, 0.975, 0.950, 0.900, 0.100, 0.050, 0.025, 0.010, 0.005]
df = pd.DataFrame(np.array([chi2.isf(p, df=i) for i in range(1,10)]), columns=p, index=list(range(1,10)))
df
daf22be321b7e879b1d5fffa89a947da.png

要想读懂上表,我们需要知道自由度n(纵轴)以及显著性水平p(横轴),其中:
自由度n = (行数-1)* (列数-1),上面例子中n = (2-1)* (2-1) = 1,所以我们只需要看表中第一行,而我们算出来的卡方值是1.26,也就是显著性水平p介于0.1~0.9之间,p大于0.05,我们就认为原假设成立! 也就是说两个数据集可以合并!总的来说,就是算出来的卡方值越小,就越证明这两个数据集是同一类,可以合并
因此,卡方最优分箱的理论基础就在这儿,卡方分箱算法原名叫ChiMerge算法,分成2阶段:初始化阶段和自底向上合并阶段,主要实现步骤如下:
1,给定连续变量 V,对V中的值进行排序,然后每个元素值单独一组,完成初始化阶段;
2,对相邻的组,两两计算卡方值;
3,合并卡方值最小的两组;
4,递归迭代步骤2-3,直到满足停止条件。(一般是卡方值都高于设定的阈值,或者达到最大分组数等等)

基于最优KS的连续变量最优分箱

KS相信大家也都不陌生,可以稍微回顾下《风控建模的KS》 ,不过这里的KS值不是基于模型计算的,而是基于变量计算的,不过,计算逻辑和原理都是相通的。

好样本累计占比坏样本累计占比

302a3a017e609df1df2fcb574231e653.png所以,我们的最优KS分箱方法实现步骤如下:
1,给定连续变量 V,对V中的值进行排序;
2,每一个元素值就是一个计算点,对应上图中的bin0~9;
3,计算出KS最大的那个元素,作为最优划分点,将变量划分成两部分D1和D2;
4,递归迭代步骤3,计算由步骤3中产生的数据集D1 D2的划分点,直到满足停止条件。(一般是分箱数量达到某个阈值,或者是KS值小于某个阈值)
我们需要知道,分箱后的连续变量,其KS值肯定是比原来的要小的,所以我们要设置好停止条件,不然分箱后的变量效果不太好了。

03 如何评估分箱效果的好坏

这个比较简单,就是看变量的IV值,具体可以参考之前的一篇文章。《风控建模的WOE与IV》

24287c2a54e48b6a55544bd737abf325.png

04 设计一个基于风控建模的自动分箱轮子

一般来说,如果要造一个基于风控建模的连续变量分箱框架,需要考虑什么内容呢?我觉得应该有下面几点是需要关注的:
1,最小的分组数量
2,badrate比例控制
3,缺失值的处理逻辑
4,分箱后IV值计算与判断(不能低于0.02)
5,分箱的数量不能太多,以免太过于稀疏。
基于上面的考虑,我将会在未来设计一个连续变量自动分箱的“轮子”,到时候把源码也放出来,欢迎大家来补充。

Reference

https://blog.csdn.net/xgxyxs/article/details/90413036
https://zhuanlan.zhihu.com/p/44943177
https://blog.csdn.net/hxcaifly/article/details/84593770
https://blog.csdn.net/haoxun12/article/details/105301414/
https://www.bilibili.com/read/cv12971807

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32926.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

风控分析常用指标介绍

在信贷风控中,指标时反应业务变化最直观的手段,通过对指标的分析及时发现和定位业务开展过程中的问题,并及时采取相应的手段进行防控。本文列出工作中常关注的风险指标,介绍指标的定义及分析的方法,旨在精而不在全&…

全面了解风控策略体系

模型和策略的开发是一个系统工程,这其中需要有业务经验、统计理论、算法运用、和数据认知,是一个不断反思,不断积累经验的过程。沙滩上建不起摩天大楼。扎扎实实的基本功永远有价值,永远不会过时。 ——余旭鑫博士 说明 互联网…

金融风控实战——有监督分箱

卡方分箱 分箱的方法有很多,卡方分箱属于其中一种,属于有监督系列的。卡方分箱正是一种基于卡方检验的分箱方法,更具地说是基于上面提到的第二种应用,独立性检验,来实现核心分箱功能的。   卡方分箱算法简单来说&…

风控策略简介

【作者】:Labryant 【原创公众号】:风控猎人 【简介】:某创业公司策略分析师,积极上进,努力提升。乾坤未定,你我都是黑马。 【转载出处】:https://blog.csdn.net/lc434699300/article/details/1…

风控模型及特征的上线部署方法

序言: 作为年后的首篇实操干货文章,番茄风控一如既往向业内小伙伴输出相关的干货文章。有实操能落地,有数据可撸码,继续将会是番茄风控提供给各位小伙伴的业内标配内容。 近期,我们花费了时间容整理了目前业内各位小伙…

金融风控实战——社交网络分析

社交网络分析 上节课有同学希望能讲一些设备指纹的内容,所以这节课我们先讲一下设备指纹,作为反欺诈图谱的基础。 设备指纹 可以把手机设备理解成一个人,像人一样有身份证号和名字(设备序列号等),没有化…

风控数据测试概要

数据测试简介 简而言之,数据测试就是对数据的质量进行测试,查看该质量能不能被我方接受。在风控中,数据测试的主要目的是测试对方数据源是否可以较好地区分出我方申请用户的好坏,衡量质量的指标主要包括:Lift-Chart、A…

三分钟看懂大数据风控中用户行为数据的采集、分析及应用( 转 )

据统计,目前银行传统的风控模型对市场上70%的客户是有效的, 但是对另外30%的用户,其风控模型有效性将大打折扣。 大数据风控作为传统风控方式补充,主要利用行为数据来实施风险控制, 用户行为数据可以作为另外的30%客…

CAR-T药物|疗法适应症|市场销售-上市药品前景分析

对患有癌症的人来说,能够幸运地度过5年大关是一种成功,而能够成功地度过10年大关则是一种奇迹。Emily作为全球第一个接受CAR-T治疗成功的白血病儿童患者,至今已成功摆脱癌症11年之久。 ①CAR-T细胞治疗(Emily Whitehead治疗案例时…

股票数据分析查询接口,股票数据接口,沪深港股,股票api查询

一、接口介绍 查询历史数据的分析统计。本接口数据仅用于学习分析,不得用于对外展示!根据股票代码、日期获取股票历史数据及相关分析,返回日期、开盘价、收盘价、最高价、最低价、成交量、成交额、换手率、涨跌幅等,可绘制相应日…

微信AI助手

首先,感谢GitHub上的开源大佬!对微信AI助手项目我修改了少许部分,以实现在自己服务器上部署。这里是我的项目地址。 1、准备服务器 1.1 服务器密码及安全组规则修改 这里我是用的是腾讯云国内服务器,有条件的同学可以直接选择国…

Andrew Ng和OpenAI教你写prompt

课程地址: https://learn.deeplearning.ai/chatgpt-prompt-engb站搬运: https://www.bilibili.com/video/BV1No4y1t7Zn 教学人员:Lsa Fulford, Andrew NG LLM的两种样式 Base LLM:基于文本训练数据预测下一个词的概率&#xff0…

Android之输入银行卡号判断属于哪个银行

一&#xff1a;效果图&#xff1a; 二&#xff1a;实现步骤&#xff1a; 1.xml布局实现&#xff0c;两个edittext就行了 <LinearLayoutandroid:id"id/lin_yhkh"android:layout_width"fill_parent"android:layout_height"48dp"android:layou…

[项目管理-6]:软硬件项目管理 - 项目沟通管理(渠道、方法)

作者主页(文火冰糖的硅基工坊)&#xff1a;文火冰糖&#xff08;王文兵&#xff09;的博客_文火冰糖的硅基工坊_CSDN博客 本文网址&#xff1a;[项目管理-6]&#xff1a;软硬件项目管理 - 项目沟通管理 &#xff08;沟通渠道&#xff09;_文火冰糖的硅基工坊的博客-CSDN博客 目…

一键定制个性化语音,微软的AI语音落地实践

近日&#xff0c;微软与周迅AI语音红丹丹公益项目发起人鹿音苑文化传播公司、以及来自微软及各界的150名余志愿者&#xff0c;将创作的首批人工智能有声内容&#xff0c;包括鲁迅、老舍、萧红、朱自清等作家的一系列经典作品、红丹丹文化期刊&#xff0c;正式捐赠给北京市红丹丹…

Python 深度学习AI - 声音克隆、声音模仿、模拟特朗普声音唱《See You Again》,Real-Time-Voice-Cloning项目的安装与使用

Python 深度学习AI - 声音克隆、声音模拟 第一章&#xff1a;环境准备与安装① Real-Time-Voice-Cloning 项目源码下载② requirments 必要库安装③ TensorFlow 安装④ PyTorch 安装⑤ FFmpeg 下载环境变量配置⑥ 下载训练包第二章&#xff1a;效果测试① 命令行合成音频测试&a…

微软小冰的服务器在哪,微软小冰解锁三大小米入口

原标题&#xff1a;微软小冰解锁三大小米入口 微软小冰与小米小爱加深合作&#xff0c;解锁更多小米入口。具体内容请关注今天的小熊微科技【每日必读】栏目。 微软小冰解锁三大小米入口 好闺蜜&#xff0c;就是要形影不离。9月4日&#xff0c;微软小冰宣布解锁更多小米入口&am…

关于微软小冰

今天在微博上看到微软小冰的一篇博文&#xff0c;原文如下&#xff1a; 小冰是什么&#xff1f;参见百科&#xff1a; 微软Bing搜索中国团队2014年5月29日发布一款智能聊天机器人&#xff0c;并取名“微软小冰”。添加这个机器人的微信账号为好友之后&#xff0c;便可以与这个…

【小沐学NLP】Python实现聊天机器人(ALICE)

&#x1f37a;NLP开发系列相关文章编写如下&#x1f37a;&#xff1a;1&#x1f388;【小沐学NLP】Python实现词云图&#x1f388;2&#x1f388;【小沐学NLP】Python实现图片文字识别&#x1f388;3&#x1f388;【小沐学NLP】Python实现中文、英文分词&#x1f388;4&#x1…

微软小冰 | 接入微信公众号平台初体验

文章目录 智能回复&#xff08;聊天&#xff09;基础设置行业知识自主学习智能知识库需求识别引擎什么是需求识别引擎智能知识库与需求识别引擎区别 技能插件语音翻译功能介绍体验 拍照翻译功能介绍体验 测关系功能介绍体验 拼颜值功能介绍体验 人工客服推荐阅读 微软小冰人工智…