机器学习复习3--模型评估

误差与过拟合

 我们将学习器对样本的实际预测结果与样本的真实值之间的差异称为:误差(error)。

误差定义:

①在训练集上的误差称为训练误差(training error)或经验误差(empirical error)。
②在测试集上的误差称为测试误差(test error)。
③学习器在所有新样本上的误差称为泛化误差(generalization error)

        当学习器把训练集学得“太好”的时候,即把一些训练样本的自身特点当做了普遍特征;同时也有学习能力不足的情况,即训练集的基本特征都没有学习出来。
①学习能力过强,以至于把训练样本所包含的不太一般的特性都学到了,称为:过拟合(overfitting)。
②学习能太差,训练样本的一般性质尚未学好,称为:欠拟合(underfitting)。

训练集测试集划分

1.留出法
        将数据集D划分为两个互斥的集合,一个作为训练集S,一个作为测试集T,满足D=S∪T且S∩T=∅,常见的划分为:大约2/3-4/5的样本用作训练,剩下的用作测试。
2.交叉验证法
        将数据集D划分为k个大小相同的互斥子集,满足D=D1∪D2∪...∪Dk,Di∩Dj=∅(i≠j),同样地尽可能保持数据分布的一致性,即采用分层抽样的方法获得这些子集。

性能度量

1.均方误差

 在回归任务中,即预测连续值的问题,最常用的性能度量是“均方误差”(mean squared error),很多的经典算法都是采用了MSE作为评价函数

2.P/R/F1

对于二分类问题,分类结果混淆矩阵与查准/查全率定义如下:

        除了混淆矩阵,一般还会画“P-R曲线”

        P-R曲线定义如下:根据学习器的预测结果(一般为一个实值或概率)对测试样本进行排序,将最可能是“正例”的样本排在前面,最不可能是“正例”的排在后面,按此顺序逐个把样本作为“正例”进行预测,每次计算出当前的P值和R值,如下图所示:


  ①若一个学习器A的P-R曲线被另一个学习器B的P-R曲线完全包住,则称:B的性能优于A。

  ②若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。

  ③但一般来说,曲线下的面积是很难进行估算的,所以衍生出了“平衡点”(Break-Event Point,简称BEP),即当P=R时的取值,平衡点的取值越高,性能更优。

        P和R指标有时会出现矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure,又称F-Score。F-Measure是P和R的加权调和平均,即:

特别地,当β=1时,也就是常见的F1度量,是P和R的调和平均,当F1较高时,模型的性能越好。

3.ROC/AUC

        学习器对测试样本的评估结果一般为一个实值或概率,设定一个阈值,大于阈值为正例,小于阈值为负例,因此这个实值的好坏直接决定了学习器的泛化性能,若将这些实值排序,则排序的好坏决定了学习器的性能高低。

        ROC曲线正是从这个角度出发来研究学习器的泛化性能,ROC曲线与P-R曲线十分类似,都是按照排序的顺序逐一按照正例预测,不同的是ROC曲线以“真正例率”(True Positive Rate,简称TPR)为横轴,纵轴为“假正例率”(False Positive Rate,简称FPR),ROC偏重研究基于测试样本评估值的排序好坏。
        进行模型的性能比较时

①若一个学习器A的ROC曲线被另一个学习器B的ROC曲线完全包住,则称B的性能优于A。

②若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。

        ROC曲线下的面积定义为AUC(Area Uder ROC Curve),不同于P-R的是,这里的AUC是可估算的,即AOC曲线下每一个小矩形的面积之和。易知:AUC越大,证明排序的质量越好,AUC为1时,证明所有正例排在了负例的前面,AUC为0时,所有的负例排在了正例的前面。

比较检验

1 假设检验

        “假设”指的是对样本总体的分布或已知分布中某个参数值的一种猜想,例如:假设总体服从泊松分布,或假设正态总体的期望u=u0。

2.交叉验证T检验

        比较两个学习率的性能。

3.McNemar检验

        MaNemar主要用于二分类问题,与成对t检验一样也是用于比较两个学习器的性能大小。主要思想是:若两学习器的性能相同,则A预测正确B预测错误数应等于B预测错误A预测正确数,即e01=e10,且|e01-e10|服从N(1,e01+e10)分布。

偏差与方差

①偏差指的是预测的期望值与真实值的偏差

②方差则是每一次预测值与预测值得期望之间的差均方。

        实际上,偏差体现了学习器预测的准确度,而方差体现了学习器预测的稳定性。通过对泛化误差的进行分解,可以得到:

期望泛化误差=方差+偏差
偏差刻画学习器的拟合能力
方差体现学习器的稳定性

        在欠拟合时,偏差主导泛化误差,而训练到一定程度后,偏差越来越小,方差主导了泛化误差。因此训练也不要贪杯,适度辄止。

参考: https://www.heywhale.com/mw/project/5e4f89fb0e2b66002c1f6468

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

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

相关文章

Docker 镜像上传到 AWS ECR:从构建到推送的全流程

一、在 EC2 实例中安装 Docker(适用于 Amazon Linux 2) 步骤 1:连接到 EC2 实例 ssh -i your-key.pem ec2-useryour-ec2-public-ip步骤 2:安装 Docker sudo yum update -y sudo amazon-linux-extras enable docker sudo yum in…

MobileNet 改进:基于MobileNetV2和SSPP的图像分类

