机器学习实战 第九章 树回归 学习笔记

来源:互联网 发布:廖雪峰python pdf 编辑:程序博客网 时间:2024/05/21 01:42

机器学习实战 第九章 树回归 学习笔记

    这一章承接第三章,都是用树的方法,这里做的是回归。基本思路还是把数据集划分,做成二叉查找树的形式,然后可根据预测数据的特征在树中寻找其预测值。本章用的CART(分类回归树)算法来构树。


    这里做回归的树与前篇的不同之处就在于1、能够处理连续型数据;2、数据集的划分规则,第三章决策树用计算熵值的方法,找到熵值最高的划分方法,按此划分;回归树则是用误差(划分成的两组数据的方差之和),取误差最小的一种方法划分。

    节点结构说明:{spInd:划分特征,spVal:划分值(左子节点中此项特征的值都比这个值大;右同理),left:左子节点,right:右子节点}

寻找最佳切分函数的伪代码:

对每个特征:    对每个特征值:        将数据集切分成两份        计算切分的误差        如果当前误差小于当前最小误差,那么将当前切分设定为最佳切分并更新最小误差返回最佳切分的特征和阈值

树回归训练过程的伪代码:
对整个数据集:    寻找最佳切分    按照最佳切分方法切分    以此递归切分左右子节点返回整棵树

    在做完这些的基础上,还可以做做剪枝。有时建出的模型对所给训练集拟合的特别好,但对训练集之外的数据效果大减,这时就称此模型发生了过拟合现象。对付过拟合的一大利器就是剪枝,在树回归中,过拟合现象发生的原理就是叶节点分的过细,剪枝就是要将这些划分过细的子节点合并起来,从而达到避免过拟合的效果。

    具体做法:剪枝要准备两样东西,1、已建好的树,2、测试数据。这个测试数据应区别于训练数据,由训练数据训练出可能发生过拟合现象的一棵树,若再用训练数据去剪枝,那么结果必定是完全不需要剪枝(因为树就是拿那些数据建出来的)。然后开始剪枝,递归地划分树和测试数据集,如果合并后的误差小于不合并的误差,那么就做合并(剪枝)。






1 0