模型和算法篇(一)监督学习回归问题(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 的方法得到最终的预测模型。

相关推荐
richard_first12 小时前
Transformer与大语言模型:第13章 Decoder
人工智能·机器学习
罗西的思考1 天前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
147API1 天前
评测分数不理想,什么时候值得补蒸馏数据
人工智能·深度学习·机器学习
张人玉1 天前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js
JoannaJuanCV1 天前
VLM学习-SFT(监督微调)
深度学习·学习·机器学习·大模型·视觉大模型·vlm·视觉编码器
音视频牛哥1 天前
拆解人形机器人:从关节、灵巧手到VLA与媒体神经系统
机器学习·计算机视觉·机器人
xiaokcehui1 天前
地球物理大地测量学计算系列之十七局部重力场SRBF逼近及其性能指标测评
人工智能·算法·机器学习
宣宣猪的小花园.1 天前
【控制算法】PID 不只是三个参数:比例、积分、微分各在解决什么问题
人工智能·嵌入式硬件·机器学习
java1234_小锋1 天前
YOLO26 计算机视觉 - 训练自己的 YOLO26 模型
人工智能·yolo·机器学习·计算机视觉·yolo26
余俊晖1 天前
Self-OPD:去掉教师机的流匹配模型 On-Policy 蒸馏
人工智能·算法·机器学习