树回归算法概述
上一章节介绍的线性回归包含了一些强大的方法,但这些方法创建的模型需要拟合所有的样本点(局部加权线性归回除外)。当数据拥有众多特征并且特征之间关系十分复杂时,构建全局线性模型的想法就显得太难了,也很笨拙。而且,在现实世界中很多问题都是非线性的,不可能使用全局线性模型来拟合任何数据。
一种可行的方法就是将数据切分成很多分易于建模的数据,然后利用线性回归技术对局部数据建模。如果首次切分后仍然难以拟合线性模型就继续切分。于是就诞生了一种叫做CART(Classification And Regression Trees,分类回归树)的算法。
优点:可以对复杂和非线性的数据建模。
缺点:结果不容理解。
适用数据类型:数值型和标称型数据。
入门案例
下图所示的数据点,是在sin函数的基础上,混杂高斯噪声生成的。本章节使用了树回归来构建模型。
工作原理
CART是十分著名的树构建算法,它使用二元切分来处理连续性变量,对其稍作修改就可处理回归问题。CART算法也使用一个字典来存储树的数据结构,该字典含:
待切分的特征
待切分的特征值
右子树,不需切分时,也可是单个值
左子树,右子树类似
CART可构建两种树:回归树(regression tree),其每个叶节点包含单个值;模型树(model tree),其每个叶节点包含一个线性方程。一般来说,模型树具有更高的预测准确度。
决策树也可使用测试集上某种交叉验证技术发现过拟合。通过降低决策树的复杂度来避免过拟合的过程称为剪枝(pruning),在拆分树之前设置预判条件,实际上是一种所谓的预剪枝(prepruning)操作。另一种剪枝需要使用测试集和训练集,称为后剪枝(postpruning),它不需要用户指定参数,是一种更理想化的剪枝方法。后剪枝可能不如预剪枝有效,一般为了得到最佳模型可同时使用两种剪枝技术。
从下章开始,我们将离开监督学习的岛屿,驶向无监督学习的未知海域,好激动:-)
一般流程
1.收集数据:采用任意方法收集数据。
2.准备数据:需要数值型的数据,标称型数据应该先映射成二值型数据。
3.分析数据:绘出数据的二维可视化显示结果,以字典方式生成树。
4.训练算法:大部分时间都花费在叶子节点树模型的构建上。
5.测试算法:使用测试数据集,计算平均方差来分析模型的效果。
6.使用算法:使用训练出的树做预测。
可使用场景
1.待定...