千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  技术干货  >  Python技术干货  > Python C4.5算法

Python C4.5算法

来源:千锋教育
发布时间:2023-11-07 07:52:20
分享

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培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python 面向过程 python面向过程优点:复杂的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单)举个典型的面向过程的例子,写一个数据远程备份程序,分三步,本地数据打包,上传
  • Python绑定方法与非绑定方法 python类中定义的函数分为两大类1:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):绑定方法分为绑定到类的方法和绑定到对象的方法,具体如下:1.绑定到类的方法:用classmeth
  • Python 类方法,静态方法的定义 python是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个.py文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即可调用,完全不需要类,那么你可
  • Python 类方法与静态方法说明 1:self表示为类型为类的object,而cls表示为类也就是class2:在定义普通方法的时候,需要的是参数self,也就是把类的实例作为参数传递给方法,如果不写self的时候,会发现报错Type
  • Python 需求分析的方法 需求分析518方法,简称我要发,具体就是5w1h8c5w+1h属于功能属性8c属于质量属性5wwhen:用户想在什么时间用,例如半夜备份的任务,很明显我们得知该需求需要自动化执行where:用户想在什
  • Python 需求模型之用例的写法 1、python写用例的技巧三段法:NEA1正常处理(normal):分析正常流程2异常处理(exception):分析每一步异常情况和对应的处理3替代处理(alternative):分析每一步是否有