吴恩达2022机器学习专项课程C2W3:2.24 机器学习实践建议(决定下一步做什么&模型评估&模型选择&交叉验证)

引言

1.本周内容简述
解决机器学习模型与神经网络模型中的欠拟合与过拟合问题。

2.算法出现问题该如何解决
假设你用正则化线性回归预测房价,出现大误差时,你可以尝试不同方法解决:获取更多训练样本、减少或增加特征、添加多项式特征或调整正则化参数 λ。有效构建机器学习算法的关键在于正确投资时间,例如收集更多数据有时有用,有时没用。
在这里插入图片描述
3.将学习的内容
本周将学习诊断方法,以了解算法的有效性并提升性能。某些诊断可以帮助你决定是否需要更多训练数据,从而节省时间。我们将讨论多种诊断方法,提供提升算法性能的参考,并首先学习如何评估算法性能。
在这里插入图片描述

一、绘图评估模型的局限性

当你训练了一个机器学习模型后,需要系统地评估其性能。以房价预测为例,假设使用房子大小作为特征训练一个四阶多项式模型,通过绘制模型,能看到该模型可能会过拟合训练数据,无法预测训练集之外的数据。为了提高模型的泛化能力,加入更多特征如卧室数量、层数和房龄。但由于特征增多,难以直观绘制模型。因此不能单纯的通过绘制手段评估模型,需要系统的方法来评估模型的表现。

在这里插入图片描述

二、使用测试集评估模型

1.线性回归

(1)分割训练集:将训练集(例如10个样本)分成训练集和测试集,用m_train表示训练样本数(这里是7),用m_test表示测试样本数(这里是3),大部分数据用于训练,一小部分用于测试。

在这里插入图片描述
(2)计算训练集误差和测试集误差:首先通过最小化成本函数计算出合适的w,b。评估模型时,使用w,b计算训练集的误差J_test(w, b)和测试集的误差集 J_train(w, b) 。
在这里插入图片描述
(3)为什么计算误差的时候不用正则化项?:正则化是为了防止过拟合,而我们的目的是仅计算预测值与真实值之间的差异,因此无需添加正则化项。
(4)结论:因为案例中的模型过拟合,使用训练集计算的误差接近零,因此使用训练集计算的误差J_train(w, b) 值会很低。然而,测试集对于模型来讲是新数据,由于模型过拟合,模型的预测结果相较于真实值差距大,因此使用测试集计算的误差J_test 会很高,表示该模型的泛化效果差,这样通过计算测试集,就评估出了模型的泛化能力。在这里插入图片描述

2.逻辑回归

(1)计算训练集和测试集误差:对于0或1的手写数字分类也使用同样的流程,分割出训练集和测试集,分别计算误差。
在这里插入图片描述
(2)错误分类的比例:在分类问题中,J_test 和 J_train 还有另一种定义,意思是衡量测试集和训练集中被错误分类的部分。例如,在手写数字分类中,J_test是测试集中错误分类的比例,J_train是训练集中错误分类的比例。在这里插入图片描述

3.测试误差与泛化误差

  • 训练误差:是模型在训练数据集上的误差,反映了模型对训练数据的拟合程度。由于模型参数是根据训练数据调整的,训练误差通常很低。
  • 泛化误差:是模型在所有可能的新数据上的表现,由于实际泛化误差难以直接计算(数据是无限的),我们使用测试误差来估计泛化误差。
  • 测试误差:是模型在测试数据集上的误差,是泛化误差的估计值。测试误差能够更好地反映模型在新数据上的表现,因为测试数据集在模型训练过程中未曾使用。

在这里插入图片描述

三、测试集评估模型存在的问题

1.评估模型流程

先设计出不同的线性回归模型,然后训练模型,通过w,b参数计算每个模型的测试误差J_test,比较所有模型的J_test值,选择误差最小的模型。例如,五阶模型的测试误差最小,则选择该模型。在这里插入图片描述

2.流程存在的问题

根据测试集的测试误差来选择多项式,可能会导致测试误差J_test过于乐观,因为你选择的模型是在测试数据上表现最好的模型,而这种表现并不一定能泛化到全新的数据上。

四、解决问题

1.训练集分割成三段

将训练集分成三个子集:训练集、交叉验证集和测试集。交叉验证集也称为验证集(validation set)或开发集(development set)。交叉验证集用来检查或信任检查不同模型的有效性和准确性。
在这里插入图片描述

2.计算交叉验证集的误差