1.创新点分析 在计算机视觉领域,高效的图像分类模型一直是研究热点。 本文将详细解析一个结合了MobileNetV2和空间金字塔池化(SSPP)的深度学习模型实现。 模型概述 这个代码实现了一个轻量级但功能强大的图像分类器,主要包含两个核心组件: MobileNetV2作为特征提取器 自定…

Java中List的forEach用法详解

在 Java 中,List.forEach() 是 Java 8 引入的一种简洁的遍历集合元素的方法。它基于函数式编程思想,接受一个 Consumer 函数式接口作为参数,用于对集合中的每个元素执行操作。 基本语法 java 复制 下载 list.forEach(consumer); 使用示…

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…

计算机视觉与深度学习 | 基于MATLAB的相机标定

基于MATLAB的相机标定:原理、步骤与代码实现 相机标定 基于MATLAB的相机标定:原理、步骤与代码实现MATLAB相机标定完整流程1. 准备工作2. 采集标定图像3. 导入图像并检测角点4. 生成世界坐标5. 执行相机标定6. 分析标定结果7. 应用标定结果校正图像相机标定关键概念相机参数类…

物联网专业核心课程以及就业方向

物联网专业作为信息技术与产业应用深度融合的交叉学科,其课程体系覆盖硬件、软件、网络、数据等全链条技术,就业方向则随智能技术普及呈现多元化趋势。以下是基于最新行业动态与教育实践的系统分析: 📚 一、物联网专业核心课程体系…

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…

线性代数证明:把行列式的某一行(列)的k倍加到另一行(列),行列式的值不变

线性代数证明 把行列式的某一行&#xff08;列&#xff09;的k倍加到另一行&#xff08;列&#xff09;&#xff0c;行列式的值不变&#xff1a; 注意五角星的位置要用到另一条性质&#xff1a;若行列式的某一行&#xff08;列&#xff09;的元素都是两数之和&#xff0c;则可以…

webrtc 在线测试, 如何在线拉流测试

1. 如下所示&#xff0c;使用腾讯提供的网页即可&#xff0c;非常赞&#xff0c;测试直播拉流 webrtc协议 WebRTC Player Demo 2.截图&#xff1a;

基于Flask前后端分离智慧安防小区系统

基于Flask前后端分离智慧安防小区系统 本项目是一个基于前后端分离架构的智慧安防小区管理系统&#xff0c;采用现代化的技术栈和完善的功能设计&#xff0c;旨在提供一个高效、安全的小区管理解决方案。 技术架构 前端技术栈 基于Vue 3框架开发参考Geeker-Admin项目的基础…

深入解析 Linux 死锁:原理、原因及解决方案

深入解析 Linux 死锁&#xff1a;原理、原因及解决方案 目录 **深入解析 Linux 死锁&#xff1a;原理、原因及解决方案**前言&#xff1a;一次凌晨 3 点的 “服务器崩溃”&#xff0c;揭开死锁的致命性一、死锁的基础&#xff1a;资源与竞争的 “导火索”1.1 资源&#xff1a;死…

C学习--内存管理

#灵感# 当计算机执行一个程序时&#xff0c;必须有一种方法来存储程序本身和运算所得的数据。 总的来讲&#xff0c;计算机硬件中任何能够存储和检索信息的部分都是存储设备。当前运行的程序存放的存储器称为主存储器&#xff08;primary storage&#xff09;&#xff0c;常常…

使用 Docker Compose 安装 PostgreSQL 16

前面是指南&#xff0c;后面是实际工作日志。 1. 创建 docker-compose.yml 文件 yaml 复制 下载 version: 3.9 services:postgres:image: postgres:16container_name: postgres-16environment:POSTGRES_USER: your_username # 替换为你的用户名POSTGRES_PASSWORD: your…

从数据报表到决策大脑:AI重构电商决策链条

在传统电商运营中&#xff0c;决策链条往往止步于“数据报表层”&#xff1a;BI工具整合历史数据&#xff0c;生成滞后一周甚至更久的销售分析&#xff0c;运营团队凭经验预判需求。当爆款突然断货、促销库存积压时&#xff0c;企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…

SpringBoot 自动化部署实战:CI/CD 整合方案与避坑指南

引言 在微服务架构盛行的今天&#xff0c;SpringBoot 凭借其开箱即用的特性成为 Java 后端开发的主流框架。然而&#xff0c;随着项目规模扩大&#xff0c;手动部署的效率瓶颈逐渐显现。本文将结合 GitLab CI/CD、Jenkins 等工具&#xff0c;深入探讨 SpringBoot 项目的自动化部…

力扣HOT100之二分查找:35. 搜索插入位置

这道题属于是二分查找的入门题了&#xff0c;我依稀记得一些二分查找的编码要点&#xff0c;但是最后还是写出了一个死循环&#xff0c;无语(ˉ▽ˉ&#xff1b;)…又回去看了下自己当时的博客和卡哥的视频&#xff0c;这才发现自己分情况只分了两种&#xff0c;最后导致死循环…

VS创建Qt项目,Qt的关键字显示红色波浪线解决方法

如图所示&#xff0c;VS2017新创建的Qt项目&#xff0c;编译正常&#xff0c;关键字显示识别失败&#xff0c;显示红色波浪线&#xff0c;编译运行没问题。 解决方法&#xff1a; 如下图所示&#xff0c;C/C -> 常规 -> 附加包含目录 ->添加Qt的Include路径 如下图…

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…