当前位置: 首页 > news >正文

过拟合、验证集、交叉验证

过拟合

简单描述:训练集误差小,测试集误差大,模型评估指标的方差(variance)较大;
判断方式
1、观察 train set 和 test set 的误差随着训练样本数量的变化曲线。
2、通过training accuracy 和 test accuracy 数值大小,直观的判断模型是否过拟合。
过拟合原因:数据,模型。 1、模型复杂度过高 2、训练数据过少 3、数据噪声较大
如果,数据质量较高,并且呈现出某种特有的“规律”,那么对于新数据,模型具有非常好的泛化能力。
解决方式
1、重新清洗数据(删除稀疏特征、对噪声数据进行处理)
2、重新采样(改变采样方法等)
3、增加训练数据
4、采用交叉验证训练模型
5、重新筛选特征
6、降低模型复杂度(增加正则项:L1、L2)
7、dropout (让神经元一定概率不工作)。

你真的了解交叉验证和过拟合吗?

验证集

作用1、评估模型效果 2、调整超参数
调整超参数: 调整模型参数,需要用到训练集,测试集最终评估;
调整模型参数,训练集,调整超参数,验证集,测试集最终评估。
多一种参数调节,多一种验证集,不调超参数就不用验证集。
评估模型效果
观察验证集准确率收敛情况,及时终止。
虽然也可以观察拟合情况,但很多时候未必有用。因为你的验证集毕竟出自训练集
(训练集=子训练集+验证集),训练集里的噪音验证集也一并继承,所以你有时可能会发现这样一种情况:训练集和验证集准确率都非常高(90%以上),测试集却低得惊掉下巴。

深度学习的验证集怎么用?

交叉验证

核心思想:对数据集进行多次划分,对多次评估的结果取平均,从而消除单次划分时数据划分得不平衡而造成的不良影响。因为这种不良影响在小规模数据集上更容易出现,所以交叉验证方法在小规模数据集上更能体现出优势。
交叉验证不同作用时方式不同
1、模型选择,即选择超参数
方式:数据集需要划分成训练集、验证集、测试集三部分,训练集和验证集的划分采用N折交叉的方式。
过程:
首先在训练集和验证集上对多种模型选择(超参数选择)进行验证,选出平均误差最小的模型(超参数)。选出合适的模型(超参数)后,可以把训练集和验证集合并起来,在上面重新把模型训练一遍,得到最终模型,然后再用测试集测试其泛化能力。
(这个验证集是不是只需要在训练完成之后,最后验证一下得到精度,而不需要每训练几个epoch,验证一次,选择中间验证精度最高的。)
台大李宏毅《机器学习》课程 Lec2 ”where does the error come from“
2、模型评估
模型是确定的,没有多个候选模型需要选,只是用交叉验证的方法来对模型的performance进行评估。
数据集被划分成训练集、测试集两部分,训练集和测试集的划分采用N折交叉的方式。
这种情况下没有真正意义上的验证集,可以叫做”交叉测试“。
在这里插入图片描述
交叉验证与过拟合的关系
1、当用交叉验证进行模型选择时,可以从多种模型中选择出泛化能力最好的(即最不容易发生过拟合)的模型。从这个角度上讲,交叉验证是避免发生过拟合的手段。
2、当用交叉验证进行模型评估时,交叉验证不能解决过拟合问题,只能用来评估模型的performance。

交叉验证优缺点
优点:获得对模型更合理更准确的评估,尤其是数据集很小时,更能体现出这个优势。
缺点:增加了计算量。

N折交叉验证的作用(如何使用交叉验证)

http://www.lryc.cn/news/42181.html

相关文章:

  • 原力计划来了【协作共赢 成就未来】
  • 一文了解Jackson注解@JsonFormat及失效解决
  • webpack——使用、分析打包代码
  • libvirt零知识学习5 —— libvirt源码编译安装(3)
  • Nmap 的使用教程
  • async与await异步编程
  • 移动应用架构设计:如何转变开发流程
  • NX二次开发 图层函数总结
  • windows微服务部署
  • Java四种内部类(看这一篇就够了)
  • 蓝桥杯刷题第二十天
  • 如何通过命令行查看CentOS版本信息和linux系统信息
  • oracle查询表空间大小以及每个表所占空间的大小
  • C语言通讯录应用程序:从设计到实现
  • 银河麒麟v10sp2安装nginx
  • 华为笔试题OD
  • Win10+Anconda安装.whl文件到指定环境——以pycocotools为例
  • 全自动托盘四向穿梭车|拥有输送系统提升机AGV的托盘四向穿梭车立体库的软硬件配置系统
  • 【Linux】进程概念二
  • 如何用C语言实现渣男通讯录
  • 【从零开始的C语言】操作符详解
  • 黑马在线教育数仓实战1
  • python中pandas模块数据处理小案例
  • 从 X 入门Pytorch——Tensor的自动微分、计算图,常见的with torch.no_grad()机制
  • 三十七、实战演练之接口自动化平台的文件上传
  • 菜鸟刷题Day1
  • cjson文件格式介绍
  • 【Nginx二】——Nginx常用命令 配置文件
  • 3月最新!AIGC公司生态地图;开发者实用ChatGPT工具清单;上手必会的SD绘图教程;字幕组全自动化流程大公开 | ShowMeAI日报
  • python - 递归函数