数据挖掘 4.8 评估泛化能力

4.8 Estimating Generalization
4.8 评估泛化能力

评估模型的泛化能力

  • 如何合理评估模型的泛化能力
    • 指导原则 (Guidelines)
    • 存在的问题 (Issues)
  • K-fold 交叉验证(Cross-Validation)
    • 留一交叉验证(Leave One Out CV)(LOOCV)
    • Stratification 分层
  • 训练-验证-测试拆分(training validation test split)
  • 引导策略(bootstrap)

如何合理评估模型的泛化能力

指导原则 (Guidelines)

训练集要有 足够多的样本 留下,不要全部拿去训练。
测试集的标签 在训练过程中绝对不能使用(不能直接用,也不能间接泄漏)。但是,测试数据本身(不带标签)可以用,比如做无监督的分布分析。
要明确模型的 应用场景和目的(intended use & application)。
要清楚性能评估的 目标(objective of evaluation),比如是比较算法还是用于实际部署。

存在的问题 (Issues)

测试集变小 → 估计的方差变大(因为样本少,评估结果波动更大)
训练集变小 → 偏差(bias)增加(数据不足,模型性能评估更悲观)

K-fold 交叉验证(Cross-Validation)

在这里插入图片描述

测量泛化性能 (Measurement of Generalization Performance),用于估计性能的方差 (For estimation of variation),将数据划分为 K 折 (Divide the data into K folds)

  • 对于每个 k = 1…K
    • 在 K-1 个子集上训练,留出第 k 个子集作为验证集
    • 在第 k 个子集上验证,并计算性能指标
  • 汇总所有 K 次实验的 平均值方差

不同的K值会如何影响结果,如何影响平均准确率或平均性能指标?
当训练数据很小的时候,使用较大的K值; 当训练数据很大的时候,使用较小的K值。

留一交叉验证(Leave One Out CV)(LOOCV)

如果 K=样本数K=样本数K=样本数,这种极端情况称为留一交叉验证(LOOCV)。适用于数据量很小的情况。

Stratification 分层

分层(分层交叉验证)– 确保每一折包含的样本数量与整体数据相同。
如果某个类别在整个数据集中占 20% 的样本,那么在从数据集中抽取的所有样本中,它也应该占大约 20% 的样本。
举例
一个数据集合,1000个数据,800个负例,200个正例。5-fold 交叉验证。每个样本fold,都要有80%的负例,20%的正例。

如果我们保证这一点,我们本质上所做的就说分层。与非分层交叉验证相比,分层交叉验证是一种更好的评估交叉验证性能的方法。

训练-验证-测试拆分(training validation test split)

(10-fold cross-validation)10倍交叉验证是很好常用的。如果有10,000个或5,000样本,我们可以使用10倍交叉验证,将会提供可靠的估计值。
但如果有大量或者少数样本作为训练,这是比较棘手的,需要使用其他方法。如果样本数量非常大,我们继续使用10倍交叉验证,将花费很长时间。因此,这种情况,我们通常会将数据集拆分成为 训练数据集(training dataset)、验证数据集(validation dataset)、测试数据集(testing dataset)。常用占比是60%、20%、20%。

在这里插入图片描述
我们使用一个模型,比如
SVM ,C=100, RBF r=0.1 ,将这个模型在Training dataset中进行训练,在Valid dataset中进行验证,得出AUCROC=0.8;
SVM ,C=1000, RBF r=0.2 ,将这个模型在Training dataset中进行训练,在Valid dataset中进行验证,得出AUCROC=0.9;

这些模型都在同一个数据集合中进行训练和测试,最终我们根据测试结果,选出性能最好的模型,比如SVM ,C=1000, RBF r=0.2 。

引导策略(bootstrap)

