决策树模型、本质、连续值完整篇

-

摘自《统计学习方法》 李航  第五章 《机器学习》 周志华 第四章

决策树算法属于生成算法,通常包括3个步骤:特征选择、决策树的生成、决策树的剪枝

决策树学习本质上是从训练集中归纳出一组分类规则。

决策树学习的损失函数通常是正则化的极大似然函数。

决策树的学习算法通常是采用启发式的方法,近似求解最优化问题

特征选择问题

特征选择在于选取对训练数据具有分类能力的特征。如果一个特征具有更好的分类能力,或者说,按照这一特征将训练数据集分割成子集,

使得各个子集在当前条件下有最好的分类,那么就更应该选择这个特征。

决策树的生成

ID3算法

ID3算法的核心是在决策树的各个节点上应用信息增益准则选择特征,递归的构建决策树。

  信息增益准则对可取值数目较多的属性有所偏好!

缺点:ID3算法只有树的生成,所以该算法生成的树容易产生过拟合。

C4.5算法

C4.5算法对ID3算法进行了改进,使用信息增益比来选择特征。

  增益率准则对可取值数目较少的属性有所偏好!

决策树的剪枝

决策树的剪枝往往是通过极小化决策树整体的损失函数或代价函数来实现。

CART算法

分类与回归树(classification and regression tree, CART)

决策树的生成久士递归的构建二叉决策树的过程,对回归树平方误差最小化准则,对分类树基尼指数最小化准则,进行特征选择,生成二叉树。

连续和缺失值

连续值处理

由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对节点进行划分。此时,连续属性离散化技术可排上用上,最简单的策略是采用二分法,

对连续属性的处理如下(转自https://www.cnblogs.com/sxron/p/5471078.html):

    1、对特征的取值进行升序排序

    2、两个特征取值之间的中点作为可能的分裂点,将数据集分成两部分,计算每个可能的分裂点的信息增益(InforGain)。优化算法就是只计算分类属性发生改变的那些特征取值。

    3、选择修正后信息增益(InforGain)最大的分裂点作为该特征的最佳分裂点

    4、计算最佳分裂点的信息增益率(Gain Ratio)作为特征的Gain Ratio。注意,此处需对最佳分裂点的信息增益进行修正:减去log2(N-1)/|D|(N是连续特征的取值个数,D是训练数据数目,此修正的原因在于:当离散属性和连续属性并存时,C4.5算法倾向于选择连续特征做最佳树分裂点)

缺失值处理(转自https://www.jianshu.com/p/2abc638490e3)

  • 采用抛弃缺失值
    抛弃极少量的缺失值的样本对决策树的创建影响不是太大。但是如果属性缺失值较多或是关键属性值缺失,创建的决策树将是不完全的,同时可能给用户造成知识上的大量错误信息,所以抛弃缺失值一般不采用。只有在数据库具有极少量的缺失值同时缺失值不是关键的属性值时,且为了加快创建决策树的速度,才采用抛弃属性缺失值的方式创建决策树。
  • 补充缺失值
    缺失值较少时按照我们上面的补充规则是可行的。但如果数据库的数据较大,缺失值较多(当然,这样获取的数据库在现实中使用的意义已不大,同时在信息获取方面基本不会出现这样的数据库),这样根据填充后的数据库创建的决策树可能和根据正确值创建的决策树有很大变化。
  • 概率化缺失值
    对缺失值的样本赋予该属性所有属性值的概率分布,即将缺失值按照其所在属性已知值的相对概率分布来创建决策树。用系数F进行合理的修正计算的信息量,F=数据库中缺失值所在的属性值样本数量去掉缺失值样本数量/数据库中样本数量的总和,即F表示所给属性具有已知值样本的概率。
  • 缺失值单独分支
决策树实现代码请参考:https://www.cnblogs.com/sxron/p/5471078.html


猜你喜欢

转载自www.cnblogs.com/zhibei/p/9076569.html