机器学习——模型评估

2023-10-26

  • 在学习得到的模型投放使用之前,通常需要对其进行性能评估。为此,需使用一个“测试集”(testing set)来测试模型对新样本的泛化能力,然后以测试集上的“测试误差( tootino error)作为泛化误差的近似。

  • 我们假设测试集是从样本真实分布中独立采样获得,所以测试集要和训练集中的样本尽量互斥。

  • 给定一个已知的数据集,将数据集拆分成训练集S和测试集T,通常的做法包括留出法、交叉验证法、自助法。

  1. 留出法:

√直接将数据集划分为两个互斥集合

√训练/测试集划分要尽可能保持数据分布的一致性

√一般若干次随机划分、重复实验取平均值

√训练/测试样本比例通常为2:1~4:1

  1. 交叉验证法:

将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10。

  1. 交叉验证法:

将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10。

  1. 与留出法类似,将数据集D划分为k个子集同样存在多种

划分方式,为了减小内样本划分→丹八的左A折交叉验证通常随机使用不同的划分重复p次,最终的

评估结果是这p次k折交叉验证结果的均值,例如常见的“10次10折交叉验证”。

  1. 自助法:

以自助采样法为基础,对数据集D有放回采样m次得到训练集D',D \D'用做测试集

√实际模型与预期模型都使用m个训练样本

√约有1/3的样本没在训练集中出现,用作测试集√从初始数据集中产生多个不同的训练集,对集成学习有很大的好处

√自助法在数据集较小、难以有效划分训练/测试集时很有用;

由于改变了数据集分布可能引入估计偏差,在数据量足够时,留出法和交叉验证法更常用。

所谓评估指标就是衡量稳型之化能力分1的广向的步仕结果任务需求;

使用不同的评估指标往往会导致不同的评估结果。

在分类预测任务中,给定测试样例集,评估分类模型的性能就是把对每一个待测样本的分类结果和它的真实标记比较。

因此,准确率和错误率是最常用的两种评估指标:

√准确率就是分对样本占测试样本总数的比例

√错误率就是分错样本占测试样本总数的比例

由于准确率和错误率将每个类看的同等重要,因此不适合用来分析类不平衡数据集。在类不平衡数据集中,正确分类稀有类比正确分类多数类更有意义。此时查准率和查全率比准确率和错误率更适合。对于二分类问题,稀有类样本通常记为正例,而多数类样本记为负例。统计真实标记和预测结果的组合可以得到如下所示的混淆矩阵:

查准率(P)就是被分为正类的样本中实际为正类的样本比例:

P=TP/(TP+FP)

查全率(R)就是实际为正类的样本中被分为正类的样本比例:

R=TP/(TP+FN)

可见,查准率是被分类器分为正类的样本中实际为正类的比例;而查全率是被分类器正确分类为正类的比例。二者通常是矛盾的。查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。为综合考虑查准率和查全率,它们的调和均值F1度量被提出︰

β=1∶标准的F1

β>1∶偏重查全率

β<1∶偏重查准率

真正率(TPR)就是被分为正类的正样本比例:

TPR=TP/(TP+FN)

假正率(FPR)就是被分为正类的负样本比例:

FPR=FP/(FP+TN)

若某个分类器的ROC曲线被另一个分类器的曲线“包住”,则后者性能优于前者;否则如果曲线交叉,可以根据ROC曲线下面积的大小进行比较,即AUC (AreaUnder ROC Curve)

其中,n0和n1分别表示反例和正例的个数,ri分别为第i个反例(-)在整个测试样例中的排序。

AUC度量了分类器预测样本排序的性能。

CLL度量了分类器预测样本类成员概率的性能。

关于性能比较:

√测试性能并不等于泛化性能

√测试性能会随着测试集的变化而变化

√很多机器学习算法本身有一定的随机性

直接选取相应评估方法在相应度量下比大小的方法不可取!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习——模型评估 的相关文章

