本篇内容主要讲的是机器学习算法中的树回归,内容包括树回归简单介绍,优缺点,实施步骤及python实现等。
1、树回归简单介绍
线性回归需要考虑全样本数据情况(局部加权线性回归除外),但当特征较多且之间的关系比较复杂时候,线性回归就较难拟合预测,该方法并不是较好的选择。另外,在非线性情况下,如分段函数,线性回归显然就不灵了。因此引入树回归。
cart(classification and regression trees,分类回归树)算法,不仅能够做分类,也可以做回归。其核心就是将样本切分成较小的数据集,然后在较小的数据集上做线性模型,这样能够实现非线性回归。
树回归包括回归树和模型树两种类型算法。主要区别是回归树的预测值是叶子节点的平均值,而树模型的预测值是在较小叶子数据上建立线性回归模型。
2、树回归的优缺点
树回归的优点:能够对复杂的非线性数据进行建模,并具有较好的预测效果。
树回归的缺点:得出的结果不容易理解,容易过拟合,需要调整合适参数。
3、树回归实施步骤
树回归的主要实施步骤包括:
(1)设定叶子包含最小样本量和分叉误差最小值等参数;
(2)判定现有数据集是否大于第(1)步设定的参数,如果是,继续第(3)步,否则停止返回所得值;
(3)选择最优划分特征及特征数值,主要方法是历遍所有特征的数据值,选择划分后误差最小的特征值;
(4)根据最优特征值划分成两个较小的数据集,重复(2)(3)步骤;
(5)为防止过拟合,对树进行剪枝处理,主要方法是根据方差是否减少。
4、python实现
【样本说明】
本次使用的样本是智商与自行车速度的关系数据集,训练样本200个,测试样本200个,其中训练样本数据图形展示如下:是为非线性函数。
【python代码】
具体代码如下:
【结果比较】
模型性能评价指标为r^2,该值越接近1说明效果越好。从预测结果看,回归树为0.96,模型树为0.98,线性回归为0.94;模型树的精度最高,回归树次之,线性回归最差。
5、学习经验总结
通过对树回归的学习,需要注意以下几点:
(1)树回归是贪心算法,树的构建是基于现状选择最优,但不是全局最优解;
(2)最小样本参数和最少提升误差参数的选择,需要不断调整;
(3)后剪枝方法一般优于预剪枝;
(4)树模型方法的精准度一般高于树回归方法。