7.2 回归 —— 预测一个数字

本章学习目标

  • 理解回归的本质:预测一个连续的数值
  • 掌握线性回归的原理(知道"找一条最合适的线"就够了)
  • 了解决策树回归和随机森林回归的基本思想
  • 掌握回归模型的评估指标(MSE、RMSE、MAE、R²)
  • 核心能力:知道什么时候用回归、如何评估回归模型好坏

一、回归是什么?

1.1 回归的定义

回归 是一种监督学习算法,用于预测连续数值

对比维度 回归 分类
预测输出 数字(有大小、可比较) 类别(标签、无大小)
例子 价格、温度、销量 是否流失、猫/狗
输出形式 "3500元" "是" 或 "否"

1.2 回归能解决什么问题?

业务场景 回归应用 价值
二手车平台 预测车辆成交价 合理定价、避免亏损
电商 预测商品销量 备货决策、仓储优化
房地产 预测房价 评估房产价值
金融 预测股票价格 投资决策
人力 预测员工绩效 人才管理

1.3 二手车价格预测 ------ 回归问题

在二手车数据集中,我们的目标是:根据车辆的特征(车龄、里程、品牌等),预测一个具体的价格

复制代码
输入(特征)                    输出(标签)
车龄 3年   →                  
里程 5万公里 →    模型        →    价格 = 65,000元
品牌 丰田   →                  
功率 120马力 →                

这显然是一个回归问题

1.4 为什么叫"回归"?

这个名称源于19世纪英国科学家高尔顿的研究。他发现:

"高个子的父亲,儿子身高往往会比父亲矮一些(向平均身高回归)"

这就是"回归"一词的由来------向均值"回归"。虽然现代回归算法的应用远不止于此,但这个名字一直沿用至今。

二、线性回归

2.1 什么是线性?

线性指的是两个变量之间的关系可以用一条直线来描述。

关系类型 特征 例子
线性 图中点大致在一条直线附近 车龄 ↑ → 价格 ↓(大致均匀下降)
非线性 图中点形成曲线 学习时间与成绩(增长先快后慢)

2.2 线性回归的核心思想

一句话概括:找到一条最合适的直线,让这条线能够最好地"穿过"所有的数据点。

数学形式价格 = a × 车龄 + b × 里程 + c × 功率 + ... + 常数

  • abc 叫做系数(coefficients)
  • 模型的目标就是找到最优的系数

2.3 线性回归如何工作?

单变量线性回归(只有一个特征):

复制代码
价格
  ↑
  │                        ╱
  │                      ╱
  │                    ╱
  │                  ╱
  │                ╱
  │              ╱
  │            ╱
  │          ╱
  │        ╱
  │      ╱
  │    ╱
  │  ╱
  └────────────────────────→ 车龄
         每个点是一辆车
         直线是模型预测

找到最佳直线:模型会计算每条候选直线的"总误差",选择误差最小的那条。

实际关系的假设

  • 车龄每增加1年,价格下降X元(线性关系)
  • 里程每增加1万公里,价格下降Y元
  • 功率每增加10马力,价格上涨Z元

2.4 线性回归的优缺点

优点 缺点
简单易懂,结果可解释 只能学习线性关系
计算速度快 对异常值敏感
不容易过拟合 需要特征独立(无多重共线性)
适合作为基线模型 真实关系往往不是完全线性的

2.5 什么时候用线性回归?

适合 不适合
特征与目标大致呈线性关系 存在明显的非线性关系(如U型)
需要可解释性 特征之间高度相关
数据量适中,异常值少 存在大量异常值

三、决策树回归

3.1 为什么需要决策树?

线性回归能做很多事情,但它有一个大问题:它假设变量之间的关系是线性的

但现实世界往往是非线性的

场景 非线性关系 线性回归的局限
车龄 5年内贬值快,5年后贬值慢 直线无法准确描述这个曲线
收入 低收入时消费少,中等收入消费多,高收入消费比例下降 需要更复杂的曲线

决策树就是用来解决这个问题的。

3.2 决策树的核心思想

一句话概括:把数据一层一层地"切分",每一层根据一个特征的条件(如"车龄是否大于5年")分成两个更纯净的子集,直到每个子集里的价格非常接近。

3.3 决策树预测二手车价格

复制代码
                    所有车辆
                        │
            ┌───────────┴───────────┐
            │ 车龄 ≤ 3年?          │
            │                       │
         是 ↓                       ↓ 否
        ┌─────┐                  ┌─────┐
        │3年内│                  │3年以上│
        └──┬──┘                  └──┬──┘
           │                        │
     ┌─────┴─────┐            ┌─────┴─────┐
     │里程≤4万公里?│            │品牌是否为奔驰?│
     │           │            │           │
   是 ↓         ↓ 否        是 ↓         ↓ 否
  ┌─────┐    ┌─────┐       ┌─────┐    ┌─────┐
  │价格 │    │价格 │       │价格 │    │价格 │
  │80000│    │55000│       │45000│    │25000│
  └─────┘    └─────┘       └─────┘    └─────┘

