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

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

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

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

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

树回归的优缺点:

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

缺点:结果不易理解

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

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

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

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

树回归的一般方法流程:

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

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

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

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

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

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

相关推荐
卷无止境3 小时前
智能体开发环境ADE浅析,编程工具的下一次范式跃迁
后端·python
wzdark3 小时前
基于堆的优先队列实现原理与复杂度分析4
算法
m0_734571765 小时前
深入理解人工智能 chatGPT的软件架构
人工智能
飞塔老梅子5 小时前
09. Codex 节省Token ❀ 老梅子学AI
人工智能·ai·token·模型·codex
HyperAI超神经5 小时前
扰动实验+迁移学习,MIT团队推出IRIS,用「指纹」重建单细胞信号传导历史
人工智能·深度学习·机器学习·迁移学习
前沿在线5 小时前
启元机器人亮相外滩大会,探索个人机器人健康服务新场景
人工智能·ai·大模型
haishikeji696_5 小时前
现成无人机管理系统源码|支持私有化部署、二次开发、政企投标、自动机库对接
人工智能·无人机·低空经济·无人机管理系统·飞控管理系统
彧azz5 小时前
图的存储结构详解:邻接矩阵的原理、实现与应用
开发语言·数据结构·学习·php
汇智信科5 小时前
煤矿视频智能分析系统:基于 AI 视觉实现井下安全隐患实时监测与闭环管控
人工智能