id3决策树 鸢尾花 python_C4.5决策树Python代码实现

C4.5决策树Python代码实现

    我们知道C4.5决策树与ID3决策树最主要的区别就是C4.5使用信息增益率来划分最优属性。因为使用信息增益来划分属性的话会存在以下这些缺点:对可取属性多的特征有偏好,比如如果把“编号”这一列当作特征也考虑在内,那么可以计算处它的信息增益大于其他的候选特征,因为“编号”有17个可取的数值,产生17个分支,每个分支节点仅包含一个样本,显然这些分支节点的纯度最大。但是,这样的决策树显然不具有泛化能力,无法对新样本进行有效预测。

而使用C4.5决策树算法:使用“信息增益率”来选择最优划分属性,可以很好的克服上述缺点。

所以C4.5代码和ID3代码的主要区别就是划分最有属性这一段。C4.5的划分做法是从候选划分特征中找出信息增益高于平均水平的特征,分别除以比率IVAL,然后再从中选择增益率最高的。IVAL公式如下:

ce54c71c15a0695f5db503f3368a5738.png

Dv是对应特征下的属性样例个数,D是所有样例个数。

6c7ae4096e64da659bcc6b0bd8587f07.png

上述代码表达的意思就是从所有信息增益中选出大于平均值的信息增益,计算他的信息增益率,从而求出最高的信息增益率。

C4.5选取最优划分属性的代码如下,先计算信息增益,再计算最优信息增益率:

8bcc31dc4e4d2f94aa1e2317a41ab336.png

其余代码在ID3已经详细讲解过,在这里不再赘述。代码如下所示:

1a46daa17e39d9e59955d19cfef840d9.png c0dababd29a4c58bb7911372cfde5c60.png 8bcc31dc4e4d2f94aa1e2317a41ab336.png 0772044ccb6b91454a13d19a33a77b64.png d4d1fbef3d403fac59acdee58f87f1c8.png

下一期CART决策树讲完后,会将所有代码上传百度网盘。请大家持续关注,谢谢大家!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值