赞
踩
C4.5决策树Python代码实现
我们知道C4.5决策树与ID3决策树最主要的区别就是C4.5使用信息增益率来划分最优属性。因为使用信息增益来划分属性的话会存在以下这些缺点:对可取属性多的特征有偏好,比如如果把“编号”这一列当作特征也考虑在内,那么可以计算处它的信息增益大于其他的候选特征,因为“编号”有17个可取的数值,产生17个分支,每个分支节点仅包含一个样本,显然这些分支节点的纯度最大。但是,这样的决策树显然不具有泛化能力,无法对新样本进行有效预测。
而使用C4.5决策树算法:使用“信息增益率”来选择最优划分属性,可以很好的克服上述缺点。
所以C4.5代码和ID3代码的主要区别就是划分最有属性这一段。C4.5的划分做法是从候选划分特征中找出信息增益高于平均水平的特征,分别除以比率IVAL,然后再从中选择增益率最高的。IVAL公式如下:
Dv是对应特征下的属性样例个数,D是所有样例个数。
上述代码表达的意思就是从所有信息增益中选出大于平均值的信息增益,计算他的信息增益率,从而求出最高的信息增益率。
C4.5选取最优划分属性的代码如下,先计算信息增益,再计算最优信息增益率:
其余代码在ID3已经详细讲解过,在这里不再赘述。代码如下所示:
下一期CART决策树讲完后,会将所有代码上传百度网盘。请大家持续关注,谢谢大家!
喜欢的话点个关注哦~ 会每天分享人工智能机器学习内容,回复算法关键字可获取相关算法数据及代码~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。