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

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

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

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

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

树回归的优缺点:

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

缺点:结果不易理解

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

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

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

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

树回归的一般方法流程:

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

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

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

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

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

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

相关推荐
fxss13 小时前
认识闯关大冒险|十个关卡,带娃认全生活里的东西
人工智能
renhongxia113 小时前
边缘AI部署与大模型轻量化技术全景:量化、蒸馏、RAG 与智能体落地实战
大数据·人工智能
AI视频工具指南14 小时前
怎么用 AI 做悬疑短剧?
人工智能·aigc·音视频
Carol063014 小时前
2026.10.23_科目一
人工智能
Young Doro14 小时前
独立性检测学习任务
人工智能·学习·数据挖掘
hetao173383714 小时前
2026-10-22~23 hetao1733837 的刷题记录
c++·算法
TechWayfarer14 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
java_nnnn14 小时前
LeetCode刷题滑动窗口(串联所有单词的子串+最小覆盖的子串)Java
算法·leetcode·职场和发展
企查查数据服务14 小时前
股权穿透+责任传导是医药并购合规健康度评分卡
大数据·人工智能
陈 洪 伟15 小时前
Transformer彻底剖析(9):归一化演进——BatchNorm、LayerNorm、RMSNorm、Post-LN / Pre-LN、DeepNorm
人工智能·深度学习·transformer