决策树的预测结果:每个"叶子"上的值就是该组车辆的价格预测值。

3.4 决策树回归的优缺点

优点 缺点
可以学习复杂的非线性关系 容易过拟合(树太深)
不需要数据缩放 对数据微小变化敏感
可解释性强(业务可理解) 不稳定(方差大)
自动处理特征交互 预测可能不平滑(阶梯状)

3.5 决策树的可视化价值

决策树的一大优势是可以画出来

复制代码
       [车龄 ≤ 3年]
        /        \
     [是]        [否]
      |           |
 [里程 ≤ 4万]  [品牌 ∈ 奔驰?]
    /    \        /    \
 80000  55000   45000  25000

业务人员可以直接看懂规则。

3.6 防止过拟合:限制树深度

过拟合:模型把训练数据里的"噪音"也当成了规律。

限制方法

参数 作用 经验值
max_depth 限制最大深度 5-10层
min_samples_leaf 叶子最少样本数 5-50

四、随机森林回归

4.1 为什么需要随机森林?

决策树虽然好,但它有一个致命问题:不稳定

假设你在同一个数据集上训练10棵决策树,可能会得到10个不同的树结构。这就是高方差问题。

类比:一个将军可能判断失误,但让100个将军投票,结果更可靠。

4.2 随机森林的核心思想

一句话概括:建造多棵决策树,每棵树只看一部分数据和一部分特征,最后让所有树投票/平均。

三步核心

步骤 说明
1. Bootstrap采样 每棵树随机抽取不同样本(有放回)
2. 随机特征 每棵树只用部分特征
3. 集成投票 所有树的结果取平均(回归)或投票(分类)

4.3 为什么随机森林效果更好?

机制 解决的问题 效果
多棵树平均 降低方差 预测更稳定
随机特征 避免个别强特征主导 泛化能力更强
集成学习 减少过拟合 对新数据更好

4.4 随机森林的优缺点

优点 缺点
预测精度高 模型可解释性差(黑箱)
不容易过拟合 训练慢(需要建很多树)
能输出特征重要性 内存占用大
对异常值不敏感 预测速度慢
自动处理非线性 ---

4.5 特征重要性

随机森林可以告诉你:"哪个特征对预测贡献最大?"

python 复制代码
特征重要性排序(二手车示例):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
车龄    ████████████████████████████████████  (0.45)
里程    ██████████████████████████████        (0.38)
品牌    ██████████████████████                (0.28)
功率    ██████████████████                    (0.22)
变速箱  ██████████                            (0.12)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

业务价值

  • 知道哪些因素最重要
  • 可以删掉不重要的特征
  • 向业务方解释模型

五、模型评估指标

5.1 核心指标总览

指标 全称 含义 越小越好
MSE 均方误差 误差平方的平均值
RMSE 均方根误差 MSE的开方,与y同单位
MAE 平均绝对误差 误差绝对值的平均值
决定系数 模型解释了多少方差 ❌(越大越好)

5.2 直观理解:预测误差

假设你有3辆车的真实价格和预测价格:

车辆 真实价格 预测价格 误差 误差绝对值 误差平方
车A 10,000 9,000 -1,000 1,000 1,000,000
车B 20,000 22,000 +2,000 2,000 4,000,000
车C 15,000 15,000 0 0 0
合计 3,000 5,000,000

5.3 MAE ------ 平均绝对误差

MAE = 平均 |真实价格 - 预测价格|

MAE = (1000 + 2000 + 0) / 3 = 1000元

含义:平均预测偏差约1000元。

优点:直观易懂,与价格单位一致。

缺点:对大小误差一视同仁。

5.4 MSE 和 RMSE ------ 均方误差与均方根误差

MSE = 平均 (误差²) = 5,000,000 / 3 ≈ 1,666,667

RMSE = √MSE = √1,666,667 ≈ 1,291元

RMSE与MAE的区别

  • MAE:平均误差 1000元
  • RMSE:平均误差 1291元

为什么RMSE更大?因为平方放大了大误差(2000² = 4,000,000)。

业务含义 :如果你对大误差更在意,优先看RMSE;如果所有误差同等对待,看MAE。

5.5 R² ------ 决定系数

:模型解释了多少数据波动?

R² 值 含义
0 模型跟瞎猜差不多
0.5 解释了50%的波动
0.8 解释了80%的波动
1.0 完美预测(几乎不可能)

例子

  • 用"车龄"预测价格,R² = 0.37(车龄可以解释37%的价格波动)
  • 用"车龄+里程+品牌"预测,R² = 0.65(增加了更多信息)

注意:业务上R²达到0.7-0.8就算不错了。自然现象(如身高预测体重)很难超过0.9。

5.6 如何选择评估指标

场景 推荐指标 理由
向业务汇报 MAE 或 RMSE 与价格单位一致,易懂
模型对比调优 RMSE 或 R² 对大误差更敏感
学术论文 标准化,可比
预算敏感场景 RMSE 大误差代价大

