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

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

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

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

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

树回归的优缺点:

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

缺点:结果不易理解

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

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

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

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

树回归的一般方法流程:

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

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

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

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

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

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

相关推荐
RFdragon2 小时前
分享本周所学——三维重建算法3D Gaussian Splatting(3DGS)
人工智能·线性代数·算法·机器学习·计算机视觉·矩阵·paddlepaddle
星河耀银海2 小时前
3D效果:HTML5 WebGL结合AI实现智能3D场景渲染
前端·人工智能·深度学习·3d·html5·webgl
li99yo2 小时前
3DGS的复现
图像处理·pytorch·经验分享·python·3d·conda·pip
balmtv6 小时前
2026年多模态AI文件处理与联网搜索完全教程:国内镜像方案实测
人工智能
2501_926978336 小时前
AI的三次起落发展分析,及未来预测----理论5.0的应用
人工智能·经验分享·笔记·ai写作·agi
潜创微科技--高清音视频芯片方案开发6 小时前
2026年C转DP芯片方案深度分析:从适配场景到成本性能的优选指南
c语言·开发语言
前网易架构师-高司机6 小时前
带标注的瓶盖识别数据集,识别率99.5%,可识别瓶盖,支持yolo,coco json,pascal voc xml格式
人工智能·yolo·数据集·瓶盖
Dontla6 小时前
用pip install -e .开发Python包时,Python项目目录结构(项目结构)(可编辑安装editable install)
python·pip
Thomas.Sir6 小时前
第三章:Python3 之 字符串
开发语言·python·字符串·string