首页 > 编程语言 >对于分类算法来说,过拟合到底是什么?

对于分类算法来说,过拟合到底是什么?

时间:2024-12-02 13:00:45浏览次数:9  
标签:误差 泛化 训练 模型 分类 算法 拟合 决策树

过拟合问题:

训练误差(training error) & 泛化误差( generalization error)

通常,对于分类算法可能产生两种类型的误差:训练误差& 泛化误差。

  • 训练误差:就是你的模型,对于现有的训练样本集,他们之间的拟合程度;

  • 泛化误差:就是你模型的泛化能力。就是对于新的样本数据的分类能力是怎么样的。

好的分类模型,它的训练误差 & 泛化误差都比较低。

  • 如果,模型的训练误差比较高,那么这个模型就是欠拟合(under-fitting),就是对于训练样本的拟合程度不够;

  • 如果,模型的训练误差低,但是泛化误差比较高,那么这个模型就是过拟合(overfitting):就是过度拟合训练数据,导致模型的泛化能力,反而随着模型与训练数据的拟合程度增高而下降。

对于欠拟合问题,可以通过增加分类属性的数量、选取合适的分类属性等方法,提高模型对于训练样本的拟合程度。但是要注意,随着分类模型对于样本的拟合程度逐渐增加,当决策树深度达到一定值的时候,即使训练误差仍在下降,模型的泛化误差却会不断升高,产生过拟合现象。


例子:过拟合问题

上面的表格:对口罩销售定价,进行分类的训练样本集。表里的属性包括:口罩的功能、是否为纯色。

 

 

下面的表格:是另一组口罩数据,要使用这一组数据作为测试样本集。

 

 

如果把两个属性全部用来构建决策树,就可以得到一个3层的决策树(下图)。可以发现, 3层决策树能够很好地拟合训练样本集中的数据,它的训练误差为0。但是,如果使用测试样本,对这个3层决策树进行测试,会误差高达2/5。

这时候,你可以再构建一个2层的决策树。这个决策树,不强求对于训练数据的拟合程度(下图)。然后,你会发现2层的决策树,对于测试样本集的表现,反而明显好于之前的3层决策树。

这就是一个简单的过拟合的例子。


总结:

下图:决策树误差曲线:

绿线:泛化误差;

红线:训练误差。

要在决策规模等于700的时候(红色直线),及时止损(此时泛化误差开始变大)。


泛化误差的估计方法

为什么我们要用“估计”这个词呢?

因为在建立分类模型的过程中,我们只用到数据集,可以得到训练误差。但是暂时无法知道真正的泛化误差。所以我们在建立过程中只能“估计”一下泛化误差大概是多少。

注意:这个过程还需要同时考虑模型的复杂度。因为现在公认的一个知识是:模型越复杂,往往包含的附加条件越多,就是那些越可能造成过拟合的因素,就会越多


泛化误差的估计方法,主要有:训练误差估计、结合模型复杂度、估计统计上限、使用检验集等。

① 训练误差估计

训练误差估计:就是选择最低训练误差的模型,作为最终模型。

但是,这种方法的结果,通常是一种很差的估计。

 

② 结合模型复杂度估计