当样本数量非常少时,事情就会变得复杂。比如只有100个样本可以用于训练。通常情况下,训练样本数量很少,标记就很困难。例如,如果是生物或者生物医学信息学领域,样本数量可能非常少。因为标记成本很高。比如蛋白质结构测定实验的成本很容易达到10万美元。所以这会成为一个问题,如果样本数量非常少,那准确率的估计就会更加困难。

如果样本少,可以使用Lemon-outcross validation柠檬杂交实验,还有别的策略,这些策略称为 引导策略(bootstrap or bootstrapping),可以实现。
(这里不细说)

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

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

相关文章

46.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成日志

本篇文章,我们一起在网关中集成日志功能,我们要在网关中记录下游微服务出现的异常信息、请求信息以及响应信息。在微服务架构中,网关作为系统的入口,承担着非常重要的职责。通过在网关层面集成日志功能,我们可以更好地…

使用 FastAPI 的 WebSockets 和 Elasticsearch 来构建实时应用

作者:来自 Elastic Jeffrey Rengifo 学习如何使用 FastAPI WebSockets 和 Elasticsearch 构建实时应用程序。 更多阅读:使用 FastAPI 构建 Elasticsearch API 想要获得 Elastic 认证吗?看看下一次 Elasticsearch Engineer 培训什么时候开始&…

华为云ModelArts+Dify AI:双剑合璧使能AI应用敏捷开发

引言:AI应用开发的敏捷化转型需求 随着大语言模型(LLM)技术的迅猛发展,企业与开发者对AI应用开发的敏捷化转型需求日益凸显,亟需将大模型能力快速转化为实际业务价值。传统AI开发模式中,复杂的模型工程化、流程编排和部署维护工作往往需要专业技术团队支撑,典型痛点包括…

网络实践——Socket编程UDP

文章目录Socket编程UDPUDP接口的使用铺垫socketrecvform && sendtobind字节序转化使用(Tips)实践部分version_1echo_serverversion_2dict_serverversion_3chat_serverSocket编程UDP 在了解了相关的网络基础知识后,我们不会像学系统知识一样,先学…

GD32 波形发生器,三角波,正弦波,方波。AD9833+MCP410生成和MCU自身的DAC生成。波形,频率,振幅可以通过按键和OLED调整输出。

DIY一个简易的信号发生器驱动板,主要是三角波和正弦波,方波。主板有两个通道能输出波形,CH0由AD9833MCP410AD8051放大电路组成,理论可以生成0.1-12.5MHZ的频率信号,单电源振幅范围是1-9V。CH1由MCU外设DAC生成的信号&a…

VS2022的MFC中关联使用控制台并用printf输出调试信息

前言 MFC一般在调试的时候,可以在IDE中方便的看到调试的信息。但是,有时候运行的时候也要看调试的信息怎么办?最好如同在Console(控制台)程序中输出一般的方便,可以么?可以的。 一、设置 1.1、加…

ZKmall模块商城的推荐数据体系:从多维度采集到高效存储的实践

在电商领域,个性化推荐已成为提升用户体验与转化效率的核心手段。ZKmall 模块商城基于用户行为、商品属性与交易数据,构建了一套完整的推荐算法体系,而数据采集的全面性与存储的高效性是该体系的基础。本文将聚焦推荐算法的 “数据输入端”&a…

Qt + windows+exe+msvc打包教程

目录 1. Qt + windows+exe+msvc打包教程1 1.1. Enigma Virtual Box下载⏬1 1.2. Enigma Virtual Box安装2 1.3. Qt 打包成独立exe教程6 1.3.1. Qt项目创建6 1.3.2. Qt项目编译13 1.3.3. Qt 项目打包 windeployqt命令14 1.3.4. Qt 项目打包 Enigma Virtual Box工具18 Q…

大语言模型应用开发——利用OpenAI函数与LangChain结合从文本构建知识图谱搭建RAG应用全流程

概述 从文本等非结构化数据中提取结构化信息并非新鲜事物,但大语言模型(LLMs)为该领域带来了重大变革。以往需要机器学习专家团队策划数据集并训练自定义模型,如今只需访问LLM即可实现,显著降低了技术门槛&#xff0c…

