模型和算法篇(一)监督学习回归问题(2)树形回归

三、决策树回归算法(Decision Tree)

1、核心思想

通过不断选择特征进行划分:

  • 将数据空间划分为多个区域
  • 每个区域对应一个预测值

本质类似一系列 if-else 规则。

简单地说是从样本数据的特征属性中,通过学习简单的决策规则,也就是我们耳熟能详的 IF ELSE 规则,来预测目标变量的值。这个算法的核心是划分点的选择和输出值的确定。

这种算法是根据两个特征 x1​ 和 x2​ 的值,以及标签 y 的取值,来对二维平面上的区域进行精准分割,以确定从特征到标签的映射规则。根据树的深度和分叉时所选择的特征的不同,我们可以训练出很多棵不一样的树来。

2、划分标准

回归问题中通常使用:

  • 最小化均方误差(MSE)
  • 或最小化方差

3、代码示例

复制代码
from sklearn.tree import DecisionTreeRegressor

model = DecisionTreeRegressor(max_depth=3)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

4、优缺点

优点:

  • 能处理非线性关系
  • 可解释性强

缺点:

  • 容易过拟合
  • 对数据波动敏感

四、随机森林回归算法(Random Forest)

1、定义

随机森林是一种典型的集成学习方法:

通过构建多棵决策树,并对结果进行平均来提高模型性能。

由多棵决策树构成的集成学习算法。它既能用于分类问题,也能用于回归问题。而且无论是解决哪类问题,它都是相对优秀的算法。在训练模型的过程中,随机森林会构建多个决策树,如果解决的是分类问题,那么它的输出类别是由个别树输出的类别的众数而定;如果解决的是回归问题,那么它会对多棵树的预测结果进行平均。

随机森林纠正了决策树过度拟合其训练集的问题,在很多情况下它都能有不错的表现。这里的"过拟合",其实就是说模型对训练集的模拟过头了,反而不太适合验证集和测试集。

2、核心机制

  • Bootstrap 采样(有放回抽样)
  • 随机选择特征
  • 多模型集成

3、预测方式

  • 回归:取平均值

4、代码示例

复制代码
from sklearn.ensemble import RandomForestRegressor

model = RandomForestRegressor(n_estimators=100)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

from sklearn.linear_model import LinearRegression #导入线性回归模型
from sklearn.tree import DecisionTreeRegressor #导入决策树回归模型
from sklearn.ensemble import RandomForestRegressor #导入随机森林回归模型

#创建模型
model_lr = LinearRegression() #创建线性回归模型
model_dtr = DecisionTreeRegressor() #创建决策树回归模型
model_rfr = RandomForestRegressor() #创建随机森林回归模型

#训练,不要小看这几个简单的 fit 语句,这是模型进行自我学习的关键过程。
model_lr.fit(X_train, y_train) #拟合线性回归模型
model_dtr.fit(X_train, y_train) #拟合决策树模型
model_rfr.fit(X_train, y_train) #拟合随机森林模型

5、优点

  • 抑制过拟合
  • 泛化能力强
  • 表现稳定

对于决策树和随机森林算法来说,它们既有回归算法(Regressor),也有分类算法(Classifer)。

在线性回归算法中,机器是通过梯度下降,逐步减少数据集拟合过程中的损失,让线性函数对特征到标签的模拟越来越贴切。而在决策树模型中,算法是通过根据特征值选择划分点来确定输出值的;在随机森林算法中,机器则是生成多棵决策树,并通过 Bagging 的方法得到最终的预测模型。

相关推荐
AC赳赳老秦3 小时前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw
Project_Observer3 小时前
为您的项目选择最合适的Zoho Projects自动化巧能
大数据·运维·人工智能·深度学习·机器学习·自动化·编辑器
好运的阿财4 小时前
“锟斤拷”问题——程序中用powershell执行命令出现中文乱码的解决办法
linux·前端·人工智能·机器学习·架构·编辑器·vim
沅_Yuan4 小时前
基于LSSVM-ABKDE的多输入单输出回归预测模型【MATLAB】
人工智能·神经网络·机器学习·matlab·回归预测·lssvm·kde
小陈工4 小时前
Python Web开发入门(十八):跨域问题解决方案——从“为什么我的请求被拦了“到“我让浏览器乖乖听话“
开发语言·python·机器学习·架构·数据挖掘·回归·状态模式
AI科技星4 小时前
全维度相对论推导、光速螺旋时空与北斗 GEO 钟差的统一理论
开发语言·线性代数·算法·机器学习·数学建模
Chef_Chen4 小时前
Agent学习--LLM--推理熵
人工智能·学习·机器学习
kishu_iOS&AI4 小时前
机器学习 —— 线性回归(实例)
人工智能·python·机器学习·线性回归
人工智能培训5 小时前
多模态AI模型融合难?核心问题与解决思路
人工智能·机器学习·prompt·agent·智能体