随机推荐

  • “40道高频区块链面试题”——我的一些看法

    最近看到了一篇文章如下 超强攻略 40道高频区块链面试题大放送 年底跳槽看过来 地址我也贴出来吧 https mp weixin qq com s 3Fa2XG4R11QDfMSAaBCngw 哦 CSDN的地址也出来了 https blo
  • vscode好用的前端插件和快捷键

    用到好用的vscode插件 总结一下 文章目录 一 常用主题 1 Material Theme主题 2 Community Material Theme主题 3 vscode icons 二 基础插件 1 Code Spell checke
  • java生成二维码图片(有logo),并在图片下方附文字

    logo配置类 Created by Amber Wang on 2017 11 27 17 25 import java awt public class LogoConfig logo默认边框颜色 public static final
  • 【数据结构】 实现 堆 结构 ---超细致解析

    目录 二叉树的性质 二叉树的存储结构 顺序存储 链式存储 堆的概念和性质 堆的实现 堆的初始化 堆的插入 向上调整函数 堆的删除 向下调整函数 向上建堆 向下建堆 TopK问题 二叉树的性质 在我们实现堆之前我们要知道堆的实现是依靠的是二叉
  • C# Thread启动线程时传递参数

    目录 1 不带参数 使用ThreadStart 2 带一个参数 使用ParameterizedThreadStart 3 带多个参数 1 不带参数 使用ThreadStart private void funcName public voi
  • Java反射学习记录

    一 反射概述 反射允许程序在运行中获取类的内部信息 例如构造器 成员变量 成员方法等 类加载之后 在堆中生成一个Class类的对象 一个类只有一个Class对象 这个对象包含类的完整结构信息 二 入门案例 通过配置文件中的内容生成指定类的对
  • 创建完整团队的艺术:敏捷如何改变我们与客户的工作方式

    来源 Ackarlix博客 http www ackarlix com 十年前 敏捷宣言 的作者们希望我们重新思考 我们作为程序员与客户协作的方式 我和我的博士学位顾问Robert Biddle以及James Noble都深受启发 充满希望
  • python --- multiprocessing实现多进程

    文章目录 进程理论知识 multiprocessing模块实现多进程 进程池 进程理论知识 进程就是正在运行的程序 是计算机进行资源分配的最小单位 各个进程都有独立的数据 相互隔离 Linux里进程的状态 R 运行状态runable S 中
  • 各种网络协议的类型、优缺点、作用

    一 网络协议的定义 网络协议是一种特殊的软件 是计算机网络实现其功能的基本机制 网络协议的本质是规则 即各种硬件和软件必须遵循的共同规则 网络协议并不是一套单独的软件 他融合于其他所有软件系统中 协议在网络中无所 不在 二 常用的网络协议
  • 24

    以下内容出自 MySQL 实战 45 讲 https time geekbang org column article 76446 24 MySQL是怎么保证主备一致的 MySQL 主备的基本原理 如图所示就是基本的主备切换流程 M S结构
  • socket可读,可写的条件

    socket可读可写条件 经常做为面试题被问 因为它考察被面试者对网络编程的基础了解的是不是够深入 要了解socket可读可写条件 我们先了解几个概念 1 接收缓存区低水位标记 用于读 和发送缓存区低水位标记 用于写 每个套接字有一个接收低
  • Oracle数据库运维、备份常用指令

    Oracle数据库运维 备份常用指令 1 Oracle数据泵备份导出 1 1 准备工作 在linux系统下创建导出结果存放的文件夹 切记要切换到oracle用户创建 否则会出现权限问题 su oracle mkdir home oracle
  • keepalived高可用服务的VIP地址无法访问

    环境 keepalived nginx实现高可用 VIP地址可以正常生成 也可正常漂移 可以实现故障切换 VIP地址只能在本地服务器ping通 其他内网服务器上无法ping通VIP地址 防火墙和selinux都已关闭 原因一 服务器启动了i
  • day37 445 数字反转 (字符串处理、模拟)

    445 数字反转 给定一个整数 请将该数各个位上数字反转得到一个新数 新数也应满足整数的常见形式 即除非给定的原数为零 否则反转后得到的新数的最高位数字不应为零 输入格式 输入共1行 1个整数N 输出格式 输出共1行 1个整数表示反转后的新
  • 集群基础7——keepalived脑裂

    文章目录 一 脑裂概念 二 脑裂产生原因 三 解决方案 四 脑裂监控 一 脑裂概念 在高可用 HA 系统中 当联系2个节点的 心跳线 断开时 本来为一整体 动作协调的HA系统 就分裂成为2个独立的个体 由于相互失去了联系 都以为是对方出了故
  • 常用 Git 命令行操作

    本文记录了一些常用 Git 命令行操作的具体使用方式 git clone git clone REPOSITORY URL 拉取仓库 并使用仓库名作为本地文件名 git clone REPOSITORY URL FOLDER 拉取仓库 并使
  • android new intent(),Android:关于onNewIntent()触发机制及注意事项

    在阅读该篇日志前 先熟悉一下Android的四种启动模式 因为onNewIntent并不是在所有启动模式下都会执行的 一 onNewIntent 在IntentActivity中重写下列方法 onCreate onStart onResta
  • Flink水位线不触发问题

    窗口计算时遇到好几次水位线不触发的情况 简单总结下 首先 介绍下Flink的事件时间 EventTime 和水位线 Watermarks 的概念 一 处理时间 如果要构造一个实时的流式应用 或早或晚都会接触到EventTime这个概念 现实
  • 用vscode写markdown的正确姿势

    写markdown一直没找到特别顺手的工具 这两天试了试vscode 被惊艳到到了 特此记录一下 1 安装vscode 之所以罗嗦一下安装 是因为安装版明显不如解压绿色版好用 特此标记一下 2 安装markdown插件 vscode默认是支
  • 机器学习——模型评估

    在学习得到的模型投放使用之前 通常需要对其进行性能评估 为此 需使用一个 测试集 testing set 来测试模型对新样本的泛化能力 然后以测试集上的 测试误差 tootino error 作为泛化误差的近似 我们假设测试集是从样本真实分