zoukankan      html  css  js  c++  java
  • [转]卡方分箱中卡方值的计算

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

    分箱是什么

    分箱是将连续的变量离散化,将多状态的离散变量合并成少状态。这里要注意的是,不仅仅是连续变量要分箱,状态多的离散变量也需要分箱,之前接触过公司内特征工程的项目,里边就将超过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>
        </div>
    

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

  • 相关阅读:
    leetcode Convert Sorted List to Binary Search Tree
    leetcode Convert Sorted Array to Binary Search Tree
    leetcode Binary Tree Level Order Traversal II
    leetcode Construct Binary Tree from Preorder and Inorder Traversal
    leetcode[105] Construct Binary Tree from Inorder and Postorder Traversal
    证明中序遍历O(n)
    leetcode Maximum Depth of Binary Tree
    限制 button 在 3 秒内不可重复点击
    HTML 和 CSS 画三角形和画多边行基本原理及实践
    在线前端 JS 或 HTML 或 CSS 编写 Demo 处 JSbin 与 jsFiddle 比较
  • 原文地址:https://www.cnblogs.com/likedata/p/11401154.html
Copyright © 2011-2022 走看看