决策树的预剪枝和后剪枝,连续值与缺失值

预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶子结点。

优点:算法简单,效率高,适合解决大规模问题

缺点:有欠拟合的风险

 

后剪枝是先从训练集生成一颗完整的决策树,然后自底向上地对非叶子结点进行考察,若将该结点对应的子树替换为叶子结点能带来决策树泛化性能提升,则将该子树替换为叶子结点。

优点:相比于预剪枝,泛化能力强

缺点:时间开销大

 

连续值处理:最简单的策略是采用二分法对连续属性进行处理,这是C4.5决策树算法采用的机制。

决策树的预剪枝和后剪枝,连续值与缺失值_第1张图片

 

缺失值处理:

“纹理”在所有属性中的信息增益值最大,因此,“纹理”被选为划分属性,用于对根节点进行划分。划分结果为:“纹理=稍糊”分支:{7,9,13,14,17},“纹理=清晰”分支:{1,2,3,4,5,6,15},“纹理=模糊”分支:{11,12,16}。如下图所示:

决策树的预剪枝和后剪枝,连续值与缺失值_第2张图片

    那么问题来了,编号为{8,10}的样本在“纹理”这个属性上是缺失的,该被划分到哪个分支里?前面讲过了,这两个样本会同时进入到三个分支里,只不过进入到每个分支后权重会被调整(前面也说过,在刚开始时每个样本的权重都初始化为1)。编号为8的样本进入到三个分支里后,权重分别调整为5/15,7/15 和 3/15;编号为10的样本同样的操作和权重。因此,经过第一次划分后的决策树如下图所示:

决策树的预剪枝和后剪枝,连续值与缺失值_第3张图片

 

你可能感兴趣的:(机器学习)