过拟合与过拟合的经典例子

news2025/1/11 11:59:01
本站原创文章,转载请说明来自 《老饼讲解-机器学习》 ml.bbbdata.com

过拟合是机器学习中最常遇到的问题,本文解析什么叫过拟合

  01. 什么是过拟合  

本节通过概念解析与可视化例子,讲述什么是过拟合

     什么是过拟合    


过拟合是指在由于过度拟合训练数据,
导致模型过于复杂,以致于在测试数据上预测效果不好

 正因此,过拟合也称为缺失泛化能力

     过拟合例子    


常用于解析过拟合的有两个例子
 曲线拟合  


可以看到,过拟合时,模型虽然在训练数据上拟合得更好,但拟合出的曲线已经偏离了原本形态

    平面分类  
 


可以看到,过拟合时,模型虽然在训练数据上达到更好的效果,
但这种"更好的效果"是通过"勉强而为之"换取而来的,它对模型真实应用时有害无益

  02. 过拟合的具体例子解说  

这里我们展示一个曲线拟合中出现过拟合的实验例子,从而更深刻理解过拟合

   实验例子   


现有数据点如下:
 
 

我们用三次多项式 y=−0.1016�3+0.0175�2+0.9239�−0.1175y=−0.1016x3+0.0175x2+0.9239x−0.1175  对数据点拟合如下:
 

 
  蓝色为数据点,红色为多项式曲线
如果觉得还有些误差,不尽人意,
  还可以强行用10次多项式 把每个点都拟合到位(拉格朗日插值法),
 如下:
 可以看到,10次多项式对训练数据已经是0误差拟合
  虽然10次多项式对训练数据的拟合误差为0,但它却未必是我们想要的曲线
我们不妨把该10次多项式的曲线画出,如下:
 


可以看到整条拟合曲线非常的跌宕!
虽然它精确经过了每一个数据点,
但在非历史数据点上,预测效果反而不如3次多项式~!
这就是过拟合,也称为缺失泛化能力


   实验总结   


从这例子,我们看到了两个问题
强行拟合历史数据导致整体震荡    
 
由于强行拟合,导致函数在数据点之间剧烈震荡,失去了预测的效果
 
   强行拟合历史数据会复现不合理的错误
 
观察原始数据点,应该是一个三角函数sin的数据,
而在  x = -0.6 处,虽然数据点的 y 值是 -1.2,
但这实际上这更可能是一个采集错误的数据点
而10次多项式过于追求拟合,反而把这个错误数据点的错误也完美无遗的重现了出来
反观3次多项式,它兼顾了整体的平滑,成功忽略了这个错误点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1100086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

16 - 多线程调优(下):如何优化多线程上下文切换?

通过上一讲的讲解,相信你对上下文切换已经有了一定的了解了。如果是单个线程,在 CPU 调用之后,那么它基本上是不会被调度出去的。如果可运行的线程数远大于 CPU 数量,那么操作系统最终会将某个正在运行的线程调度出来,…

4.3 划分子网和构造超网

思维导图: 4.3.1 划分子网 **4.3 划分子网和构造超网笔记:** --- **4.3.1 划分子网** **1. 两级IP地址到三级IP地址的转变:** **关键点:** - **问题背景:** 早期的ARPANET对IP地址的设计存在不足: 1…

python 之f-strings 来格式化字符串

文章目录 当使用 f-strings 来格式化字符串时,可以在字符串中嵌入变量的值以及其他表达式的结果。以下是一些示例: 基本用法: name "Alice" age 30print(f"My name is {name} and I am {age} years old.")输出&#…

树莓派和arduino的恩恩怨怨

一、负责与树莓派互动的putty的会话经常断,不爽: 参考:【SSH】SSH自动断开连接的原因和解决办法|SSH保持长连接方法_ssh连上几秒就断开了_bandaoyu的博客-CSDN博客 用nano 1、修改 /etc/profile中改MOUT的值:export TMOUT0 ec…

Linux常见的指令合集

Linux指令合集 认识linuxlinux基础指令1.pwd 命令2. ls 命令3.cd 命令4. man 命令5. grep 命令6. ps 命令7. kill 命令8. netstat 命令9. date 查看当前系统时间10. echo 打印选项 -e linux文件操作指令1. mkdir 命令2. rmdir 命令3. touch 命令4. rm 命令5. mv 命令6. cp 命令…

