【Python机器学习】树回归——复杂数据的局部性建模

线性回归包含一些强大的方法,但这些方法创建的模型需要拟合所有的样本(局部加权线性回归除外),当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法就显得很困难,也略显笨拙。而且,实际生活中很多问题都是非线性的,不可能使用全局线性模型来拟合任何数据。

一种可行的方法是将数据集切分成很多份易建模的数据,然后利用线性回归来建模。如果首次切分之后仍然难以拟合线性模型就继续切分,在这种切分喜爱,树结构和回归法就相当有用。

有一种叫做CART(分类回归树)的树结构算法,既可以用于分类,还可以用于回归,然后利用Python来构建并显示CART树,代码会保持足够的灵活性以便能用于多个问题中。接着,利用CART算法构建回归树并介绍其中的树剪枝技术(该技术的主要目的是防止树的过拟合)。

在用决策树进行分类时,决策树不断将数据切分成小数据集,直到所有目标变量完全相同,或者数据不能再切分为止。决策树是一种贪心算法,它要在给定时间内做出最佳选择额,但并不关心能否达到全局最优。

树回归的优缺点:

优点:可以对复杂和非线性的数据建模

缺点:结果不易理解

适用数据类型:数值型和标称型数据。

之前用过的树结构算法时ID3,它的做法是每次选取当前最佳的特征来分割数据,并按照该特征的所有可能值来切分。也就是说,如果一个特征有4中取值,那么数据将被切分成4份,一旦按某特征切分后,该特征在之后的算法执行过程中将不会再起作用,所以有观点认为这种切分方式过于迅速。另一种方法是二元切分法,即每次把数据集切分成2份,如果有数据的某特征值等于切分所要求的值,那么这些算法就进入树的左子树,反之进入树的右子树。

除了切分过于迅速外,ID3算法还存在另一个问题,它不能直接处理连续型特征。只有事先将连续性特征转换成离散型,才能在ID3算法中使用。但这种转换过程会破坏连续型变量的内在性质。而使用二元切分法则易于对树构建过程中进行调整以处理连续型特征。具体的处理方法是:如果特征值大于给定值就走左子树,否则就走右子树。另外,二元切分法也节省了树的构建时间,但这点意义也不是特别大,因为这些树构建一般是离线完成,时间并非需要重点关注的因素。

CART是十分著名且广泛记载的树构建算法,它使用二元切分法来处理连续型变量。对CART稍作修改就可以处理回归问题。

树回归的一般方法流程:

1、收集数据:采用任意方法收集数据

2、准备数据:需要数值型的数据,标称型数据应该映射成二值型数据

3、分析数据:绘制出数据的二维可视化显示结果,以字典方式生成树

4、训练算法:大部分时间都花费在叶节点树模型的构建上

5、测试算法:使用测试数据上的R^{2}值来分析模型的效果

6、使用算法:使用训练出的树做预测,预测结果还可以用来做很多事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值