2、有记录都属于同一个类yt,则t是叶子节点。(2)如果Dt中包含属于多个类的记录,则选择一个属性测试条件,将记录划分成较小的子集。对于测试条件的每一个输出创建一个子女结点,并根据测试结果将Dt中的记录分布到子女结点中。然后,对于每个子女结点,递归调用该算法。一递归划分自变量空间tid有房者婚姻状况年收入拖欠贷款者12345678910是否否是否否是否否否单身已婚单身已婚离异已婚离异单身已婚单身125K100K70K120K95K60K220K85K75K90K否否否否是否否是否是训练集
3、如何以递归方式建立决策树?决策树如何划分训练记录?如何表示属性测试条件?如何确定最佳划分?如何构建测试条件效果最好的树?如何确定最佳划分贪婪法:根据子女结点类分布的一致性程度来选择最佳划分度量结点的不纯度Gini熵误分类误差对于一个给定的结点t:是结点t中类j的相对频率最大值:(1-1/nc),记录在所有类中等分布最小值:0,所有记录属于同一个类不纯度度量GINI如何划分训练记录根据属性类型的不同:标称属性序数属性连续属性根据分割的数量二元划分多元化分如何表示测试条件选择最佳分割点数值型变量对记录的值从小到大排序,计算每个值作为临界点产生的子节点的异质性统计量。能
4、够使异质性减小程度最大的临界值便是最佳的划分点。分类型变量列出划分为两个子集的所有可能组合,计算每种组合下生成子节点的异质性。同样,找到使异质性减小程度最大的组合作为最佳划分点。有房无房否34是03Gini(t1)=1-(3/3)-(0/3)=0Gini(t2)=1-(4/7)-(3/7)=0.4849Gini=0.30+0.70.4898=0.343单身已婚离异否241是201单身或已婚离异否61是21单身或离异已婚否34是30离异或已婚单身否52是12Gini(t1)=1-(2/4)-(2/4)=0.5Gini(t2)=1-(0/4)-(4/4)=0Gini(t3)=1-
5、(1/2)-(1/2)=0.5Gini=4/100.5+4/100+2/100.5=0.3Gini(t1)=1-(6/8)-(2/8)=0.375Gini(t2)=1-(1/2)-(1/2)=0.5Gini=8/100.375+2/100.5=0.4Gini(t1)=1-(3/6)-(3/6)=0.5Gini(t2)=1-(4/4)-(0/4)=0Gini=6/100.5+4/100=0.3Gini(t1)=1-(5/6)-(1/6)=0.2778Gini(t2)=1-(2/4)-(2/4)=0.5Gini=6/100.2778+4/100.5=0.3667607075859095100120
6、12522055657280879297110122172230030303031221303030303007162534343434435261700.4200.4000.3750.3430.4170.4000.3000.3430.3750.4000.420是否Gini测试条件效果为确定测试条件划分,比较父节点(划分前)的不纯度和子女结点的不纯度,差越大测试效果就越好不变值决策树停止生长条件节点达到完全纯度树的深度达到用户所要的深度异质性指标下降的最大幅度小于用户指定的幅度节点中样本个数少于用户指定个数决策树(Hunt算法)拖欠贷款者=否拖欠贷款者=是拖欠贷款者=否拖欠贷款者=否拖欠贷款者=是有房者婚姻状况拖欠贷款者=否拖欠贷款者=否有房者年收入是是否否单身离异已婚80K80K拖欠贷款者=是拖欠贷款者=否拖欠贷款者=否有房者婚姻状况是否单身离异已婚剪枝前剪枝:停止生长策略后剪枝:在允许决策树得到最充分生长的基础上,再根据一定的规则,自下而上逐层进行剪枝。当分类回归树划分得太细时,会对噪声数据产生过拟合作用。因此我们要通过剪枝来解决剪枝方法231最小误差剪枝代