LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

决策树 —— C4.5 (一) 算法简述

简单介绍和引入决策树算法:

ID3算法:

其核心是在决策树的各级节点上,使用信息增益作为属性的选择标准,来帮助确定每个节点所应采用的合适属性。

C4.5算法:
C4.5决策树生成算法相对于ID3算法的重要改进是使用信息增益率来选择节点属性。C4.5算法既能够处理离散的描述属性,也可以处理连续的描述属性。

由 ID3 算法可知:( 因该知识点比较普遍,这里不再细述 )

类别为 , 熵为 , 类别的熵为 , 属性为 , 属性的熵为 , 各个属性的信息增益为

每次通过比较各个属性的信息增益,选取信息增益最大的属性来分类。

C4.5 算法进行优化:

属性值为 , 属性内在信息为 ,信息增益率为

一个属性可能存在多个值;内在信息代表用分裂信息度量来考虑某种属性进行分裂时分支的数量信息和尺寸信息,信息增益率 = 信息增益 / 内在信息;内在信息越大,属性不确定性越大,属性的重要性会随着内在信息的增大而减小。

假设此时属性 为天气,而 ,有分别对应三个值晴(五个),阴(四个),雨(五个),共14个值(括号中为该值的数量),则:

要注意的是内置信息可以是大于 的值。

由此可得:

最后求出各个属性的信息增益率进行比较,选最大的属性进行分类。

后面的操作类似于 ID3 每次都求出新的一轮数据进行比较,不同之处在于 C4.5 是求出信息增益率来进行比较判断。

总结 C4.5 算法流程:

while ( 当前节点“不纯” )  
1.计算当前节点的类别熵I(Si)(以类别取值计算)  
2.计算当前节点的属性熵E(Ak)(按照属性取值下的类别取值计算)  
3.计算各个属性的信息增益Gain(Ak)  
4.计算各个属性的分类信息度里H(Ak)(按照属性取值计算)  
5.计算各个属性的信息增益率IGR(Ak)    
end while  
当前节点设置为叶子节点   

改进后的优点:

1.用信息增益率来选择划分特征,克服了用信息增益选择的不足,但信息增益率对可取值数目较少的属性有所偏好;

例:当所选的属性每个不同的值都对应一个类别,那么算得的信息熵为0,信息增益将会很大,但是选取这种进行第一次分类无疑是没有什么意义的。我们想让分类纯度高,而不是通过分类分得非常非常的细来提高纯度,如果分一万个类,尽管每个类纯度都很高,却意义不大!

2.能够处理离散型和连续型的属性类型,原 ID3 算法无法处理连续型的属性类型,需转化为离散型数据;

例:工资2000-10000,连续数据则是相邻两个数据可以无限细分,类别的划分要根据数值情况分析;离散数据则是数据可以一一数出,相当于把工资划分为:低薪、中薪、高薪。

3.能够处理具有缺失属性值的训练数据;

对于缺失值的数据可以临时剔除,或者使用加权数进行填充(如:平均数)。

4.在构造树的过程中进行剪枝,用于处理模型过拟合化;

过拟合化意思就是要求过高,例如:一只猫穿上了人造的衣服模型失败为非猫类;相反,拟合化过低则是要求过低,可能得到的结果与实际相差较大。而剪枝方法有两种:预剪枝和后剪枝。 ( 剪枝两种方法后续再讲解! )

----以上为个人思考与见解,有误请指点,有想法也可联系交流!

谢谢观看!

决策树 —— C4.5 (二) 剪枝细述

img_show