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

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

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

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

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

树回归的优缺点:

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

缺点:结果不易理解

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

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

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

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

树回归的一般方法流程:

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

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

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

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

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

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

相关推荐
硬核子牙6 分钟前
你管这破玩意叫ChatGPT?
人工智能·chatgpt·程序员
光之后裔6 分钟前
用自定义数据集微调PP-OCRv5文本检测、识别模型
python·机器学习·ocr
亲爱的译官.8 分钟前
能精准双语翻译的智能手表!独立离线可用,全能好用更省心
人工智能·旅游·智能手表·亲爱的翻译官·翻译设备
风华圆舞9 分钟前
鸿蒙 + Flutter 下 AI 页面的状态协同设计
人工智能·flutter·harmonyos
马***41112 分钟前
科学高效学英语:全方位提升语言综合应用能力
人工智能
人工智能AI技术14 分钟前
AI‑Skills解锁效率天花板,告别低效闲聊式提问
人工智能
comcoo18 分钟前
告别复杂配置!Hermes Windows 极简部署流程详解【附部署包】
人工智能·开源软件·hermes·hermes部署包
qq_4112624218 分钟前
AI-01开发板编译、烧录与双配网模式说明
人工智能·ai·esp32-c2·四博
百度搜知知学社18 分钟前
ChatOn全新升级:融合GPT-4.0的AI聊天与绘画体验
人工智能·ai聊天·gpt-4.0·绘画生成·模型升级
TinssonTai18 分钟前
这个 VS Code 插件让我的 AI Coding 又快又稳 - 旧瓶装新酒
前端·人工智能·程序员