1. 回归树的核心思想
回归树是一种基于决策树的监督学习算法,主要用于解决回归问题。与线性回归不同,它不需要假设特征与目标变量之间存在线性关系,而是通过递归地将特征空间划分为更小的子空间来进行预测。
1.1 分区预测的基本原理
回归树的核心思想可以用一个简单的例子来说明:假设我们要预测房屋价格,我们可以先根据面积是否大于100平米将房屋分成两类,然后在每个类别中再根据卧室数量进一步细分。最终,每个子区域内的房屋价格取平均值作为预测值。
这种分区预测的方式有几个关键特点:
- 非参数化:不需要预先假设数据分布
- 非线性:可以捕捉复杂的非线性关系
- 可解释性:决策路径清晰可见
1.2 与分类树的区别
虽然回归树和分类树都基于决策树原理,但两者有重要区别:
| 特性 | 回归树 | 分类树 |
|---|---|---|
| 目标变量 | 连续值 | 离散类别 |
| 节点纯度度量 | 方差/均方误差 | 基尼系数/信息增益 |
| 叶节点输出 | 平均值 | 多数类 |
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 回归树的构建过程
2.1 递归分区算法
构建回归树的核心是递归分区算法,其步骤如下:
- 从根节点开始,包含所有训练样本
- 对每个特征,寻找最佳分割点:
- 计算所有可能分割的MSE
- 选择使MSE降低最多的分割
- 将数据分为两个子集,创建左右子节点
- 对每个子节点重复步骤2-3,直到满足停止条件
2.2 分割标准的选择
最常用的分割标准是均方误差(MSE):
code复制MSE = Σ(y_i - ŷ)^2 / n
其中ŷ是当前节点的预测值(通常取平均值)。好的分割应该使左右子节点的MSE之和最小。
在实践中,我们通常考虑特征值的百分位数作为候选分割点,以减少计算量。例如对于连续特征,可以考察第10、20、...、90百分位处的值作为候选阈值。
2.3 停止条件
递归分割需要明确的停止条件,常见的有:
- 节点样本数小于预设阈值(如5)
- 所有特征的分割都不能显著降低MSE
- 达到最大树深度
- 节点MSE低于某个阈值
过早停止可能导致欠拟合,而过晚停止则容易过拟合。
3. 回归树的实现细节
3.1 节点表示与存储
在