【文件IO】文件系统的操作 流对象 字节流(Reader/Writer)和字符流 (InputStream/OutputStream)的用法

目录 1.文件系统的操作 (File类) 2.文件内容的读写 (Stream流对象) 2.1 字节流 2.2 字符流 2.3 如何判断输入输出? 2.4 reader读操作 (字符流) 2.5 文件描述符表 2.6 Writer写操作 (字符流) 2.7 InputStream (字节流) 2.8 OutputStream (字节流) 2.9 字节…

使用html2canvas将html转pdf,由于table表的水平和竖直有滚动条导致显示不全(或者有空白)

结果: 业务:将页面右侧的table打印成想要的格式的pdf,首先遇到的问题是table表上下左右都有滚轮而html2canvas相当于屏幕截图,那滚动区域如何显示出来是个问题? gif有点模糊,但是大致功能可以看出 可复制…

基于双级阈值及过零率的语音激活检测(VAD)

语音激活检测(Voice Activity Detection, VAD):也称为端点检测,目的就是要找到音频信号的开始和结束位置。 时域方法: 音量:只用音量来进行端点检测,是最简单的方法,但是会对清音造成误判。音…

C#,数值计算——分类与推理Gaumixmod的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Gaumixmod { private int nn { get; set; } private int kk { get; set; } private int mm { get; set; } private double…

力扣第17题 电话号码的字母组合 c++ 回溯 经典提升题

题目 17. 电话号码的字母组合 中等 相关标签 哈希表 字符串 回溯 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。…

Elasticsearch系列组件:Logstash强大的日志管理和数据分析工具

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

sqlserver系统存储过程添加用户学习

sqlserver有一个系统存储过程sp_adduser;从名字看是添加用户的;操作一下, 从错误提示看还需要先添加一个登录名,再执行一个系统过程sp_addlogin看一下, 执行完之后看一下,安全性-登录名下面有了rabbit&…

【ARM Coresight Debug 系列 -- Linux 断点 BRK 中断使用详细介绍】

文章目录 1.1 ARM BRK 指令1.2 BRK 立即数宏定义介绍1.3 断点异常处理流程1.3.1 el1_sync_handler1.3.2 el1_dbg 跟踪 1.4 debug 异常处理函数注册1.4.1 brk 处理函数的注册 1.1 ARM BRK 指令 ARMv8 架构的 BRK 指令是用于生成一个软件断点的。当处理器执行到 BRK 指令时&…

电脑办公助手之桌面便签,助力高效率办公

在现代办公的快节奏中,大家有应接不暇的工作,每天面对着复杂的工作任务,总感觉时间不够用,而且工作无厘头。对于这种状态,大家可以选择在电脑上安装一款好用的办公便签软件来辅助日常办公。 敬业签是一款专为办公人士…

android--屏幕适配

基础概念 像素密度 dpi ( √宽^2高^2 ) / 屏幕大小 手机分辨率 1080 * 1920 1080代表宽 1920代表高 单位为px像素 屏幕大小为英寸 标准的像素密度 mdpi 160dpi dp 密度无关像素 dp与px的转换 density (dpi / 16…

python 之enumerate()函数

文章目录 enumerate() 是 Python 中的一个内置函数,它用于在遍历可迭代对象(如列表、元组、字符串等)时同时获取每个元素的索引和值。这个函数非常有用,因为它允许您在迭代过程中轻松地访问元素的索引,而不需要手动维护…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 之前讲到了流程保存的时候还要看是否是自定义业务流程应用类型,若是保存的时候不再检查是否有关…

常见三维建模软件有哪些?各自的特点是什么?

常见的三维建模软件包括以下这些: 1. 3DS Max 3D Studio Max,简称3DS MAX,是当今世界上销售量最大的三维建模、动画及渲染软件。它的应用范围广泛,包括计算机游戏中的动画制作、影视片的特效制作等。3DS MAX的操作相对容易&#…

幸运的袋子(递归+回溯)

目录 一、题目 二、代码 一、题目 幸运的袋子__牛客网 二、代码 #include <iostream> #include <vector> #include <algorithm> using namespace std;static int _count 0; static int sum 0; static int product 1;void Combination(vector<int>…

JAVA学习(6)-全网最详细~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…