树回归:可以对复杂和非线性的数据进行建模;适用数值型和标称型数据。
1、 CART:classification and regression trees(分类回归树)。每个叶节点上运用各自的均值做预测
二元切割:每次把数据集切成两份,如果等于切分所要求的值进入左子树,否则进入右子树。
CART使用二元切分来处理连续型变量。
回归树(连续型)分类树(离散型):
回归树:假设叶节点是常数值,这种策略认为数据中的复杂关系可以用树结构来概括。
度量数据的一致性:在给定节点时计算数据的混乱度。首先计算所有数据的均值,然后计算每条数据的值到均值的差值(求其绝对值或平方),这里是总方差。
用该误差计算准则,去构建数据集上的回归树。
实现choosebestsplit的切分:用最佳方式切分数据集,生成对应的叶节点,即切分后误差最小。
其实现伪代码如下:
对每个特征进行:
对每个特征值:
将数据集切分成两份 计算切分的误差 如果当前误差小于当前最小误差,则将当前切分作为最佳切分,并更新最小
误差
返回最佳切分的特征和阈值
如果切分不降低原有的误差,则不再切分;如果剩余特征值只有一个值则不需要再切分;如果误差减小不够大,则也直接创建叶节点。如果某个子集的大小小于用户定义的参数tolN,也不应切分。
模型过拟合:剪枝 pruning 提前中止的条件设定为预剪枝。
后剪枝:在测试集上进行 合并两个叶节点,并计算误差,计算不合并的误差,如果合并后误差减小,则进行剪枝。
2、 模型树:需要在每个叶节点上构建出一个线性模型。
把叶节点设定为分段线性函数,piecewise linear 是指由多个线性片段组成。也就是先分类,确定在什么地方进行分段,从而在不同的段内部使用不同的线性模型去拟合数据。
对于给定的数据集,应先用线性的模型进行拟合,然后计算真实的目标值与预测值的差值,求和得到误差。
3、 决策树:是一种贪心算法,不关心全局是否最优。ID3需事先将连续型转换为离散型数据,每次选取当前最佳特征来分割数据并按照该特征所有可能取值来切分。
计算相关系数R2,corrcoef(yHat,y,rowvar=0) yhat是预测值,y是目标变量的实际值。
越接近1说明拟合程度越高。