机器学习---经验误差与过拟合、方差与偏差、性能度量、比较检验

1. 经验误差与过拟合

第三张图建立的模型,在训练集中通过x可以很好的预测y,然而我们不能预期该模型能够很好的预

测集外的数据,换句话说,这个模型没有很好的泛化能力。

第一张图建立了一个线性模型,但是该模型并没有精确地捕捉到训练集数据的结构,我们称具有第

一张图较大的偏倚(bias),也称欠拟合。

第三张图通过5次多项式函数很好的对样本进行了拟合,然而,如果将建立的模型进行泛化,并不

能很好的对训练集之外的数据进行预测,也称过拟合。

机器学习的主要挑战在于在未见过的数据输入上表现良好,这个能力称为泛化能力

(generalization)。

误差:学习器实际预测输出与样本真实输出的差异。

训练集误差:训练误差

训练集的补集:泛化误差

测试集误差:测试误差

我们希望得到泛化误差小的学习器。

过拟合:训练过度使泛化能力下降。

欠拟合:未能学好训练样本的普遍规律。

过拟合是机器学习的关键障碍,且不可避免。

模型误差包含了数据误差,或者说模型信息中包含了噪声。

过拟合的例子:比如在考试之前,有人采取题海战术,把每个题目都背下来,但是题目变化就答

不上来,因为这种方法并没有抽象出一般的规则。

 训练集S和测试集T组成数据集D。

假设测试样本是从真实分布中采样而得,避免因数据划分引入偏差。

测试集应与训练集互斥。

学习器泛化评估的测试方法:

2. 方差与偏差

想象你开着一架直升机,攻击地面上一只敌军部队,于是你连打数十梭子,结果有一下几种情况:

1. 子弹基本上都打在队伍经过的一棵树上了,这就是方差小(子弹打得很集中),偏差大(跟目的

相距甚远)。

2. 子弹打在了树上,石头上,花花草草也都中弹,但是敌军安然无恙,这就是方差大(子弹到处都

是),偏差大(同1)。

3. 子弹打死了一部分敌军,但是也打偏了些打到花花草草了,这就是方差大(子弹不集中),偏差

小(已经在目标周围了)。

4. 子弹一颗没浪费,每一颗都打死一个敌军,跟抗战神剧一样,这就是方差小(子弹全部都集中在

一个位置),偏差小(子弹集中的位置正是它应该射向的位置).

3. 性能度量

性能度量(performance measure):衡量模型泛化能力的评价标准。

回归:均方误差

分类:错误率和精度

混淆矩阵(confusion matrix):

 查准率P与查全率R:

 P-R曲线面积与平衡点:

F1度量: 

ROC(受试者工作特征曲线):

考虑ROC曲线图中的四个点和一条线。(见下图)

第一个点,(0,1),即FPR=0,TPR=1,这意味着FN(false negative) =0, 并且FP 

(false positive) =0。 这是一个完美的分类器,它将所有的样本都正确分类。

第二个点,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因

为它成功避开了所有的正确答案。

第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP (true positive)=0,可以

发现该分类 器预测所有的样本都为负样本(negative)。

第四个点(1,1),分类器实际上预测所有的样本都为正样本。

经过以上的分析,我们可以断言,ROC曲线越接近左上角,该分类器的性能越好。

根据下图,将每个测试样本属于正样本的概率值从大到小排序。图中共有20个测试样本,“Class”

一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属

于正样本的概率。

接下来,从高到低,依次将“Score”值作为阈值。

当测试样本属于正样本的概率大于或等于这个阈值时,我们认为它为正样本,否则为负样本。

举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,

因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。

每次选取一个不同的阈值,我们就可以得到一组FPR和TPR,即ROC曲线上的一点

 

 4. 比较检验

统计假设检验(hypothesis test):根据测试错误率估计推断泛化错误率的分布。

提出假设→找到符合某种概率分布的中间变量→利用该概率分布确定在某个置信度(confidence)

下是否接受该假设。

单个学习器的情况:

做了多次留出法或者交叉验证法之后,会有多个测试误差率,此时使用”t检验“(t-test)来检验单

个学习。

根据预先设定的显著度α,以及自由度k-1,查表可得临界值b,如果Tt小于临界值b则接受,否则,

拒绝。

一个数据集多个学习器:

对一组样本D,进行k折交叉验证,会产生k个测试误差率,将两个学习器都分别在每对数据子集上

进行训练与测试,会分别产生两组测试误差率,对每对结果求差值。若两个学习器的性能相同,则

相对应的两个误差率的差值应该为0。先计算出差值的均值μ与方差σ^2,在显著度α下,若变量根

据预先设定的显著度α,以及自由度k-1,查表可得临界值b,若Tt小于临界值则接受,否则拒绝。

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 301 https跳转后出现跨域和混合内容问题 —— 筑梦之路

问题 在浏览器地址栏敲入url访问静态资源目录时,发现默认跳转到了http协议的地址 如上图所示,客户端https请求先到达API网关,然后网关将请求通过http协议转发到静态资源服务器。 调出浏览器发现客户端发送的https请求收到了一个301状态码的响…

nodejs+vue+elementui学习交流和学习笔记分享系统

Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 前端技术:nodejsvueelementui,视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互,从而使得用户在点击网页进…

