目录
Reduced-Error Pruning(REP,错误率降低剪枝)
Pesimistic-Error Pruning(PEP,悲观错误剪枝)
Cost-Complexity Pruning(CCP,代价复杂度剪枝)
Error-Based Pruning(EBP,基于错误的剪枝)
定义
用树模型做回归问题,每一片叶子都输出一个预测值
1D回归树的建立
(备注:Dosage:药物的剂量(x); Effectiveness: 药物的有效度(y))
根据例题建立回归树
第一步:计算所有阈值及其对应残差平方和(SSR)
从第一个和第二个观测点开始考虑,计算它们两个平均剂量作为第一个考虑的阈值(这里为3,所以阈值为3),这里的目标是根据阈值建立一个简单的二叉树,并求出这棵树的残差平方和(Sum of Squared Residuals,SSR,左右子树SSR相加)
(a)左子树
- 先求出阈值左边所有数据的y的均值y'(作为预测值)(下图y'=0)
- 计算单个SR,即(y'-y)^2, 然后将所有SR相加,即为左子树SSR (下图里为SSR=0)
(b)右子树
- 先求出阈值右边所有数据的y的均值y'(作为预测值)(下图y'=38.8)
- 计算单个SR,然后将所有SR相加
此时得到阈值为3时,树的SSR为27468.5.
第二步:找最佳阈值并进行二叉树建立
重复1,每次考虑第i和第i+1个观测点,求出所有阈值的SSR,下图为每个阈值的SSR的plot
找到最小的SSR对应的阈值,然后将此阈值定为分裂点
此时一部分二叉树就建立好了,接下来就是重复进行上面的1,2步骤,下图为一个例子:
此时的数据范围是:剂量<14.5的所有观测点,找出每个阈值的SSR,找到最小的SSR对应的阈值(11.5),此时剂量=11.5为部分二叉树的分裂点。
====
注意
二叉树可以一直分下去,但是分的过于细致就会过拟合。要考虑何时停止分裂。最简单的办法为设置一个最小分裂数量,通常为20,也就是如果现在范围内的观测点少于20,则不再进行分裂,以叶子结束。
====
N-D回归树的建立
当有多个因变量时,算法与上面基本一致,只是多了更多的重复运算和比较。
第一步:找出最佳分类特征及其阈值
- 算出剂量的最小阈值及其对应的SSR,此案例剂量最佳阈值为14.5,SSR=19564
- 算出年龄的最小阈值及其对应的SSR,此案例年龄最佳阈值为50,SSR=12017
- 算出性别的最小阈值及其对应的SSR,性别只有一个阈值,是否为女性(或者是否为男性),SSR=20738
- 找出具有最小SSR的特征,将其作为第一参考对象,其对应阈值为分裂点,建立出一个二叉树
第二步:延伸回归树
完成第一步的建立后:
- 如果年龄小于阈值的观测点小于规定的分裂数量,则不再分裂,子节点变为叶子,记录其预测值。
- 如果年龄小于阈值的观测点大于规定的分裂数量,则用符合要求的数据集重复第一步,子节点将为某个特征(此案例为Dosage,之后为Sex),直到需要分裂的数据数量小于规定的分类数量。
过拟合问题
产生过拟合的原因有两个方面:
样本问题
- 样本里的噪音数据干扰过大,使模型记住了噪音特征,从而忽略了真实输入和输出的关系
- 样本数量太少
- 抽样方法错误,抽样时没有足够正确考虑业务场景或业务特点等等,导致抽出的样本数据不能有效足够代表业务逻辑或业务场景;
- 建模时使用了样本中太多无关的输入变量。
生成的树有问题
- 没有合理的限制树的生成或者对树进行修剪
先剪枝
先设定要求,如果再建立过程中符合要求,则停止生长,节点变为叶子
- 定义一个高度,当决策树达到该高度时就可以停止决策树的生长
- 对特征进行范围定义,如果分裂时阈值冲破了这个范围,则停止生长
- 对观测点数量进行定义,如果考虑范围内的观测点少于定义的观测数量,则停止生长
- 对信息增益进行定义,比较增益值与该阈值的大小来决定是否停止决策树的生长
- 表示的是,知道了某个条件后,原来事件不确定性降低的幅度,降低幅度越大越好
- 计算方式为:熵-条件熵
- 熵:描述事件的不确定性,记作 H(X)
- 条件熵:衡量的是在某个条件 X 下,事件 Y 的不确定性,记作 H(Y|X)
优点
- 算法相对简单, 效率很高, 适合解决大规模问题。
缺点
- 精确地估计何时停止树的增长是相当困难的
- 预剪枝基于’贪心’本质,也就是能多剪枝就多剪枝,使得预剪枝策略给决策树带来了欠拟合的风险。
后剪枝
首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树用叶子结点来代替,该叶子的类标号用该结点子树中最频繁的类标记。
Reduced-Error Pruning(REP,错误率降低剪枝)
- 可用的数据被分成两个样例集合:一个训练集用来形成学习到的决策树,一个分离的验证集用来评估这个决策树在后续数据上的精度
- 其算法步骤为:
- 删除以此结点为根的子树
- 使其成为叶子结点
- 赋予该结点关联的训练数据的最常见分类
- 当修剪后的树对于验证集合的性能不会比原来的树差时,才真正删除该结点
Pesimistic-Error Pruning(PEP,悲观错误剪枝)
根据剪枝前后的错误率来判定子树的修剪
Cost-Complexity Pruning(CCP,代价复杂度剪枝)
Error-Based Pruning(EBP,基于错误的剪枝)
优点
- 通常比预剪枝决策树保留了更多的分支。
- 一般情况下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树
缺点
- 后剪枝过程是在生成完全决策树后进行的,并且要自下往上地对树中的非叶子节点逐一进行考察计算,因此训练时间的开销比为剪枝和预剪枝决策树都要大得多。
参考资料
【StatQuest 】清楚地解释回归树!!!Regression Trees, Clearly Explained!!!_哔哩哔哩_bilibili
本文中图片皆来自此视频