奥卡姆剃刀(Occam's razor):

奥卡姆剃刀是很直观的原则,它的定义是:如果有两个有相同泛化误差的模型,你就要选择简单的模型,而不是复杂的模型。

 

把模型复杂度和分类模型评估,结合在一起的方法有两种:悲观误差评估(pessimistic error estimate)和最小描述长度原则(Minimum Description Length,MDL)。

 

  • 悲观误差评估:使用训练误差e和模型复杂度惩罚项 Ω 的和来估计泛化误差。

  • 最小描述长度原则:对于一组数据,如果要对它进行保存,为了节省空间,一般采用某种模型对数据进行编码压缩。然后,再保存压缩后的数据。

 

之后,如果想要正确恢复这些数据,需要把用于编码压缩的模型也保存起来。

最小描述长度要做的事情就是:选择“恰当”的模型,使数据总描述长度最小。

 

③估计统计上限

估计统计上限:依据多个训练误差形成的分布,选取统计结果的上限值,来作为模型的泛化误差。

 

④ 使用检验集

这个方法就是把原始的训练数据集,分为两个较小的子集(训练集和确认集)。

比如:2/3用于训练,1/3用于误差估计。

 

要注意:这时候,你用于训练的样本会变少。有时候也会产生问题。

所以,没有完美的办法。

标签:误差,泛化,训练,模型,分类,算法,拟合,决策树
From: https://blog.csdn.net/AveryHzzz/article/details/144084706

相关文章

  • 【老生谈算法】matlab实现基于光学图像加密解密技术研究及实现——光学图像加密
    MATLAB实现基于光学图像加密解密技术研究及实现1、全套下载:本项目完整讲解和全套实现源码见下资源,有需要的朋友可以点击进行下载说明文档(点击下载)本算法文档【老生谈算法】matlab实现光学图像加密解密技术研究及实现更多matlab算法原理及源码详解可点击下方文字直达:500......
  • 【老生谈算法】matlab实现基于K-Means聚类、Transformer与Bi-LSTM的智能优化算法在电
    MATLAB实现基于K-Means聚类、Transformer与Bi-LSTM的智能优化算法在电力负荷预测中的应用1、全套下载:本项目完整讲解和全套实现源码见下资源,有需要的朋友可以点击进行下载说明文档(点击下载)本算法文档【老生谈算法】matlab实现基于K-Means聚类、Transformer与Bi-LSTM的智......
  • 回溯算法简介
    基本思想递归:使用递归的方式实现选择:从根节点开始,逐层搜索树的节点,沿着某一路径深入搜索探索:在搜索的过程中,当遇到一个节点,需要判断是否需要继续搜索该节点的子节点回溯:当探索到某条路径的末尾(树的叶子节点)时或者不满足要求时需要回退到上一个节点特点系统性:对问题的搜索......
  • 神经网络入门实战:(九)分类问题 → 神经网络模型搭建模版和训练四步曲
    (一)神经网络模型搭建官方文档每一层基本都有权重和偏置,可以仔细看官方文档。pytorch官网的库:torch.nn—PyTorch2.5documentationContainers库:用来搭建神经网络框架(包含所有的神经网络的框架);特征提取:ConvolutionLayers:用来搭建卷积层;Poolinglayers:用来搭建池......
  • 2.基本算法
    1.二分与三分二分lower_bound和upper_bound在从小到大的排好序的数组中,在数组的[begin,end)区间中二分查找第一个大于等于(大于)大于value的数,找到返回该数字的地址,没找到则返回endlower_bound(begin,end,value); //>=upper_bound(begin,end,value); //>拓展:......
  • 11.29深度学习_过拟合欠拟合批量、标准化
    八、过拟合与欠拟合​在训练深层神经网络时,由于模型参数较多,在数据量不足时很容易过拟合。而正则化技术主要就是用于防止过拟合,提升模型的泛化能力(对新数据表现良好)和鲁棒性(对异常数据表现良好)。1.概念认知这里我们简单的回顾下过拟合和欠拟合的基本概念~1.1过拟合......
  • 分类算法学业警示管理系统|Java|SSM|JSP| 前后端分离
    【重要1⃣️】前后端源码+万字文档+部署文档            【包含内容】【一】项目提供非常完整的源码注释【二】相关技术栈文档【三】源码讲解视频                     【其它服务】【一】可以提供远程......
  • Java面试要点54 - Java List的二分查找算法
    文章目录一、引言二、二分查找的基本原理三、JavaCollections工具类中的二分查找四、自定义比较器的二分查找实现五、处理特殊情况六、性能优化与最佳实践七、总结一、引言在Java程序开发中,查找操作是一个非常基础且关键的算法需求。其中,二分查找(BinarySearch)......
  • 深入 HarmonyOS Next 安全机制之加密算法
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)中加密算法相关技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。第一章:加密算法原理剖析一......
  • 【人人都能学得会的NLP - 文本分类篇 05】使用LSTM完成情感分析任务
    【人人都能学得会的NLP-文本分类篇05】使用LSTM完成情感分析任务NLPGithub项目:NLP项目实践:fasterai/nlp-project-practice介绍:该仓库围绕着NLP任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验AI藏经阁:https://gitee.com/faste......