Kotlin 协程 CoroutineScope

协程定义: 19年官方是这样说的:协程是轻量级的线程,协程就是 Kotlin 提供的一套线程封装的 API; 现在官方是这样说的:协程是一种并发设计模式; 协程作用: 1.处理耗时任务; 2.保…

Kotlin 新版本 1.9.0重要更新预览

释放 Kotlin 新版本 1.9.0 的强大功能 1. Kotlin K2编译器用于多平台 对K2编译器进行了进一步的改进,使其更加稳定。K2编译器针对JVM目标现已进入Beta版本,并且也可以在多平台项目中使用。 您可以通过将K2配置添加到项目的gradle.properties中&#x…

九、数据结构——顺序队列中的循环队列

目录 一、循环队列的定义 二、循环队列的实现 三、循环队列的基本操作 ①初始化 ②判空 ③判满 ④入队 ⑤出队 ⑥获取长度 ⑦打印 四、循环队列的应用 五、全部代码 数据结构中的循环队列 在数据结构中,队列(Queue)是一种常见的线性数据结…

pytest+allure运行出现乱码的解决方法

pytestallure运行出现乱码的解决方法 报错截图: 这里的截图摘自 悟翠人生 小伙伴的https://blog.csdn.net/weixin_45435918/article/details/107601721一文。 这是因为没有安装allure运行环境或者没有配置allure的环境变量导致,解决方案: 1…

Vue移动端项目--瑞幸咖啡重构优化

来了客官,好久不见! 从年初开始,就有个想法,想着把之前做过的项目重新整理一下。毕竟今时不同往日,从现在的角度去看曾经做过的项目,倒是觉得有很多稚嫩的地方。毕竟无论做什么都是熟能生巧,由浅…

深度学习推理和训练

优化和泛化 深度学习的根本问题是优化和泛化之间的对立。 • 优化(optimization)是指调节模型以在 训练数据 上得到最佳性能(即机器学习中的学习)。 • 泛化(generalization)是指训练好的模型在 前所未…

2023JAVA 架构师面试 130 题含答案:JVM+spring+ 分布式 + 并发编程》...

此文包含 Java 面试的各个方面,史上最全,苦心整理最全 Java 面试题目整理包括基JVM算法数据库优化算法数据结构分布式并发编程缓存等,使用层面广,知识量大,涉及你的知识盲点。要想在面试者中出类拔萃就要比人付出更多的…

nginx怎么做负载均衡

Nginx怎么做负载均衡 Nginx 是一个高性能的开源反向代理服务器,可以用于实现负载均衡。负载均衡指的是将用户请求平均分配给多个服务器,以提高整体系统性能和可靠性。下面是一个详细介绍如何使用 Nginx 实现负载均衡的步骤: 步骤 1&#xf…

【Nodejs】Node.js简介

1.前言 Node 的重要性已经不言而喻,很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外,目前最为流行的 Web 开发模式是前后端分离的形式,即前端开发者与后端开发者在自己喜…

提升Web3安全性和用户体验:元事务和加密技术的应用

在Web3中,去中心化应用程序(DApps)是一种基于区块链技术的应用程序,它们通过智能合约实现透明、安全、去中心化的业务逻辑。然而,DApps的使用门槛比传统的中心化应用程序更高,需要用户具备一定的技术知识&a…

工厂能耗管理系统解决方案

1、概述 随着碳达峰、碳中和成为政府工作主要任务,工厂作为能耗密集,用能情况较为复杂的大型建筑,有效的降低能源消耗,减少能源成本,避免用能过程中的“跑冒滴漏”现象,实施能效综合考评是个非常必要的管理…

C语言学习笔记 VScode设置C环境-06

目录 一、下载vscode软件 二、安装minGW软件 三、VS Code安装C/C插件 3.1 搜索并安装C/C插件 3.2 配置C/C环境 总结 一、下载vscode软件 在官网上下载最新的版本 Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/download 二、安装minGW…

添加USB转串口设备驱动-迅为i.MX8M开发板

对于通过 USB 接口访问的模块,在 Linux 内核中集成 USB 驱动程序。我们需要配置内核选中支持 GSM 和 CDMA 模块的 USB 转串口驱动 > Device Drivers -> USB support (USB_SUPPORT [y]) -> USB Serial Converter support (USB_SERIAL [y]) -> USB driver…

2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析

2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析 相关链接 【2023 年第二届钉钉杯大学生大数据挑战赛初赛】 初赛 A:智能手机用户监测数据分析 问题一Python代码分析 【2023 年第二届…

day42-servlet下拉查询/单例模式

0目录 1.Servlet实现下拉查询(两表) 2.单例模式 1.实战 1.1 创建工程,准备环境... 1.2 接口 1.3 重写方法 1.4 servlet 1.5 list.jsp list.jsp详解 2.单例模式 2.1 饿汉模式:在程序加载时直接创建对象&#…

基于SpringBoot+Vue的摄影跟拍预定管理系统设计与实现(源码+lw+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

fastadmin 项目gitee管理

gitee创建一个仓库使用sourcetree等工具拉取代码使用phpstorm远程同步代码到本地设置忽略代码文件 注意:如果是直接把远程代码同步到本地,默认是你在 .gitignore中设置是无效的,代码一样会提交,需要先使用上面的截图去掉缓存&…