yolov5论文叫什么_从论文分析,告诉你什么叫 “卡方分箱”?

8aa310843dc4bd0bcfc3b417f15a9c6c.png

前些日子,星球里讨论风控建模面试中的一些问题,其中就提到了 “卡方分箱”。大家对卡方分箱都有或多或少的疑问,应星球朋友要求,最近整理了一下我对卡方分箱的理解,也借此分享给公众号的朋友们。

什么是分箱?

说到分箱,可能很多朋友都非常熟悉,它是数据科学中常用到的一个技巧,意思就是将连续型的数据分成几个数据段,即离散化。很好理解,举个例子,比如将原本连续的年龄特征离散化,结果可变为0-18,18-30, 30-50,>50等4个范围的特征值,而非连续的无穷的特征值。简单理解,这个过程其实就是:连续 —>不连续

为什么要分箱?

分箱的好处还是很多的,尤其是使用逻辑回归的评分卡建模中,分箱woe也是一种标配。总的来说,分箱有这么几个用处:

  • 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;

  • 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;

  • 单变量离散化后,每个变量有单独的权重,可以为逻辑回归模型引入了非线性,能够提升模型表达能力,加大拟合;

  • 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

  • 可以将缺失作为独立的一类带入模型。

什么是卡方检验?

卡方检验是统计学中经常用到的一种假设检验。用我的理解总结起来,卡方检验就是对分类数据的频数进行分析的一种方法,它的应用主要表现在两个方面:拟合优度检验和独立性检验(列联分析)。

拟合优度

拟合优度是对一个分类变量的检验,即根据总体分布状况,计算出分类变量中各类别的期望频数,与分布的观察频数进行对比,判断期望频数与观察频数是否有显著差异,从而达到对分类变量进行分析的目的。比如,泰坦尼克号中我们观察幸存者是否与性别有关,可以理解为一个X是否与Y有必然联系。

独立性检验

独立性检验是两个特征变量之间的计算,它可以用来分析两个分类变量是否独立,或者是否有关联。比如某原料质量和产地是否依赖关系,可以理解为一个X与另一个X是否独立。

卡方检验步骤

卡方检验的步骤其实就是一般假设检验的过程。下面列出独立性检验的大致步骤,如下:

  • 提出假设,比如假设两个变量之间独立

  • 根据分类的观察频数计算期望频数

  • 根据卡方公式,计算实际频数与期望频数的卡方值

  • 根据自由度和事先确定的显著性水平,查找卡方分布表计算卡法值,并与上一步卡方值比较

  • 得出结果判断是否拒绝原假设

什么是卡方分箱?

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

网上关于卡方分箱的理解也有一些,但是我们直接从算法提出者的论文来理解一下。下面这部分截取是算法的核心部分。

b09132365c700be091911222f1142b85.png

卡方分箱算法简单来说,有两个部分组成:1)初始化步骤;2)合并。

初始化步骤

  • 根据连续变量值大小进行排序

  • 构建最初的离散化,即把每一个单独的值视为一个箱体。这样做的目的就是想从每个单独的个体开始逐渐合并。

合并

上面已经将初始化的内容构建完毕,这一步就是不断地合并了,自底向上的合并,直到满足停止条件。那么它是如何合并的呢?

论文中提到的具体操作是这样的:

  • 计算所有相邻分箱的卡方值:也就是说如果有1,2,3,4个分箱,那么就需要绑定相邻的两个分箱,共三组:12,23,34。然后分别计算三个绑定组的卡方值。

  • 从计算的卡方值中找出最小的一个,并把这两个分箱合并:比如,23是卡方值最小的一个,那么就将2和3合并,本轮计算中分箱就变为了1,23,4。

背后的基本思想是:如果两个相邻的区间具有非常类似的类分布,那么这两个区间可以合并。否则,它们应该分开。低卡方值表明它们具有相似的类分布。

停止条件

上面的步骤只是每一轮需要计算的内容,如果我们不设置停止条件,算法就会一直运行。当然,我们一般会设置一些停止条件:

  • 卡方停止的阈值

  • 分箱数目的限制

意思就是说,只要当所有分箱对的卡方值都大于阈值,并且分箱数目小于最大分箱数时,计算就会继续,直到不满足。这两个值根据我们的经验来定义,作为函数参数设置,一般推荐使用0.9,0.95,0.99的置信度,分箱数一般可以设置为5。

卡方分箱公式理解

有的朋友问我了,说上面内容可以理解,但是公式看不懂。公式是什么样的呢?根据论文中可以看到,它长这个样的:

aec39d84d3b6f80988e41d5d4182b1ec.png

  • m=2:表示相邻的两个分箱数目

  • k:表示目标变量的类别数,比如目标是网贷违约的好和坏,那么k=2。k也可以是多类,大于2。

  • Aij:实际频数,即第i个分箱的j类频数

  • Eij:期望频数

其中,期望频数的公式如下,可根据P(AB)=P(A)P(B)推导出来:

142cfe94bdb2140d7898f3d34e58747e.png

  • Ri&Cj:分别是实际频数整列和整行的加和

举个例子说明一下这个公式是如何用的,对于相邻两个分箱的卡方值计算:

8c9f52549426f5be7fc4ba8964598186.png

实际频数和期望频数都有了,带入卡方公式求解,过程如下:

4e72e4c48297d480225079cac786b4bd.png

如果计算结果是所有卡方值中最小的,说明:这组中两个分箱具有最相似的类分布,因此把它们合并。

以上就是结合论文对卡方分箱原理的一个解读。对于卡方分箱的实现有一些特殊情况需要注意,比如初始分箱中每个分箱中的数量,以及是否有全是同一类别的分箱出现等等。不过,如果掌握了上面的核心原理和计算部分,这些特殊情况都可迎刃而解。

7a36a7266bf52626be9bdfa5e4acbecf.png

专注于数据科学领域的知识分享

欢迎在文章下方留言与交流

Python数据科学【读者福利】

【知识星球】:Python数据科学学习社区

推荐阅读 

嫌pandas慢又不想改代码怎么办?来试试Modin

数据分析这碗饭,该怎么吃?

如何在一场面试中展现你对Python的coding能力?

《都挺好》弹幕比剧还精彩?394452条弹幕数据来告诉你答案

重磅!Python官方中文文档正式发布

1700页数学笔记火了!全程敲代码,速度飞快易搜索,硬核小哥教你上手LaTeX+Vim

75fcd3d161bb7aa85be496a03da06fbb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值