决策树进阶

本文深入探讨了决策树的三种算法:ID3、C4.5和CART,对比了它们的信息增益和纯度度量。接着讨论了决策树的剪枝策略,包括预剪枝和后剪枝,以及它们对过拟合的影响。同时,文章还介绍了如何处理连续值和缺失值,并提供了ID3算法的Python实现示例,通过编辑和运行代码可以生成可视化决策树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、决策树基础回顾
决策树有三种算法:ID3,C4.5以及CART。ID3用的是信息增益准则,偏好于可取值数目较多的属性。C4.5介于信息增益准则和增益率准则之间,先从候选划分属性中找出信息增益高于平均水平的属性,然后从这些属性中选择增益率最大的,这样在选择结点时受属性的取值数目影响较小。CART算法则是和ID3算法异曲同工,只是衡量数据集的纯度所用的方法不一样,CART用基尼值来度量数据集的纯度。
二、决策树的剪枝处理
剪枝是决策树学习算法对付“过拟合”的主要手段。决策树的剪枝的基本策略有“预剪枝”和“后剪枝。

预剪枝是自上而下,先找出最优属性,若当前节点的划分不能使决策树的泛化性能得到提升,则停止划分。用“验证集”的数据衡量泛化性能,若验证集在该节点划分前的精度(准确率)大于该节点划分后的精度(准确率)则进剪掉该节点。有些分支当前的划分不能提升泛化性能,但是在后续的划分中却有可能使泛化性能提升,因此预剪枝有欠拟合的风险。

后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上比较结点划分前后验证集的精度,若该节点替换为叶节点后泛化能力提升,则剪枝。后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情形下,欠拟合风险很小,但训练时间开销要比预剪枝大很多。

三、连续值与缺失值的处理
1、连续值
(1)把连续属性离散化,然后再用决策树的算法。
2、缺失值的处理
某些样本在某些属性上有缺失值,根据某一划分属性计算信息增益时先把该属性上有缺失值的样本拿出来,获得信息增益最大的属性为结点,然后根据属性各取值的概率,即为有缺失值样本的权重进入该节点的各分支中。

四、决策树ID3算法Python代码的实现
代码和数据均选自《Python数据分析与挖掘实战》决策树那节
链接:数据和代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值