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

卡方分箱

  分箱的方法有很多,卡方分箱属于其中一种,属于有监督系列的。卡方分箱正是一种基于卡方检验的分箱方法,更具地说是基于上面提到的第二种应用,独立性检验,来实现核心分箱功能的。
  卡方分箱算法简单来说,有两个部分组成:1)初始化步骤;2)合并。
小栗子:

  • 计算所有相邻分箱的卡方值:也就是说如果有1,2,3,4个分箱,那么就需要绑定相邻的两个分箱,共三组:12,23,34。然后分别计算三个绑定组的卡方值。
  • 从计算的卡方值中找出最小的一个,并把这两个分箱合并:比如,23是卡方值最小的一个,那么就将2和3合并,本轮计算中分箱就变为了1,23,4。

  背后的基本思想是:如果两个相邻的区间具有非常类似的类分布,那么这两个区间可以合并。否则,它们应该分开。低卡方值表明它们具有相似的类分布。(卡方值衡量推断值和观察值之间的偏离程度)
  停止条件:1)卡方停止的阈值 ,2)分箱数目的限制

卡方分箱公式理解:
χ 2 = ∑ i = 1 m ∑ j = 1 k ( A i j − E i j ) 2 E i j \chi^{2}=\sum_{i=1}^{m} \sum_{j=1}^{k} \frac{\left(A_{i j}-E_{i j}\right)^{2}}{E_{i j}} χ2=i=1mj=1kEij(AijEij)2

  • m=2:表示相邻的两个分箱数目
  • k:表示目标变量的类别数,比如目标是网贷违约的好和坏,那么k=2。k也可以是多类,大于2。
  • A i j A_{ij} Aij:实际频数,即第i个分箱的j类频数
  • E i j E_{ij} Eij:期望频数

其中,期望频数的公式如下,可根据P(AB)=P(A)P(B)推导出来: E i j = R i ∗ C j N E_{i j}=\frac{R_{i} * C_{j}}{N} Eij=NRiCj R i R_{i} Ri C j C_{j} Cj:分别是实际频数整列和整行的加和

举个例子说明一下这个公式是如何用的,对于相邻两个分箱的卡方值计算:
在这里插入图片描述
  实际频数和期望频数都有了,带入卡方公式求解,过程如下: χ 2 = ∑ i = 1 m ∑ j = 1 k ( A i j − E i j ) 2 E i j = [ ( A 11 − E 11 ) 2 E 11 + ( A 12 − E 12 ) 2 E 12 ] + [ ( A 21 − E 21 ) 2 E 21 + ( A 22 − E 22 ) 2 E 22 ] \begin{aligned} \chi^{2} &=\sum_{i=1}^{m} \sum_{j=1}^{k} \frac{\left(A_{i j}-E_{i j}\right)^{2}}{E_{i j}} \\ &=\left[\frac{\left(A_{11}-E_{11}\right)^{2}}{E_{11}}+\frac{\left(A_{12}-E_{12}\right)^{2}}{E_{12}}\right]+\left[\frac{\left(A_{21}-E_{21}\right)^{2}}{E_{21}}+\frac{\left(A_{22}-E_{22}\right)^{2}}{E_{22}}\right] \end{aligned} χ2=i=1mj=1kEij(AijEij)2=[E11(A11E11)2+E12(A12E12)2]+[E21(A21E21)2+E22(A22E22)2]
  如果计算结果是所有卡方值中最小的,说明:这组中两个分箱具有最相似的类分布,因此把它们合并。
在这里插入图片描述
  如果性别和化妆与否没有关系,四个格子应该是括号里的数(期望值,用极大似然估计55=100*110/200,其中110/200可理解为化妆的概率,乘以男人数100,得到男人化妆概率的似然估计),这和实际值(括号外的数)有差距,理论和实际的差距说明这不是随机的组合。

应用拟合度公式
∑ i = 1 k ( f i − n p i ) 2 n p i = ( 95 − 55 ) 2 55 + ( 15 − 55 ) 2 55 + ( 85 − 45 ) 2 45 + ( 5 − 45 ) 2 45 = 129.3 \sum_{i=1}^{k} \frac{\left(f_{i}-n p_{i}\right)^{2}}{n p_{i}}=\frac{(95-55)^{2}}{55}+\frac{(15-55)^{2}}{55}+\frac{(85-45)^{2}}{45}+\frac{(5-45)^{2}}{45}=129.3 i=1knpi(finpi)2=55(9555)2+55(1555)2+45(8545)2+45(545)2=129.3

