机器学习 - 决策树C4.5算法

基于树的模型最简单的是ID3算法,ID3算法有两大特点:

1)节点分支时,使用信息增益计算最合适的属性作为当前节点的划分属性。

2)只能处理标称性属性。

假设按照属性A对数据集D进行划分,划分之后生成N个数据集D1,D2...,则属性A的信息增益公式为:


显然若一个属性取值较多,那么其熵En(D)相对就更大,gain(A)也就越大。


1. 信息增益率

C4.5为了克服信息增益带来的缺陷,选用了信息增益率作为划分节点的算法,假设按照属性A对数据集D进行划分,划分之后生成N个数据集D1,D2...,则属性A的信息增益率公式为:

gain_ratio(A) = gain(A) / En(A)


2. 数值型数据

理论上来说,数值型数据是由无限种取值可能的,但是由于样本是有限的,因此数值型数据也可以看做是离散的标称性数据。因此对数值型数据进行分支时,一个简单的idea就是二分法,即遍历当前数值型数据的每个值,计算以每个值对当前属性进行二分法后的信息增益率,看哪一个信息增益率最大,则选择该值作为当前属性划分的界限。这样二分计算数值型属性分界点需要计算N次信息增益率,但是标称性数据在计算分界点时仅仅计算一次信息增益率

针对这个问题,是有一些方法可以优化的,训练时train_x, train_y,计算train_x中某一个连续属性的信息增益率,则对train_x排序,然后仅仅计算train_y发生变化时train_x的信息增益率。这样可以减少一部分计算量,anyway,优化方法很多,这只是其中一种。




你可能感兴趣的:(机器学习,数据挖掘,机器学习与数据挖掘)