决策树(decision tree)的自我理解 (下) 关于剪枝和连续值缺失值处理
2017-07-06 19:57
302 查看
对剪枝的粗浅理解
剪枝分预剪枝和后剪枝,顾名思义,预剪枝就是在树还没完成之前,预先剪去树的部分分支,后剪枝就是在整棵树完成了之后对树剪去部分分支,从而完成了对树的精简操作,避免了因属性太多而造成的过拟合。预剪枝(prepruning):在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分,并将当前结点标记为叶节点。
后剪枝(post-pruning):先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶节点。
连续值处理
一般来说,决策树处理不了具有连续值的特征,因为具有连续值的属性的可取值数目不再有限,因此不能直接用连续属性的取值来进行划分决策树。二分法对连续值进行处理
假设属性a是连续属性,将属性a下的值从小到大排序,有{a1,a2,a3,…………an},在a(i)和a(i+1)之间取平均值,作为一个划分结点,一共有n-1个划分结点,因此我们以这些结点把数据集分为两个子集,分别计算在该结点下属性a的信息增益,计算结果有n-1个值,在n-1个值之中选取信息增益最大的值,以这个值的划分点作为把连续属性a变成2个类离散化的节点。
缺失值处理
按照我自己的理解就是 在属性a下假如存在缺失值的话,在计算属性a下的信息增益或者信息增率时,把具有缺失值的元组去掉,把具有完整值的属性a代入计算,用去掉缺失值计算结果进行比较。
相关文章推荐
- 决策树(decision tree)的自我理解 (上)
- 决策树(decision tree)(四)——缺失值处理
- 关于java异常处理机制的深入理解(转)
- IPTV 关于新的项目开始了,准备做连续的技术理解历程,和部分项目过程!
- 关于单例的一点自我理解
- 关于c语言二维数组与指针的个人理解及处理办法。
- LeetCode 7. Reverse Integer 关于溢出很好的理解和处理
- 关于java异常处理机制的深入理解
- 关于MVC的自我理解
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- 关于如何去理解和取证生成树(STP)的BackboneFast机制对劣质BPDU的处理
- 关于事务的隔离级别和处理机制的理解
- 关于javascript中this关键字 【翻译+自我理解】
- 关于Opengl各种矩阵变换(MVPW)的自我理解
- 关于java异常处理机制的深入理解
- JSP应用的自我理解之二:JSP的异常处理机制及具体实现
- 关于Asp.net web控件事件处理的一点理解
- 关于OpenGL ES 3D 光晕如何产生的自我理解
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- 关于Opengl各种矩阵变换(MVPW)的自我理解