新闻中心

python实现连续变量最优分箱--CART算法

作者:澳门赌场  来源:澳门真人正规官网  时间:2020-08-21 10:10  点击:

  s7706422: 请问IV最大化分箱原理是什么,能简单解释下吗?谢谢~~

  fengdu1127: 首先感谢你的代码,但也发现了个问题: 计算卡方值时,理论应该是计算相邻2个类别之间的卡方值,然后对卡方值较小的进行合并。 你这里只是计算单一分类的卡方值

  CART是二叉树,每次仅进行二元分类,对于连续性变量,方法是依次计算相邻两元素值的中位数,将数据集一分为二,计算该点作为切割点时的基尼值较分割前的基尼值下降程度,每次切分时,选择基尼下降程度最大的点为最优切分点,再将切分后的数据集按同样原则切分,直至终止条件为止。

  关于CART分类的终止条件:视实际情况而定,我的案例设置为 a.每个叶子节点的样本量=总样本量的5%   b.内部节点再划分所需的最小样本数=总样本量的10%

  min_sample 参数为最小叶子节点的样本阈值,如果小于该阈值则不进行切分,如前面所述设置为整体样本量的5%

  返回的结果我这里只返回了最优分割点,如果需要返回其他的比如GINI值,可以自行添加。

  split_list 参数是用来保存返回的切分点,每次切分后返回的切分点存入该list

  在这里判断切分点分割的左子树和右子树是否满足“内部节点再划分所需的最小样本数=总样本量的10%”的条件,如果满足则进行递归调用。

  可以使用sklearn库的决策树测试一下单变量分类对结果进行验证,在分类方法相同,剪枝条件一致的情况下结果是一致的。

  在上一篇文章中,我们已经构建了决策树,接下来可以使用它用于实际的数据分类。在执行数据分类时,需要决策时以及标签向量。程序比较测试数据和决策树上的数值,递归执行直到进入叶子节点。这篇文章主要使用决策树分类器就行分类,数据集采用UCI数据库中的红酒,白酒数据,主要特征包括12个,主要有非挥发性酸,挥发性酸度, 柠檬酸, 残糖含量,氯化物, 游离二氧化硫, 总二氧化硫,密度, p...

  对于CART分类树连续值的处理问题,其思想和C4.5是相同的,都是将连续的特征离散化。唯一的区别在于在选择划分点时的度量方式不同,C4.5使用的是信息增益,则CART分类树使用的是基尼系数。具体的思路如下,比如m个样本的连续特征A有m个,从小到大排列为a1,a2,…,ama1,a2,…,am,则CART

  取相邻两样本值的中位数,一共取得m-1个划分点,其中第i个划分点Ti表示Ti表示为:......

  。如下代码,获取值A2_values ,并等数值区间分为6类为[0,1,2,3,4,5];(cut在操作时,统计了一维数组的最小、最大值,得到一个区间长度,因为需要划分6个区间)1.2 等频

  利用pandas/sklearn处理类别型特征;手动分段与离散化处理连续型特征

  图书管理系统(Java + Mysql)我的第一个完全自己做的实训项目

澳门赌场

上一篇:家乐福网上商城襄阳站上线元注册礼包等你拿

下一篇:求助关于数据分箱的问题databinning