C4.5

ID3算法存在的不足, 在C4.5里面有了改进

  • 不能处理连续特征的问题
    C4.5的思路是将连续特征离散化. 比如m个样本, 特征A有m个连续的值, 取两个样本值的中位数,这样一共可以得到m-1个划分点, 对每个划分点计算信息增益.
    注意, 这样的话, 这个特征A, 可能在后面的决策树构建的过程中, 还会被用到, 相当于, 将这个特征 变成了多个特征.
  • 信息增益偏向于值较多的特征的问题
    因为信息增益准测对取值较多的特征有偏好, 所以这个问题的解决方案是信息增益比, 它是信息增益和特征熵的比值,记为

    其中,, 其称为属性A的"固有值", 属性取值的个数越多, IV就越大
  • 不能处理缺失值的问题
    对于某一个有缺失特征值的特征A。C4.5的思路是将数据分成两部分,对每个样本设置一个权重(初始可以都为1),然后划分数据,一部分是有特征值A的数据D1,另一部分是没有特征A的数据D2. 然后对于没有缺失特征A的数据集D1来和对应的A特征的各个特征值一起计算加权重后的信息增益比,最后乘上一个系数,这个系数是无特征A缺失的样本加权后所占加权总样本的比例。对于第二个子问题,可以将缺失特征的样本同时划分入所有的子节点,不过将该样本的权重按各个子节点样本的数量比例来分配。比如缺失特征A的样本a之前权重为1,特征A有3个特征值A1,A2,A3。 3个特征值对应的无缺失A特征的样本个数为2,3,4.则a同时划分入A1,A2,A3。

C4.5的缺点

  • 显然, 当遇到连续值时, 计算量会增大, 特别是涉及到很多的对数操作
  • 树模型亦然存在容易过拟合的现象

你可能感兴趣的:(C4.5)