人工智能基础与应用 - 数据处理、建模与预测流程 7 基础模型之回归模型

7.1 学习目标

通过本章学习,读者应能够:

  • 理解什么是回归模型及其适用场景
  • 区分回归问题与分类问题
  • 掌握线性回归模型的基本使用流程
  • 使用 Python 训练并评估一个回归模型
  • 能够对回归模型的预测结果进行合理解读

本章的目标是:
让读者真正"跑通"一个模型,并理解结果意味着什么。


7.2 什么是回归模型

在人工智能中,回归模型主要用于解决这样一类问题:

预测一个连续的数值结果。

例如:

  • 预测每日步数
  • 预测房价
  • 预测销售额
  • 预测能耗、费用或时间

只要预测目标是一个具体数值,通常就可以考虑使用回归模型。


7.3 回归模型与分类模型的区别

为了避免混淆,可以从"输出形式"来区分:

模型类型 输出结果
回归模型 连续数值
分类模型 类别或标签

例如:

  • 预测"今天走了多少步" → 回归
  • 判断"是否达成 8000 步目标" → 分类

7.4 线性回归模型的直观理解

7.4.1 不讲公式,讲直觉

线性回归模型尝试找到一条"最合适的线",用来描述:

特征变化时,目标值如何变化。

例如:

  • 运动时间增加,步数通常增加
  • 房屋面积变大,价格通常更高

模型要做的,是找到这种关系的最佳近似表达


7.4.2 一个生活化的类比

可以把线性回归理解为:

在一堆散点中,画一条"最符合整体趋势的直线"。

这条线不是穿过所有点,而是尽量整体误差最小


7.5 回归模型的基本训练流程

无论数据来自哪个业务场景,回归模型的训练流程基本一致:

  1. 准备特征和标签
  2. 划分训练集和测试集
  3. 创建模型
  4. 训练模型
  5. 预测与评估

下面通过一个完整示例来演示。


7.6 Python 示例:预测每日步数

示例场景

假设我们希望根据用户的基本情况,预测其每日步数。


7.6.1 准备示例数据

python 复制代码
import pandas as pd

data = {
    'age': [25, 30, 45, 35, 50, 28, 40, 60],
    'exercise_minutes': [30, 20, 10, 40, 15, 25, 20, 5],
    'daily_steps': [8000, 6000, 3000, 10000, 4000, 7000, 5000, 2000]
}

df = pd.DataFrame(data)
print(df)

7.6.2 分离特征与标签

python 复制代码
X = df[['age', 'exercise_minutes']]
y = df['daily_steps']

7.6.3 划分训练集和测试集

python 复制代码
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.25, random_state=42
)

7.6.4 创建并训练线性回归模型

python 复制代码
from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)

7.6.5 进行预测

python 复制代码
y_pred = model.predict(X_test)

print("真实值:", y_test.values)
print("预测值:", y_pred)

7.7 如何评估回归模型的效果(入门级)

7.7.1 使用模型自带的 score

python 复制代码
train_score = model.score(X_train, y_train)
test_score = model.score(X_test, y_test)

print("训练集 R²:", train_score)
print("测试集 R²:", test_score)

(决定系数)的直观理解:

  • 接近 1:拟合效果较好
  • 接近 0:模型解释能力弱
  • 为负数:模型几乎不可用

7.7.2 为什么要同时看训练集和测试集

  • 训练集高、测试集低 → 可能过拟合
  • 两者都低 → 可能欠拟合
  • 两者接近 → 模型相对稳定

7.8 回归模型结果如何解读

7.8.1 预测值不是"绝对准确值"

回归模型给出的结果是:

基于历史数据的估计值,而不是精确答案。

因此:

  • 应关注整体趋势
  • 不应过度依赖单次预测

7.8.2 特征与结果的关系

在不深入数学的前提下,可以这样理解:

  • 每个特征都会对预测结果产生影响
  • 模型会综合这些影响给出最终结果

7.9 回归模型的适用与局限

7.9.1 适用场景

  • 关系相对简单
  • 数据量不大
  • 需要可解释性

7.9.2 局限性

  • 难以捕捉复杂非线性关系
  • 对异常值较敏感

这也是后续需要学习更复杂模型的原因。


7.10 回归模型中的常见误区

7.10.1 用回归模型做分类问题

例如:

  • 用回归模型预测"是否合格"
    这是不推荐的。

7.10.2 只看训练集效果

训练集分数高,并不代表模型可用。


7.10.3 忽略特征工程

回归模型对特征质量非常敏感。


7.11 本章小结

本章重点内容包括:

  • 回归模型用于预测连续数值
  • 线性回归是最基础、最常用的回归模型
  • 模型训练遵循统一流程
  • 回归结果需要结合评估指标解读

这些内容将为后续模型学习打下基础。


7.12 课后练习

一、判断题

  1. 回归模型的预测结果是连续数值。
  2. 线性回归模型只能用于非常小的数据集。
  3. 回归模型的预测结果可以完全等同于真实值。

二、简答题

  1. 回归模型适合解决哪类问题?
  2. 为什么需要同时评估训练集和测试集的效果?

三、实践题(思考)

在"学生学习行为数据"中:

  • 学习时长
  • 作业完成次数
  • 平时成绩
    如果目标是预测"期末考试成绩",这是否是一个回归问题?请说明理由。

7.13 练习题参考答案

一、判断题答案

  1. 正确
  2. 错误
  3. 错误

二、简答题参考要点

第 1 题:

  • 预测结果为连续数值
  • 常用于价格、数量、评分等问题

第 2 题:

  • 判断模型是否过拟合
  • 评估模型泛化能力

三、实践题参考答案

  • 是回归问题
  • 因为预测目标是一个具体数值(考试成绩)

相关推荐
团子和二花1 分钟前
openclaw平替之nanobot源码解析(八):Gateway进阶——定时任务与心跳机制
人工智能·gateway
机器之心5 分钟前
昨晚,OpenClaw大更新,亲手终结「旧插件」时代
人工智能·openai
机器学习之心6 分钟前
PSO-LightGBM-ABKDE粒子群算法优化轻量级梯度提升机自适应带宽核密度估计多变量回归区间预测Matlab实现
算法·matlab·回归·abkde·自适应带宽核密度估计·pso-lightgbm·粒子群算法优化轻量级梯度提升机
码路高手12 分钟前
Trae-Agent源码重点
人工智能·架构
剑穗挂着新流苏31220 分钟前
114_PyTorch 进阶:模型保存与读取的两大方式及“陷阱”避坑指南
人工智能·pytorch·深度学习
CoovallyAIHub23 分钟前
把 Whisper、Moonshine、SenseVoice 统统装进手机:sherpa-onnx 离线语音部署框架,GitHub 10.9K Star
人工智能·架构
一只叫煤球的猫29 分钟前
RAG 如何落地?从原理解释到工程实现
人工智能·后端·ai编程
AI营销快线33 分钟前
AI营销获客难?原圈科技深度解析SaaS系统增长之道
大数据·人工智能
南滑散修37 分钟前
机器学习(四):混合高斯模型GMM
人工智能·机器学习
柯儿的天空1 小时前
Mem0深度解析:给你的ai agent加上长期记忆,让ai从“健忘“到“过目不忘“
人工智能·gpt·自然语言处理·ai作画·aigc·ai编程·agi