深度学习(10)模型评估、训练与选择

一、模型评估(Model Evaluation)

在训练神经网络或机器学习模型时,我们的目标不仅是让模型在训练数据上表现好,更重要的是在未见过的数据上也有良好的表现。这就涉及到模型的评估与验证。

1. 训练集与测试集的划分

通常,我们会将全部数据集划分为两部分:

数据集类型 用途
训练集(Training Set) 用于模型学习参数(如权重、偏置)
测试集(Test Set) 用于检验模型在新数据上的表现

划分比例常见为:

  • 80% 训练集 + 20% 测试集

  • 70% 训练集 + 30% 测试集

目的:通过将数据分开,可以有效检测模型是否过拟合(Overfitting)或 欠拟合(Underfitting)。

2. 分类问题的训练与测试流程

以二分类问题(Binary Classification)为例,整体流程如下:

(1)准备数据集

将数据随机划分为训练集与测试集。

(2)训练模型

在训练集上进行学习,最小化损失函数(例如交叉熵损失 Cross Entropy Loss)。

(3)评估模型

在测试集上计算准确率(Accuracy)、精确率(Precision)、召回率(Recall)或 F1-score。

(4)分析表现

  • 如果训练集准确率高、测试集准确率低 → 过拟合

  • 如果两者都低 → 欠拟合

(5)图示理解:

数据集 → 划分 → [训练集] + [测试集]

模型训练

测试集评估性能


二、模型选择与训练(Model Selection & Training)

1. 模型的选择

在机器学习或深度学习中,我们常会有多种模型可供选择,例如:

  • 逻辑回归(Logistic Regression)

  • 支持向量机(SVM)

  • 神经网络(Neural Network)

  • 决策树、随机森林(Decision Tree / Random Forest)

每种模型的表现取决于任务类型、数据规模与特征复杂度。因此我们需要一个系统的方法来选择最优模型。

2. 三种常见数据集划分方式

在真实训练流程中,我们一般将数据分为三部分:

数据集 作用
训练集(Training Set) 用于拟合模型参数
验证集(Validation Set) 用于调整模型结构或超参数(Hyperparameters)
测试集(Test Set) 用于最终模型性能评估
举例:模型选择的完整流程

假设我们在调节神经网络的结构(隐藏层数量、学习率等):

  1. 用训练集训练多个不同结构的模型;
  2. 在验证集上评估每个模型的性能;
  3. 选择在验证集上表现最好的模型;
  4. 用训练集 + 验证集重新训练该模型;
  5. 最后在测试集上评估其最终性能。

3. 为什么使用验证集而不是测试集来调参?

不应该使用测试集来选择模型。测试集只能在"模型定型后"用于最终评估。

原因:

如果我们在模型选择阶段多次查看测试集性能,就相当于"间接让模型学习了测试集的特征",会导致信息泄漏(Data Leakage),使得测试结果不再客观反映泛化能力。

4. 交叉验证(Cross Validation)

当数据量较小时,可以使用 K 折交叉验证(K-Fold Cross Validation) 进行更稳定的评估。

原理:
  1. 将数据集分成 K 份;
  2. 每次取其中 1 份做验证集,剩下 K-1 份做训练集;
  3. 轮流进行 K 次训练与评估,最后取平均性能。
优点:
  • 最大化利用数据;

  • 减少由于随机划分带来的偏差;

  • 评估更稳定可靠。

常用的 K 值:K = 5 或 10。

5. 最终模型由哪个集合确定?

最终模型应基于"验证集"选择,在"训练集 + 验证集"上重新训练后,用"测试集"评估。

集合 用于
训练集 拟合参数
验证集 选择最优模型
测试集 最终性能评估

总结

概念 作用
训练集 (Training Set) 用于学习模型参数
验证集 (Validation Set) 用于调节模型结构或超参数
测试集 (Test Set) 用于最终评估模型性能
交叉验证 (Cross Validation) 提高小样本评估稳定性
避免过拟合 不在测试集上反复调参
相关推荐
CIO_Alliance13 小时前
2026年最新iPaaS选型核心关键指标整合
人工智能·ai·ai+ipaas·企业cio联盟·企业级ai化转型
nvvas13 小时前
AI 智能体架构全解:从记忆、工具到多智能体协作的硬核实践
人工智能
veminhe13 小时前
元数据索引有关的错
人工智能·python
一次旅行13 小时前
AutoAWQ完整实战:MIT激活感知AWQ量化,模型显存减半、推理提速且精度无损
人工智能·python·算法
立心者013 小时前
Sdcb Chats .. 发布,彻底移除 Azure.AI.OpenAI 专用包
人工智能·flask·azure
ajassi200013 小时前
AI语音智能体开发日记(五)为智能设备注入“灵魂”——详解MCP工具的注册与使用
人工智能
GrowthDiary00714 小时前
算法题:寻找二维数组top k问题
数据结构·python·算法
可编程芯片开发14 小时前
基于全阶观测器的三自由度运动系统状态反馈控制simulink建模与仿真
算法
kobesdu14 小时前
从零推导FAST-LIO的观测雅可比矩阵
人工智能·算法·矩阵
u01030552714 小时前
使用BufferedReader读取控制台输入
人工智能·1024程序员节