六、回归算法对比总结

对比维度 线性回归 决策树 随机森林
核心思想 找一条直线 层层切分数据 多棵树投票平均
可解释性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐
预测精度 ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
训练速度 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐
过拟合风险 高(需剪枝)
是否需要缩放
非线性处理
异常值敏感

如何选择?

你的需求 推荐算法
第一次预测,快速建立基线 线性回归
业务需要解释"为什么" 线性回归 或 决策树
追求预测精度,不在乎解释 随机森林
数据量小(<1000条) 线性回归 或 决策树(控制深度)
数据量大(>10万条) 随机森林

七、二手车价格预测实战预览

7.1 数据准备

  • 特征:车龄、里程、功率、品牌编码、变速箱、燃油类型
  • 标签:价格

7.2 模型训练

步骤 内容
1. 划分数据 训练集 80%,测试集 20%
2. 训练线性回归 作为基线
3. 训练决策树 调整 max_depth
4. 训练随机森林 调整 n_estimators

7.3 模型评估对比

模型 RMSE(元) 解读
线性回归 8,500 0.42 只能解释42%的波动
决策树 6,800 0.55 比线性回归好
随机森林 5,200 0.68 最好,解释68%的波动

7.4 特征重要性(随机森林输出)

特征 重要性 解读
车龄 0.38 最重要
里程 0.25 第二重要
品牌 0.18 品牌差异明显
功率 0.10 有一定影响
变速箱 0.06 有影响但较小
燃油类型 0.03 影响较小

八、如何向AI描述回归建模需求

你的需求 你应该这样告诉AI
训练模型 "用随机森林训练一个二手车价格预测模型"
评估模型 "计算模型的MAE、RMSE和R²,告诉我模型表现如何"
特征重要性 "输出特征重要性排序,哪些特征对价格预测最重要"
预测新数据 "用训练好的模型预测这批新车的价格"
对比模型 "同时训练线性回归、决策树、随机森林,对比它们的RMSE和R²"

九、本章总结

回归核心概念速记

概念 一句话
回归 预测连续数值
线性回归 找一条最合适的直线
决策树回归 层层切分数据
随机森林 多棵树投票平均
MAE 平均误差多少元
RMSE 大误差惩罚更重
模型解释了多少波动

算法选择速记

场景 选什么
快速基线 线性回归
要解释 线性回归 或 决策树
要精度 随机森林

评估指标速记

指标 问的问题
MAE/RMSE "平均差多少钱?"
"模型解释了多少?"

核心心法

"回归模型的终极问题不是'用哪个算法',而是'你的预测准不准'。选一个基线模型,然后不断迭代优化。"

十、思考题

  1. 线性回归假设特征与目标之间是线性关系。在二手车价格预测中,哪些特征可能与价格呈非线性关系?为什么?

  2. 如果决策树的深度设得太大(如max_depth=50),会发生什么?设得太小(如max_depth=2)呢?

  3. 随机森林为什么比单棵决策树更稳定?用"集体智慧"的思路解释。

  4. 假设你的模型RMSE=2000元,MAE=1500元。这说明什么?什么时候RMSE会比MAE大很多?

  5. 特征重要性显示"车龄"最重要。这个结果对业务方有什么价值?可以指导什么决策?


下一节预告:7.3 分类 ------ 预测一个类别 ------ 如果问题是"这个客户会流失吗?"而不是"价格是多少?",该怎么建模?

相关推荐
大龄程序员狗哥1 小时前
第51篇:AI伦理与偏见初探——你的模型“公平”吗?(概念入门)
人工智能
ComputerInBook1 小时前
数字图像处理(4版)——第 12 章——图像模式分类(上)(Rafael C.Gonzalez&Richard E. Woods)
图像处理·人工智能·算法·模式识别·图像模式分类
闵孚龙1 小时前
Claude Code Agent Loop 全解析:AI Agent 状态机、上下文压缩、工具调用、错误恢复一次讲透
人工智能
七牛开发者1 小时前
开源项目观察|ds4:本地 Agent 推理,不只是把模型跑起来
人工智能·redis·算法·开源
会开花的二叉树1 小时前
从 C++ 转向 AI 应用工程:我的 Python 基础第一阶段复盘
c++·人工智能·python
Agent产品评测局1 小时前
国产vs海外AI Agent方案,制造业场景适配性横评:企业级自动化选型全景深度解析
运维·人工智能·ai·chatgpt·自动化
电子科技圈1 小时前
XMOS将亮相台北国际电脑展并演示其在边缘AI和创新音频与互联等领域内的新方案
人工智能·游戏·计算机视觉·视觉检测·音视频·语音识别·实时音视频
沪漂阿龙1 小时前
AI大模型面试题:朴素贝叶斯是什么?贝叶斯定理、条件独立、拉普拉斯平滑、文本分类、零概率问题一文讲透
人工智能·分类·数据挖掘
慧一居士1 小时前
Trae 、Qoder 、CodeBuddy IDE 比较及选型
人工智能