同样,交叉验证集也计算均方误差成本函数,通过这三个误差衡量标准,可以进行模型选择。
在这里插入图片描述

五、重新评估模型

1.线性回归模型

依旧先拟合出10个模型,然后分别计算每个待选择模型在交叉验证集上的误差Jcv。选择交叉验证误差最低的模型作为最终模型。如果想知道该模型的泛化效果,可以计算该模型在测试集上的测试误差来判断泛化效果。
在这里插入图片描述

2.神经网络模型

例如拟合手写数字识别模型时,可以考虑几种不同规模的神经网络,训练不同的模型,得到各自的参数 w_1, b_1、w_2, b_2 、w_3, b_3 等。然后使用交叉验证误差Jcv来评估每个模型的性能。对分类问题,通常计算交叉验证集上错误分类样本的比例。选择交叉验证误差最低的模型作为最终模型。例如,如果第二个模型的交叉验证误差最低,则选择该模型。最终使用测试集评估选择的模型,以估计其泛化误差。确保在选择模型和拟合参数时不使用测试集,以避免信息泄露。

在这里插入图片描述

3.评估流程注意事项

在做出所有关于模型的决定(如选择参数和架构)时,只使用训练集和交叉验证集。只有在确定最终模型后,才使用测试集进行评估,确保测试集的公平性和模型泛化能力的准确估计。

总结

本篇初步引入了训练集、交叉验证集和测试集的概念,以及它们的误差如何计算。目前只是引入了简单的模型选择,即哪个模型的J_cv低就选谁。训练误差和交叉验证误差可以告诉你下一步该尝试什么来改进模型。它可以显示你是否存在高偏差(欠拟合)或高方差(过拟合)问题。下一篇描述什么是高方差和高偏差?

课后问答

quiz1

问题:在机器学习中,什么是诊断?
答案选项:

  • 测量学习算法在测试集(未训练的数据)上的表现。
  • 运行一个测试以了解学习算法的工作情况。
  • 机器学习在医学应用中的应用,目的是诊断病人的情况。
  • 通过多种方式快速改进算法以了解什么有效。

在这里插入图片描述
正确答案:运行一个测试以了解学习算法的工作情况。
解释:诊断是用来了解算法的工作情况并改进其性能的测试.(测试集的用途是评估模型的最终性能,而不是用于诊断和改进模型)。


quiz2

问题:在训练集上表现更好的算法在新数据上表现也会更好吗?是或否?
在这里插入图片描述
正确答案:否。
解释:如果模型对训练集过拟合,它可能在新数据上表现不好。过拟合的模型在训练数据上表现很好,但在新数据上泛化能力差。


quiz3

问题:对于分类任务,假设你使用三种不同的神经网络架构训练了三个模型。你使用哪种数据来评估这三个模型以选择最佳模型?
答案选项:

  • 测试集。
  • 所有数据——训练集、交叉验证集和测试集。
  • 交叉验证集。
  • 训练集。

在这里插入图片描述
正确答案:交叉验证集。
解释:使用交叉验证集计算交叉验证误差,以比较三个模型中的哪个最好。

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 15:10:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 15:10:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 15:10:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 15:10:03       18 阅读

热门阅读

  1. Websocket前端与后端:深度探索与实战应用

    2024-06-09 15:10:03       9 阅读
  2. 基于springboot的欢迪迈手机商城源码数据库

    2024-06-09 15:10:03       9 阅读
  3. Python Number(数字)

    2024-06-09 15:10:03       8 阅读
  4. web前端读书心得:探索技术的深度与广度

    2024-06-09 15:10:03       9 阅读
  5. 游戏心理学Day08

    2024-06-09 15:10:03       9 阅读
  6. web前端电影简介标签:深度解析与创意应用

    2024-06-09 15:10:03       12 阅读
  7. Android基础-事件分发机制

    2024-06-09 15:10:03       9 阅读
  8. Spring boot 集成Redis

    2024-06-09 15:10:03       11 阅读
  9. HTML实现进度条/加载框模版

    2024-06-09 15:10:03       9 阅读
  10. C++ 环形链表(解决约瑟夫问题)

    2024-06-09 15:10:03       10 阅读
  11. 前端高速成长的八个阶段

    2024-06-09 15:10:03       12 阅读
  12. Ethereum-Score-Hella怎么使用,举例说明

    2024-06-09 15:10:03       10 阅读
  13. Node.js 和 Vue 的区别的基本知识科普

    2024-06-09 15:10:03       10 阅读