决策树分箱

  决策树分箱的原理就是用想要离散化的变量单变量用树模型拟合目标变量,例如直接使用sklearn提供的决策树(是用cart决策树实现的),然后将内部节点的阈值作为分箱的切点。
  补充,cart决策树和ID3、C4.5决策树不同,cart决策树对于离散变量的处理其实和 连续变量一样,都是将特征的所有取值从小到大排序,然后取两两之间的均值,然后遍历所有这些均值,然后取gini系数最小的点作为阈值进行划分数据集。并且该特征后续还可参与划分。
  这里需要说明一下:cart的决策树是一颗二叉树,所以对于离散变量处理时会遍历所有值,然后取一个作为一类,剩下的作为另一类,这样建树的结果就是一颗二叉树;但在sklearn包并没有实现对离散属性的单独处理,所以我们传入的离散属性值也会被当成连续值去处理。“scikit-learn uses an optimised version of the CART algorithm; however, scikit-learn implementation does not support categorical variables for now.”

from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
x = np.array([0, 10, 180, 30, 55, 35, 25, 75, 80, 10]).reshape(-1, 1)
y = np.array([1, 1, 0, 1, 0, 0, 0, 1, 0, 0])boundary = []  # 待return的分箱边界值列表#x = x.fillna(-1).values  # 填充缺失值
#y = y.valuesclf = DecisionTreeClassifier(criterion='entropy',  # “信息熵”最小化准则划分max_leaf_nodes=6,  # 最大叶子节点数min_samples_leaf=0.05)  # 叶子节点样本数量最小占比clf.fit(x, y)  # 训练决策树
#DecisionTreeClassifier(criterion='entropy', max_leaf_nodes=6,
#                       min_samples_leaf=0.05)
plt.figure(figsize=(14,6))
tree.plot_tree(clf) #打印决策树的结构图
plt.show()

在这里插入图片描述

n_nodes = clf.tree_.node_count #决策树的节点数
n_nodes
#11
children_left = clf.tree_.children_left #node_count大小的数组,children_left[i]表示第i个节点的左子节点
children_right = clf.tree_.children_right #node_count大小的数组,children_right[i]表示第i个节点的右子节点
children_left
#array([ 1,  3, -1, -1,  5,  7, -1,  9, -1, -1, -1], dtype=int64)
children_right
#array([ 2,  4, -1, -1,  6,  8, -1, 10, -1, -1, -1], dtype=int64)
threshold = clf.tree_.threshold #node_count大小的数组,threshold[i]表示第i个节点划分数据集的阈值
threshold
#array([77.5,  5. , -2. , -2. , 65. , 32.5, -2. , 27.5, -2. , -2. , -2. ])
boundary1=[]
for i in range(n_nodes):if children_left[i] != children_right[i]:  # 非叶节点boundary1.append(threshold[i])boundary1.sort()
boundary1
#[5.0, 27.5, 32.5, 65.0, 77.5]
min_x = x.min()
max_x = x.max() + 0.1  # +0.1是为了考虑后续groupby操作时,能包含特征最大值的样本
boundary = [min_x] + boundary + [max_x]
boundary
#[0, 5.0, 27.5, 32.5, 65.0, 77.5, 180.1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32923.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;基础设置行业知识自主学习智能知识库需求识别引擎什么是需求识别引擎智能知识库与需求识别引擎区别 技能插件语音翻译功能介绍体验 拍照翻译功能介绍体验 测关系功能介绍体验 拼颜值功能介绍体验 人工客服推荐阅读 微软小冰人工智…

沈向洋回归,从微软独立的小冰要弯道超车了

文 | 静静 定西 出品 | 网易科技《态℃》栏目组 一条消息&#xff0c;让沈向洋在八个月后再次“刷屏”。 微软今日宣布&#xff0c;将人工智能小冰业务分拆为独立公司运营&#xff0c;并委任沈向洋为新公司董事长&#xff0c;李笛为首席执行官。 大佬明星产品&#xff0c;会带来…

基于ZelinAI的周报小助手

ZelinAI是一家领先的人工智能公司&#xff0c;专注于创新的AI解决方案。ZelinAI团队由科学家、工程师和领域专家组成&#xff0c;拥有丰富的经验和专业知识。提供自然语言处理、计算机视觉、数据分析和智能助理等领域的解决方案&#xff0c;帮助客户实现业务增长和效率提升。在…

微信小程序bindtap与catchtap的区别

1、什么是事件 (1) 事件是视图层到逻辑层的通讯方式。 (2) 事件可以将用户的行为反馈到逻辑层进行处理。 (3) 事件可以绑定在组件上&#xff0c;当达到触发事件&#xff0c;就会执行逻辑层中对应的事件处理函数。 (4) 事件对象可以携带额外信息&#xff0c;如 id,dataset,touch…