人工智能基础与应用 - 数据处理、建模与预测流程 6 模型训练

6.1 学习目标

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

  • 理解什么是"模型",模型在人工智能中的作用
  • 理解"训练""预测""评估"之间的关系
  • 掌握训练集、测试集的基本思想
  • 理解过拟合与欠拟合的直观含义
  • 使用 Python 完成一次最基本的模型训练流程

本章的目标是:
让读者明白模型训练"在干什么",而不是"怎么推公式"。


6.2 什么是模型

在人工智能中,模型并不是某个具体程序或文件,而是:

一种用来描述"输入与输出之间关系"的数学结构。

可以用一句更直观的话理解:

模型,就是数据规律的"总结版本"。


6.2.1 一个生活化的类比

假设你观察到:

  • 学习时间越长,考试成绩通常越高
  • 学习时间很少的学生,成绩往往较低

你在脑中形成的经验判断:

"学习时间和成绩之间存在正相关关系"

这其实就是一个非常朴素的模型。

人工智能模型做的事情,与此类似,只是:

  • 用数据而不是感觉
  • 用计算而不是直觉

6.3 什么是"训练"

6.3.1 训练不是"背答案"

在初学阶段,很多人会误以为:

"模型训练就是把答案记住"

实际上,训练的本质是:

通过大量样本,找到输入与输出之间的规律。


6.3.2 用一句话概括训练

模型训练 = 调整模型内部参数,使预测结果尽量接近真实结果。

这里有三个关键词:

  • 输入(特征)
  • 输出(标签)
  • 调整参数

6.4 训练、预测与评估的关系

模型训练并不是一个孤立过程,而是一个完整闭环。

6.4.1 训练(fit)

  • 使用已知数据
  • 学习输入 → 输出的关系

6.4.2 预测(predict)

  • 对新数据给出结果
  • 模拟真实应用场景

6.4.3 评估(evaluate / score)

  • 判断预测是否可靠
  • 衡量模型好坏

可以用一句话总结三者关系:

训练是学规则,预测是用规则,评估是看规则好不好。


6.5 为什么要划分训练集和测试集

6.5.1 问题从哪里来

如果你用全部数据 训练模型,再用同一批数据评估:

  • 模型分数通常会很高
  • 但这个分数没有实际意义

6.5.2 训练集与测试集的角色

  • 训练集:用来学习规律
  • 测试集:用来模拟"从未见过的新数据"

测试集的存在,是为了回答一个关键问题:

这个模型在新数据上还能表现好吗?


6.5.3 用 Python 划分数据集

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.2, random_state=42
)

常见比例:

  • 70% / 30%
  • 80% / 20%

6.6 过拟合与欠拟合(必须理解)

这是模型训练中最重要的概念之一。


6.6.1 欠拟合(学得不够)

欠拟合指的是:

  • 模型过于简单
  • 没有学到数据中的基本规律

表现为:

  • 训练集效果差
  • 测试集效果也差

类比:

题目没学会,考试自然考不好。


6.6.2 过拟合(学得太死)

过拟合指的是:

  • 模型把训练数据"记得太清楚"
  • 把噪声也当成规律

表现为:

  • 训练集效果很好
  • 测试集效果明显下降

类比:

把练习题答案背下来了,换题就不会做。


6.6.3 为什么人工智能训练师要警惕过拟合

因为:

  • 过拟合模型看起来"很优秀"
  • 实际应用中却经常失败

这是很多 AI 项目"上线即翻车"的原因。


6.7 一个完整的模型训练示例(重点)

示例:预测每日步数(回归问题)

python 复制代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# 示例数据
data = {
    'age': [25, 30, 45, 35, 50],
    'exercise_minutes': [30, 20, 10, 40, 15],
    'daily_steps': [8000, 6000, 3000, 10000, 4000]
}

df = pd.DataFrame(data)

# 特征与标签
X = df[['age', 'exercise_minutes']]
y = df['daily_steps']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 创建并训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 评估模型
train_score = model.score(X_train, y_train)
test_score = model.score(X_test, y_test)

print("训练集得分:", train_score)
print("测试集得分:", test_score)

6.7.1 如何解读结果

  • 训练集得分明显高于测试集 → 可能过拟合
  • 两者都很低 → 可能欠拟合
  • 两者接近且较高 → 模型较稳定

6.8 模型训练中的常见误区

6.8.1 用测试集参与训练

  • 会导致数据泄漏
  • 评估结果失真

6.8.2 只看训练集分数

  • 分数高不代表模型可用
  • 必须结合测试集

6.8.3 频繁更换模型但忽略数据

  • 数据问题未解决
  • 模型再复杂也无效

6.9 本章小结

本章围绕模型训练的基本思想,重点包括:

  • 模型是数据规律的抽象表达
  • 训练、预测、评估构成完整流程
  • 训练集与测试集用于判断模型泛化能力
  • 过拟合与欠拟合是模型训练中的核心问题

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


6.10 课后练习

一、判断题

  1. 模型训练的目标是让模型在训练数据上分数尽可能高。
  2. 测试集用于评估模型在新数据上的表现。
  3. 过拟合模型在真实应用中通常表现良好。

二、简答题

  1. 什么是模型训练?
  2. 为什么需要划分训练集和测试集?

三、思考题

如果一个模型在训练集上得分 0.95,在测试集上得分 0.60,你会如何判断这个模型?可能存在什么问题?


6.11 练习题参考答案

一、判断题答案

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

二、简答题参考要点

第 1 题:

  • 通过数据学习输入与输出之间的规律
  • 调整模型参数以提高预测准确性

第 2 题:

  • 模拟真实预测场景
  • 判断模型的泛化能力
  • 防止过拟合

三、思考题参考思路

  • 训练集得分高、测试集得分低
  • 模型可能存在过拟合
  • 需要简化模型或改进数据与特征

相关推荐
xwz小王子几秒前
一根光纤上的“触觉触手“:Nature Communications 光纤触觉 微操作 机器人
人工智能·机器人
shxjnpl1 分钟前
从 WenetSpeech-Yue 到 SenseVoice:如何通过专项微调提升粤语语音识别效果?
人工智能·语音识别·实时音视频
pt10435 分钟前
Cisco设备网络安全系列-17:AI驱动安全应用与量子计算安全影响
网络·人工智能·安全
得物技术8 分钟前
Jev 实战:为AI工作流引入轻量决策层 x10倍提速|得物技术
python·llm·测试
腾讯云大数据15 分钟前
腾讯云+TBDS+智算平台:多模态数据处理与机器学习一体化实践
大数据·机器学习·云计算·腾讯云
reasonsummer15 分钟前
【教学类-07-12】20261028大3班破译电话号码html(手机按钮版本)
python·html
美狐美颜SDK开放平台19 分钟前
视频美颜SDK如何应对快速转头与大幅度面部动作?
android·人工智能·ios·音视频·直播美颜sdk·视频美颜sdk
摇滚侠22 分钟前
《On Java 中文版 基础卷》阅读笔记 复用 13
java·笔记·python
大耳朵爱学习28 分钟前
Andrew Ng深度解析:普通人如何利用AI把想法变成工具,实现工作自动化(小白程序员必看)
运维·人工智能·ai·自动化·大模型·就业·大模型学习
用户2986985301428 分钟前
Python 将 Word 文档转换为 XML 的实践要点
后端·python·api