[转]卡方分箱中卡方值的计算

      <div class="show-content-free">
        <p>关于卡方分箱,网上有很多文章,但几乎没有文章介绍分箱时相邻区间卡方值计算的方法,而本文在介绍卡方分箱的同时,重点介绍了相邻区间卡方值的计算方法。通过本文,希望大家能对卡方分箱有清楚透彻的认识。</p>

分箱是什么

分箱是将连续的变量离散化,将多状态的离散变量合并成少状态。这里要注意的是,不仅仅是连续变量要分箱,状态多的离散变量也需要分箱,之前接触过公司内特征工程的项目,里边就将超过50个值的离散特征视为连续特征。

基本思想

对于精确的离散化,相对类频率在一个区间内应当完全一致。因此,如果两个相邻的区间具有非常类似的类分布,则这两个区间可以合并;否则,它们应当保持分开。而低卡方值表明它们具有相似的类分布

卡方值的计算方法

对于下面的例子,相邻两个特征值的卡方值的计算方法是这样的:

feature y0 y1
x1 a b
x2 c d
... ... ...
xn ... ...

x1和x2的卡方值计算公式为:

卡方值计算公式

为什么低卡方值就表示x1和x2具有相似的类分布呢?可以这样想,当x1和x2具有相似的类分布的时候,卡方值是怎么样的。卡方值的一般计算公式是这样的:

卡方值的一般公式

其中,A为观测的值,T为理论的值。观测值就是表中样本的数据,那么理论值是什么?其实就是忽略x1和x2的影响计算出来的值,把x1和x2合并起来看待,总体看样本为y0的概率是 p =(a+c)/(a+b+c+d),那么特征为x1且类别为y0的理论值就是(a+b)*p。可以看出,如果x1和x2具有相似的类分布,那么它们对应类别的数量是逼近这个理论值的,而卡方值的计算公式的意义是衡量观测值与理论值的距离,如果卡方值小,说明观测值和理论值差距很小,也就说明特征无论取x1或x2,类别的分布是相似的。

卡方分箱

卡方分箱是基于卡方检验的,将具有最小卡方值的相邻区间合并在一起,直到满足确定的停止条件。卡方分箱是自底向上的数据离散化方法。

卡方分箱的实现步骤:

  1. 预先设定一个卡方阈值
  2. 根据要离散的属性对实例进行排序,每个实例属于一个区间
  3. 合并区间

    a. 计算每一对相邻区间的卡方值

    b. 将卡方值最小的一对区间合并

  4. 判断是否满足停止条件,不满足则继续进行步骤3,反之停止。

这里的停止条件有两个:

  1. 分箱的个数达到限制条件
  2. 最小的相邻分箱的卡方值大于阈值

总结

本文介绍了什么是分箱以及卡方分箱的算法,并着重介绍了卡方分箱中相邻区间卡方值的计算方法。

以下是参考资料:

统计检验之——卡方检验(Chi-Square Tests): https://education.ti.com/sites/CHINA/downloads/pdf/chi_square_tests_xudeqian.pdf

    </div>

原文链接:https://www.jianshu.com/p/69228db7c5d7

原文地址:https://www.cnblogs.com/likedata/p/11401154.html

时间: 2024-10-15 05:52:36

[转]卡方分箱中卡方值的计算的相关文章

基于卡方分箱的评分卡建模

卡方分布-chi-square distribution, χ2-distribution: 若k个独立的随机变量Z1, Z2,..., Zk 满足标准正态分布 N(0,1) , 则这k个随机变量的平方和: 为服从自由度为k的卡方分布,记作:  或者  卡方检验-χ2检验是以χ2分布为基础的一种假设检验方法,主要用于分类变量之间的独立性检验: 基本思想是根据样本数据推断总体分布与期望分布是否有显著性差异,或者推断两个分类变量是否相关或者独立.一般可以设原假设为 :观察频数与期望频数没有差异,或者

一分快3和值怎么计算快3走势有什么规律29561417

