1. 决策树回归实战:从原理到Matlab实现
决策树在回归任务中的应用,就像一位经验丰富的向导带领我们穿越数据迷宫。与分类任务不同,回归树需要预测连续值,其核心思想是通过递归地将特征空间划分为多个区域,并在每个区域用简单模型(通常是常量值)进行预测。Matlab提供的fitrtree函数封装了CART算法实现,让我们能够快速构建回归树模型。
关键理解:回归树的每个叶节点存储的不是类别标签,而是该区域内目标值的平均值或中位数
1.1 数据准备的艺术
高质量的数据准备是成功建模的第一步。我们使用带噪声的正弦波数据作为示例,这种数据模式在传感器信号分析、经济周期预测等场景非常常见:
matlab复制% 生成带噪声的正弦波数据
rng(2023); % 固定随机种子保证可重复性
x = linspace(0, 10, 200)'; % 200个均匀分布点
y = sin(x*2) + x/5 + 0.3*randn(size(x)); % 基础波形+趋势项+高斯噪声
这里有几个精妙设计:
linspace生成均匀分布点,避免采样偏差- 组合正弦波和线性项,模拟真实世界中的周期+趋势现象
- 添加0.3倍标准差的高斯噪声,接近实际测量误差水平
数据拆分采用随机乱序而非简单截取,这能防止数据分布不均匀:
matlab复制% 7:3比例随机拆分
split_idx = randperm(length(x)); % 生成随机索引
train_x = x(split_idx(1:140), :);
train_y = y(split_idx(1:140), :);
test_x = x(split_idx(141:end), :);
test_y = y(split_idx(141:end), :);
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 模型构建与调参实战
2.1 基础模型训练
使用fitrtree函数训练回归树,关键参数需要特别关注:
matlab复制tree_model = fitrtree(train_x, train_y,...
'MinParentSize', 15,...
'MaxDepth', 5,...
'Surrogate', 'on');
参数解析:
