Python C4.5算法
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培训机构:千锋教育。

相关推荐HOT
更多>>
python中ndarray与list转换的方法
python中ndarray与list转换的方法在python数据类型中,list元素可以任意类型组合,而ndarray元素类型必须相同,但是ndarray可以更方便的对多维...详情>>
2023-11-10 08:51:14
python中OrdereDict如何使用?
python中OrdereDict如何使用?我们在对数据进行处理时,如果能够使它们保存顺序的排序,那么用起来会非常的便利。不过字典本身就是没有顺序的,...详情>>
2023-11-10 07:05:00
python中如何使用scipy.fftpack模块计算快速傅里叶变换?
python中如何使用scipy.fftpack模块计算快速傅里叶变换?在编程中,快速傅里叶变换是工程中非常有价值的一类算法,它可以将时域和频域的信号相互...详情>>
2023-11-10 05:50:23
zip()函数如何在python中遍历多个列表?
zip()函数如何在python中遍历多个列表?下面我们就python中zip的说明、语法、使用注意点进行讲解,然后带来遍历多个列表的实例。1、说明zip()函...详情>>
2023-11-10 05:38:33热门推荐
python concat函数有何用法?
沸python里函数装饰器怎么使用?
热如何实现python中的continue语句?
热python中的冒泡排序是什么?
新python中str函数是什么
如何使用python实现项目进度显示?
python中ndarray与list转换的方法
python复制文件的方法整理
Python中numpy数组如何添加元素
python有几种可视化图形库?
python中xlwings是什么?
python上下文管理器的基本介绍
Python自动化测试基础必备知识点一
python中OrdereDict如何使用?
技术干货






