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 分类 ------ 预测一个类别 ------ 如果问题是"这个客户会流失吗?"而不是"价格是多少?",该怎么建模?

相关推荐
Black蜡笔小新5 小时前
企业私有化AI训练推理一体工作站DLTM重构企业AI模型训练的全流程模式
人工智能·机器学习·重构
冬奇Lab5 小时前
Agent 系列(10):MCP 协议——工具生态的标准化接入
人工智能·agent·mcp
极客老王说Agent5 小时前
屏幕理解能力是下一代自动化的关键吗?2026年自动化范式演进深度解析
运维·人工智能·ai·chatgpt·自动化
YueJoy.AI5 小时前
低算力场景下中小企业接入大模型的商业化路径
人工智能·ai·语言模型
smart19986 小时前
U.2 NVMe全闪磁盘阵列让AI, ML, HPC业务运行稳性高效
人工智能·科技·存储
懷淰メ6 小时前
【AI加持】基于PyQt+YOLO+DeepSeek的疟原虫检测系统(详细介绍)
人工智能·yolo·计算机视觉·pyqt·医疗·ai分析·疟原虫
Black蜡笔小新6 小时前
自动化AI算法训练服务器DLTM训推一体化平台助力农业生产管理实现安全智能化
人工智能·算法·自动化
米小虾6 小时前
Claude Code、Codex、Cursor三分天下:2026年AI编程Agent生态全景剖析
人工智能·agent
ZHW_AI课题组6 小时前
腾讯云调用IP定位
人工智能·python·机器学习