ID3算法的作者昆兰基于上面的不足,对ID3算法做了改进,这就是C4.5算法,也许你会问,为什么不叫ID4,ID5之类的名字呢?那是因为决策树当时太火爆了,它的ID3一出来,别人二次创新,很快就占了ID4,ID5,所以他另辟蹊径,取名C4.5算法,后来的进化版为C4.5算法。
C4.5算法与ID3算法的区别主要是在于它在生产决策树的过程中,使用信息增益比来进行特征选择。
实际上,信息增益准则对于可取值数目较多的属性会有所偏好,为了减少这种偏好可能带来的不利影响,C4.5决策树算法不直接使用信息增益,而是使用“信息增益率”来选择最优划分属性,信息增益率定义为:
Gain_ratio(Y,X)=Gain(Y,X)/H(X)
其中,分子为信息增益,分母为属性X的熵。
需要注意的是,增益率准则对可取值数目较少的属性有所偏好。所以一般这样选取划分属性:先从候选属性中找到信息增益高于平均水平的属性,再从中选择增益率最高的。
虽然C4.5改善了ID3算法的几个问题,仍然有优化的空间。
1,由于决策树算法非常容易过拟合,因此对于生成的决策树必须要进行剪枝。剪枝的算法有非常多,C4.5的剪枝方法有优化的空间。思路主要有两种:一种是预剪枝,即在生成决策树的时候就决定是否剪枝。另一个是后剪枝,即先生成决策树,再通过交叉验证来剪枝。
2,C4.5生成的是多叉树,即一个父节点可以有多个节点。很多时候,在计算机中二叉树模型会比多叉树运算效率高。如果采用二叉树,可以提高效率。
3,C3.5算法只能用于分类,如果将决策树用于回归的话,可以扩大它的使用范围。
4,C4.5算法由于使用了熵模型,里面有大量的耗时的对数运算,如果是连续纸还有大量的排序运算。如果能够加以模型简化可以减少运算强度但不牺牲太多准确性的话,那就更好了。
以上内容为大家介绍了PythonC4.5算法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。