Vue3+Spring Boot技术栈,前端提交混合表单数据(普通字段+文件字段),上传文件,后端插入数据,将文件保存到数据库

一、技术栈1、前端 Vue3 Element Plus TypeSprict2、后端 Spring Boot 3.2.12 Mybatis Plus3、模型特点3.1、表格展示列表数据3.2、行点击,弹出对话框3.3、前端使用 FormData 提交混合表单数据,包含普通字段和文件字段3.4、文件对应数据库结构类型为 …

【Qt开发】Qt的背景介绍(四)

目录 1 -> Qt Hello World 程序 1.1 -> 使用“按钮”实现 1.1.1 -> 纯代码方式实现 1.1.2 -> 可视化操作实现 1.2 -> 使用“标签”实现 1.2.1 -> 纯代码方式实现 1.2.2 -> 可视化操作实现 2 -> 项目文件解析 2.1 -> .pro文件解析 2.2 -&g…

Linux驱动开发笔记(六)——pinctrl GPIO

开发板:imx6ull mini 虚拟机:VMware17 ubuntu:ubuntu20.04 视频:第8.1讲 pinctrl和gpio子系统试验-pincrl子系统详解_哔哩哔哩_bilibili 文档:《【正点原子】I.MX6U嵌入式Linux驱动开发指南.pdf》四十五章 这一章…

SpringBoot 快速上手:从环境搭建到 HelloWorld 实战

在 Java 开发领域,Spring 框架占据着举足轻重的地位,但它复杂的配置曾让不少开发者望而却步。SpringBoot 的出现,如同为 Spring 框架装上了 “加速器”,以 “约定大于配置” 的理念简化了开发流程。本文将从环境准备、Maven 配置入…

图、最小生成树与最短路径

目录 并查集 并查集实现 图 概念 图的存储结构 邻接矩阵 邻接表 无向图 有向图 图的遍历 广度优先遍历 深度优先遍历 最小生成树 Kruskal算法(克鲁斯卡尔算法) Prim算法(普利姆算法) 最短路径 单源最短路径--Dij…

互联网电商新生态:开源AI智能名片、链动2+1模式与S2B2C商城小程序的融合赋能

摘要:本文聚焦互联网电商领域,探讨在当下直播电商蓬勃发展的背景下,开源AI智能名片、链动21模式以及S2B2C商城小程序如何相互融合,为创业者、企业和淘宝主播IP等电商参与者带来新的发展机遇。通过分析各要素的特点与优势&#xff…

企业车辆|基于SprinBoot+vue的企业车辆管理系统(源码+数据库+文档)

企业车辆管理系统 基于SprinBootvue的企业车辆管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员模块实现 驾驶员模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博…

自学嵌入式第二十五天:数据结构-队列、树

一、队列队列是只允许一段进行插入,另一端进行删除操作的线性表;允许插入的一端叫队尾,允许删除的一端叫对头;先进先出;用于解决速度不匹配(例如一快一慢),做缓冲用;二、…

MySQL索引原理与优化全解析

1、MySQL索引是什么? 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录&a…

模型对话状态管理方法详解

模型对话状态管理方法详解 目录 简介手动管理对话状态构建对话历史追加响应内容 API 支持的自动化对话状态管理使用 previous_response_id 链接话轮 Token 及上下文窗口管理上下文窗口定义与限制Token 计数与工具 安全与合规注意事项结语1. 简介 在多轮对话场景中,合…

GPT-5 上线风波深度复盘:从口碑两极到策略调整,OpenAI 的变与不变

摘要: 近日,备受瞩目的 GPT-5 正式上线,却意外地在社区引发了两极化争议。面对技术故障与用户质疑,OpenAI 迅速推出一系列补救措施。本文将深度复盘此次发布风波,解析其背后的技术挑战与应对策略,并探讨这一…