[叶晟威筘:29561417]曾经的我也有一段故事,2010年就有了自己的公司,过了两年,开始沾染网堵恶习.开始是玩球,后来在2012年开始接触到网堵,也就是网上的白家了,之后一发而不可收.粗略估计书了快30个.妻子在14年和我离了婚,我一个人带着一个8岁的儿子.想想这几年的堵博生涯,真的就是一场悲剧.中间无数次的想到戒堵,但是都没有成功.每一次输完,总觉得自己是可以有机会重新来过.期望把输的瀛回来,就收手.但是结果却永远都是只有一个,就是越陷越深.还欠了有20个的债务,包括卡袋,朋友的借款.曾

订单分箱问题

订单分箱需求,我把它简化为如下模型: 一张表实现,实现分箱的效果,总结一下做个小demo. package com.kaspar.order.model; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import

pandas逐行操作、分箱技术、窗口函数

cummax,cummin,cumprod,cumsum 有时候我们需要求出从第一行开始截止到当前行的最大值.最小值,以及实现累乘.累和等等. import pandas as pd df = pd.DataFrame({"a": [10, 20, 15, 50, 40]}) # cummax:求出从第一行开始截止到当前行的最大值 # 第1行为10,第2行为20,第3行为15但是比20小所以还是20,第4行为50,同理第5行也是50 print(df["a"].cu

数据离散化-分箱

  变量的延申和筛选-连续变量离散化-特征筛选 WOE编码(最优分箱) WOE一般在0.1~3之间波动,IV值做得特征筛选的操作 一般保留>0.03的特征 IV值体现的时X和Y之间的显著性进行筛选 1.逐列分箱并获得IV值 # 运行自定义函数所在文件 对自定义分箱文件要自己理解 %run smob.py # y进行0,1互换 train_data['SeriousDlqin2yrs'] = -(train_data.SeriousDlqin2yrs-1) #因为与自定义函数中的标签0 1设定正好

BERT模型在多类别文本分类时的precision, recall, f1值的计算

BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们定制的文本分类模型中(如text-CNN等).总之现在只要你的计算资源能满足,一般问题都可以用BERT来处理,此次针对公司的一个实际项目--一个多类别(61类)的文本分类问题,其就取得了很好的结果. 我们此次的任务是一个数据分布极度不平衡的多类别文本分类(有的类别下只有几个或者十几个样本,有的类别下

matlab(8) Regularized logistic regression : 不同的λ(0,1,10,100)值对regularization的影响,对应不同的decision boundary\ 预测新的值和计算模型的精度predict.m

不同的λ(0,1,10,100)值对regularization的影响\ 预测新的值和计算模型的精度 %% ============= Part 2: Regularization and Accuracies =============% Optional Exercise:% In this part, you will get to try different values of lambda and % see how regularization affects the decisio

信息的存储与值的计算

信息的存储与值的计算 前言 我们很难想象出来,计算机只能识别0和1这样再简单不过的数字,却给人们带来了巨大的变化.对于无法与人脑相比的计算机来所,简单的1和0就是适合他们的数字.不过呢,一个1或者1个0往往代表不了什么意义,,他们必须被赋予上下文,才能有具体的含义.比如,如果我们知道1和0代表的布尔类型的值,那么我们就知道1是true,0是false. 对于二进制所表示的数字来说,主要有三种,即无符号,补码以及浮点数. 由于计算机对于固定类型的二进制数字往往都是有位数限制的,比如int类型使用四

根据umask值,计算文件权限

老男孩linux运维实战培训 老男孩教育教学核心思想6重:重目标.重思路.重方法.重实践.重习惯.重总结 学无止境,老男孩教育成就你人生的起点! 相信自己相信老男孩!!! 版权声明: 本方法遵循oldboy衍生而来,务必尊重作者!!! http://oldboy.blog.51cto.com/2561410/1060032 本文作者为<老男孩linux运维实战培训>学生-张志强 本文的所有内容均来自老男孩培训命令总结,未经本人及老男孩培训许可,禁止私自转发及使用. QQ: 1344683865