决策树中的CART树

1、cart树的介绍 :

    Classification and Regression Trees (CART): (L. Breiman, J. Friedman, R.Olshen, C. Stone)

    cart模型是一种决策树模型,它既可以用于分类,也可以用于回归,其学习可以分为两步:
          (1)决策树生成:用训练数据生成决策树,生成树尽可能大
          (2)决策树剪枝:基于损失函数最小化的剪枝,用验证数据对生成的数据 进行剪枝。
          分类和回归树模型采用不同的最优化策略 。Cart 回归树使用平方误差最小化策略,Cart 分类生成树采用的基尼指数最小化策略
          Scikit-learn 中有两类决策树,他们均采用优化的 Cart 决策树算法。一个是 DecisionTreeClassifier 分类一个是 DecisionTreeRegressor 回归。
        分类回归树(CART,Classification And Regression Tree)算法是一种决策树分类方法。它采用一种二分递归分割的技术,分割方法 采用基于最小距离的基尼指数估计函数,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此,CART 算法生成的决策树是结构简洁的二叉树。
        其核心思想与 ID3 和 C4.5 相同,主要的不同处在于 CART 在每一个节点上都采用二分法,即每个节点都只能有两个子节点, 最后构成的是二叉树
        划分方法:剪枝
    Cart 算法步骤
        1.决策树的生成:基于训练数据集生成决策树,生成的决策树要尽量大。
        2.决策树的剪枝:用验证数据集对以生成的树进行剪枝并选择最优子树。这时用损失函数最小作为剪枝标准

2、cart树的分类树的介绍 :

         分类树算法(Classification Tree) : 分类树是使用数结构算法将数据分成离散类的方法
        ( (1) ) 分类树两个关键点 
            将训练样本进行递归地划分自变量空间进行建树
            用验证数据进行剪枝
        ( (2) )对于离散变量 X (x1…xn) ) 处理:
        分别取 X 变量各值的不同组合,将其分到树的左枝或右枝,并对不同组合而产生的树,进行评判,找出最佳组合。如果只有两个取值,直接根据这两个值就可以划分树。取值多于两个的情况就复杂一些了,如变量年纪,其值有“少年”、“中年”、“老年”,则分别生产{少年,中年}和{老年},{上年、老年}和{中年},{中年,老年}和{少年},这三种组合,最后评判对目标区分最佳的组合。因为 CART二分的特性,当训练数据具有两个以上的类别,CART 需考虑将目标类别合并成两个超类别,这个过程称为 双化。这里可以说一个公式,n 个属性,可以分出(2^n-2)/2 种
情况。
        注意 : 考虑 在上面生成树的左右两个孩子的时候 , 按照什么划分比较好呢?一般的我们采用的是
GINI指数 , 作为我们划分的标准。总体包含的类别越复杂,GINI指数就越大(跟熵的概念很相似): 分类树用基尼指数选择最优特征,同时决定该特征的最优二值切分点。
    ( (3) )变量和最佳切分点的选择原则

        树的生长,总的原则是,让枝比树更纯,而度量原则是根据不纯对指标来衡量,对于分类树,则用 GINI 指标、Twoing 指标、Order Twoing 等;如果是回归树则用,最小平方残差、最小绝对残差等指标衡量。

3、利用GINI指数来进行求解划分:

    gini系数 :

    分类问题中,假设有 k 个类,样本点属于第 i 类的概率为 pi,则基尼指数定义为:
        

例 :

集合的gini指数

    
.................晚上再写

猜你喜欢

转载自blog.csdn.net/weixin_41928342/article/details/80082819
今日推荐