打字猴:1.700534624e+09
1700534624
1700534625 代价复杂剪枝主要包含以下两个步骤。
1700534626
1700534627 (1)从完整决策树T0开始,生成一个子树序列{T0,T1,T2,…,Tn},其中Ti+1由Ti生成,Tn为树的根结点。
1700534628
1700534629 (2)在子树序列中,根据真实误差选择最佳的决策树。
1700534630
1700534631 步骤(1)从T0开始,裁剪Ti中关于训练数据集合误差增加最小的分支以得到Ti+1。具体地,当一棵树T在结点t处剪枝时,它的误差增加可以用R(t)−R(Tt)表示,其中R(t)表示进行剪枝之后的该结点误差,R(Tt)表示未进行剪枝时子树Tt的误差。考虑到树的复杂性因素,我们用|L(Tt)|表示子树Tt的叶子结点个数,则树在结点t处剪枝后的误差增加率为
1700534632
1700534633
1700534634
1700534635
1700534636 (3.25)
1700534637
1700534638 在得到Ti后,我们每步选择α最小的结点进行相应剪枝。
1700534639
1700534640 用一个例子简单地介绍生成子树序列的方法。假设把场景中的问题进行一定扩展,女孩需要对80个人进行见或不见的分类。假设根据某种规则,已经得到了一棵CART决策树T0,如图3.15所示。
1700534641
1700534642 此时共5个内部结点可供考虑,其中
1700534643
1700534644
1700534645
1700534646
1700534647
1700534648
1700534649
1700534650
1700534651
1700534652
1700534653
1700534654
1700534655
1700534656
1700534657
1700534658
1700534659 可见α(t3)最小,因此对t3进行剪枝,得到新的子树T1,如图3.16所示。
1700534660
1700534661
1700534662
1700534663
1700534664 图3.15 初始决策树T0
1700534665
1700534666
1700534667
1700534668
1700534669 图3.16 对初始决策树T0的t3结点剪枝得到新的子树T1
1700534670
1700534671 而后继续计算所有结点对应的误差增加率,分别为α(t1)=3,α(t2)=3,α(t4)=4。因此对t1进行剪枝,得到T2,如图3.17所示。此时α(t0)=6.5,α(t2)=3,选择t2进行剪枝,得到T3。于是只剩下一个内部结点,即根结点,得到T4。
1700534672
1700534673 在步骤(2)中,我们需要从子树序列中选出真实误差最小的决策树。CCP给出了两种常用的方法:一种是基于独立剪枝数据集,该方法与REP类似,但由于其只能从子树序列{T0,T1,T2,…,Tn}中选择最佳决策树,而非像REP能在所有可能的子树中寻找最优解,因此性能上会有一定不足。另一种是基于k折交叉验证,将数据集分成k份,前k−1份用于生成决策树,最后一份用于选择最优的剪枝树。重复进行N次,再从这N个子树中选择最优的子树。
[ 上一页 ]  [ :1.700534624e+09 ]  [ 下一页 ]