深度学习(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) 提高小样本评估稳定性
避免过拟合 不在测试集上反复调参
相关推荐
xywww1684 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
私人珍藏库9 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
月疯9 小时前
CNN卷积和反卷积输出的计算方法
深度学习·神经网络·cnn
CS创新实验室10 小时前
算法、齿轮与硅基大脑:数值计算发展简史
人工智能·算法·数值计算
能有时光10 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
直接冲冲冲10 小时前
鱼书-PH4-类的作用
深度学习
fthux10 小时前
GitZip Pro 源码解析:一个 GitHub 文件/文件夹下载扩展是如何工作的(一)整体架构与扩展入口
人工智能·ai·开源·github·open source
aqi0010 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
xixixi7777711 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
海石11 小时前
1563分的简单题,可能就简单在能被暴力AC
算法·leetcode