当前位置: 首页 > news >正文

不同领域的常见 OOD(Out-of-Distribution)数据集例子

以下是几个来自不同领域的常见 OOD(Out-of-Distribution)数据集例子,这些数据集常用于测试和研究模型在分布变化或分布外数据上的泛化能力:

1. 计算机视觉领域

  • CIFAR-10 vs. CIFAR-10-C / CIFAR-100-C:

    • 描述:CIFAR-10 是一个包含 10 类图像的小型数据集,而 CIFAR-10-C 是对 CIFAR-10 应用了各种噪声、模糊、对比度变化等干扰后的版本,模拟了分布外的数据。
    • 用途:用于评估图像分类模型在面对数据分布变化时的表现,尤其是面对不同环境扰动时的鲁棒性。
  • SVHN vs. MNIST:

    • 描述:SVHN(Street View House Numbers)是一个包含房屋门牌号图像的数据集,MNIST 是手写数字数据集。虽然都涉及数字识别,但图像风格和数据分布完全不同。
    • 用途:评估模型的泛化能力,测试模型在处理不同数据源的数字识别任务时的表现。
  • ImageNet vs. ImageNet-O:

    • 描述:ImageNet 是一个大规模图像分类数据集,而 ImageNet-O 是一个专门构造的 OOD 数据集,包含不属于 ImageNet 原始 1000 类的图像。
    • 用途:测试模型在面对完全新类别图像时的 OOD 检测能力。

2. 自然语言处理(NLP)领域

  • IMDB Sentiment Analysis vs. Amazon Reviews:

    • 描述:IMDB 数据集包含电影评论的情感分析任务,而 Amazon Reviews 包含产品评论。虽然任务相同,但来源和语言风格差异很大。
    • 用途:用于评估情感分析模型在不同领域的泛化能力和稳健性。
  • SQuAD vs. TriviaQA:

    • 描述:SQuAD 是一个问答数据集,TriviaQA 是一个更加开放式、且包含更多嘈杂问题和答案的数据集。
    • 用途:测试问答模型的 OOD 表现,尤其在问题和答案格式发生显著变化时的表现。
  • GLUE vs. ANLI:

    • 描述:GLUE 是一套标准的语言理解基准测试,而 ANLI 是一个挑战性的自然语言推理数据集,包含较多的反例和复杂句子结构。
    • 用途:用于测试自然语言理解模型在面对更复杂和反常数据时的推理能力。

3. 时间序列和金融数据领域

  • Electricity Load Dataset vs. Anomalous Load Patterns:

    • 描述:标准的电力负荷数据通常具有周期性模式,但在异常负荷模式(如节假日或突发事件)下会表现出 OOD 特征。
    • 用途:用于测试时间序列预测模型在异常或未见模式下的表现。
  • Stock Prices vs. Market Crash Data:

    • 描述:股票价格数据在正常市场状态下的模式和在市场崩溃或剧烈波动时的模式完全不同。
    • 用途:评估金融预测模型在应对异常市场状况时的表现。

4. 医疗领域

  • ChestX-ray14 vs. COVID-19 Chest X-ray Dataset:

    • 描述:ChestX-ray14 是一个用于检测各种肺部疾病的 X 光图像数据集,而 COVID-19 X-ray 数据集包含特定的 COVID-19 病例。
    • 用途:测试医学影像分析模型在面对新的疾病类型时的识别和诊断能力。
  • MIMIC-III vs. MIMIC-IV:

    • 描述:MIMIC-III 和 MIMIC-IV 是不同版本的 ICU 病人电子健康记录(EHR)数据集,包含不同的记录格式、特征和患者数据。
    • 用途:评估医疗预测模型在面对更新版本数据(包含新病人和新病历特征)时的泛化能力。

总结

这些 OOD 数据集来自多个领域,每个数据集的设计都旨在模拟模型可能在实际应用中遇到的分布外数据。通过使用这些数据集,可以评估模型在面对未知或变化环境时的稳健性和泛化能力。

2 数学领域

在数学领域,特别是在数据建模、函数拟合和预测任务中,超出范围的数据确实可以被视为一种 OOD(Out-of-Distribution)数据。这类 OOD 数据主要出现在模型需要进行外推(extrapolation)时,即当输入值超出模型训练时见过的范围时。以下是数学领域中关于 OOD 数据的几种典型情况和示例:

1. 函数拟合与数值分析

  • 多项式拟合

    • 描述:在 0 到 10 范围内进行多项式拟合训练,然后在 10 到 15 范围内测试模型。
    • 是否算 OOD:算 OOD 数据,因为测试点的输入超出了训练数据的范围,模型需要进行外推,且外推性能可能会显著下降。
    • 用途:评估多项式模型在未知数据点上的预测能力。
  • 数值微分和积分

    • 描述:训练模型在已知范围内近似某个函数的导数或积分,然后在超出范围的区间进行估计。
    • 是否算 OOD:算 OOD 数据,因为估计过程需要基于未见过的函数行为进行推断,属于典型的外推场景。
    • 用途:测试数值方法在超出已知点区域时的稳定性和准确性。

2. 动态系统与微分方程

  • ODE(常微分方程)求解

    • 描述:在已知的初始条件和时间区间内求解 ODE,然后将求解过程扩展到更远的时间范围。
    • 是否算 OOD:算 OOD 数据,因为在超出训练区间的时间点,系统的状态可能无法通过简单延续已知模式来准确描述。
    • 用途:验证 ODE 求解器的长期稳定性和对未见条件的鲁棒性。
  • 时变参数系统

    • 描述:在固定参数下训练模型预测系统行为,然后在参数变化或时间演化下进行测试。
    • 是否算 OOD:算 OOD 数据,因为系统的参数变化使得测试条件与训练时存在显著分布差异。
    • 用途:测试系统建模方法在参数漂移或时间演化下的适应能力。

3. 优化与数值方法

  • 约束优化问题

    • 描述:在某个特定约束范围内训练优化算法(如搜索最优解),然后在放宽或改变约束的情况下进行测试。
    • 是否算 OOD:算 OOD 数据,因为测试时的约束条件变化使得问题的搜索空间超出了训练的范围。
    • 用途:验证优化算法在变化条件下的泛化能力。
  • 插值与外推

    • 描述:在已有数据点之间进行插值,然后尝试在这些点之外进行预测(外推)。
    • 是否算 OOD:插值数据不算 OOD,而外推数据算 OOD,因为外推超出了已知数据点的范围,是一种高风险的预测。
    • 用途:测试插值方法的外推能力和可靠性。

总结

在数学建模、函数拟合、动态系统分析等领域中,超出训练数据范围的数据被视为 OOD 数据。这类 OOD 数据因为超出了模型的已知范围,因此测试的是模型的外推能力,这通常是模型泛化性最为薄弱的环节。通过测试超出范围的数据,可以更好地理解和评估模型在实际应用中的局限性和稳健性。

3 gnn领域

在图神经网络(Graph Neural Networks, GNNs)领域,OOD(Out-of-Distribution)数据同样是一个非常重要的研究方向,因为图数据的分布通常具有复杂的结构和动态性,超出训练数据分布的情况经常会发生。以下是 GNN 领域中常见的 OOD 数据集和场景,这些例子说明了如何在图数据的不同方面识别和处理 OOD 情况:

1. 节点分类中的 OOD 场景

  • Cora, CiteSeer, PubMed 数据集的扩展

    • 描述:这些是常用的图数据集,通常用于节点分类任务。OOD 情况可能出现在节点特征超出训练数据分布或节点之间新增了未见过的连接时。
    • 是否算 OOD:如果节点特征或连接结构在测试数据中不同于训练数据,例如新增了噪声节点、孤立节点或新的边连接,这些就属于 OOD 数据。
    • 用途:评估 GNN 在面对新特征和结构变化时的鲁棒性和泛化能力。
  • 异构图节点分类(Heterogeneous Graphs)

    • 描述:异构图包含多种类型的节点和边,训练数据可能只覆盖部分类型的节点或特征,而测试数据中可能包含新的节点类型或新的关系。
    • 是否算 OOD:算 OOD 数据,因为测试数据中的新节点类型或关系超出了训练时的分布范围。
    • 用途:验证 GNN 对于不同类型节点和关系的识别能力,尤其是在网络类型复杂多样时的泛化表现。

2. 图分类中的 OOD 场景

  • MUTAG vs. 新的化合物图数据

    • 描述:MUTAG 是一个常见的图分类数据集,包含不同化学分子的图表示。训练时模型可能见过某些类型的化学结构,但在测试时可能会遇到新的化合物结构。
    • 是否算 OOD:当测试图的化学结构或分子特征未曾在训练数据中出现时,这些数据就是 OOD 数据。
    • 用途:评估 GNN 在新结构、新化学键类型上的分类准确性。
  • Protein-Protein Interaction Networks

    • 描述:用于图分类或链路预测的 PPI 网络通常训练在特定物种上,但在测试时可能需要预测其他物种的蛋白质相互作用。
    • 是否算 OOD:算 OOD 数据,因为不同物种的蛋白质结构和交互模式可能与训练数据显著不同。
    • 用途:测试 GNN 在生物数据上的跨物种泛化能力。

3. 链路预测中的 OOD 场景

  • 社交网络中新增节点与边的预测

    • 描述:在社交网络中,GNN 被用来预测用户之间的潜在连接(链路预测)。训练数据可能包括过去的连接模式,而测试时新增了用户或边。
    • 是否算 OOD:新增的节点或边以及变化的网络结构算 OOD 数据,因为它们的特征或连接模式未见于训练数据。
    • 用途:评估 GNN 在新用户、新连接上的预测准确性,测试其对变化网络环境的适应性。
  • 知识图谱补全

    • 描述:知识图谱(如 Freebase, YAGO)通常用于链路预测任务,训练数据包含部分已知的实体和关系,测试时可能需要预测未见过的关系类型或新的实体对。
    • 是否算 OOD:新增的实体或未见过的关系类型是 OOD 数据,因它们在训练时从未出现。
    • 用途:测试 GNN 对新知识的推理能力和泛化性能。

4. 动态图中的 OOD 场景

  • 时变图数据(Dynamic Graphs)
    • 描述:动态图模型在时间演化的网络中进行训练和预测,例如交通网络、社交网络随时间的变化。测试数据可能包含训练时未见过的突发事件(如交通事故、新社交潮流)。
    • 是否算 OOD:突发性变化、未见过的时变模式算 OOD 数据,因为它们在训练数据中没有反映出来。
    • 用途:评估 GNN 在动态环境下的鲁棒性和对未来状态的预测能力。

总结

在 GNN 领域,OOD 数据可以来源于节点特征、图结构、新的连接模式等方面的变化。这些 OOD 情况模拟了真实世界中网络数据不断变化和拓展的场景,是测试 GNN 在复杂环境中泛化能力的关键。通过使用这些 OOD 场景,研究人员可以更好地理解和改进 GNN 在面对分布外数据时的性能表现。

相关文章:

不同领域的常见 OOD(Out-of-Distribution)数据集例子

以下是几个来自不同领域的常见 OOD(Out-of-Distribution)数据集例子,这些数据集常用于测试和研究模型在分布变化或分布外数据上的泛化能力: 1. 计算机视觉领域 CIFAR-10 vs. CIFAR-10-C / CIFAR-100-C: 描述:CIFAR-10…...

gRPC协议简介

gRPC 是谷歌开源的一套 RPC 协议框架。主要做两件事情:一是数据编码,二是请求映射。 数据编码 数据编码顾名思义就是在将请求的内存对像转化成可以传输的字节流发给服务端,并将收到的字节流再转化成内存对像。方法有很多,常见的…...

[dp+dfs]砝码称重

题目描述 现有 n n n 个砝码,重量分别为 a 1 , a 2 , … , a n a_1, a_2, \ldots,a_n a1​,a2​,…,an​ ,在去掉 m m m 个砝码后,问最多能称量出多少不同的重量(不包括 0 0 0 )。 输入格式 第一行为有两个整数…...

MYSQL-查看表中字段属性语法(三)

查看表中字段全部信息 show full columns from database_name.table_name; show full columns from table_name;示例 mysql> show full columns from world.city; ----------------------------------------------------------------------------------------------------…...

第三讲 part 3:前端处理LINK3D - 代码解析 - 从main出发看总体流程(ROS1改为ROS2)

目录 1. ROS1 ->ROS21.1 包含头文件1.2 全局变量定义1.3 结构体定义1.4 点云容器定义1.5 图像处理相关变量1.6 ROS2发布者和订阅者定义1.7 全局变量,被不断更新1.8 点云处理相关变量1.9 图像描述符1.10 主函数1.10.1. 初始化ROS21.10.2. 创建节点1.10.3. 声明参数1.10.4. 设…...

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树

1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,…...

【C++】Eclipse技巧汇总

Eclipse C/C调试无法输入 在debug C/C程序时,Eclipse自带的窗口,无法读取cin等输入 解决办法: 参考:https://blog.csdn.net/sagjhdj/article/details/123271383 思路是调用外部console: 依次点击Debug>Debug Conf…...

Golang | Leetcode Golang题解之第430题扁平化多级双向链表

题目: 题解: func dfs(node *Node) (last *Node) {cur : nodefor cur ! nil {next : cur.Next// 如果有子节点,那么首先处理子节点if cur.Child ! nil {childLast : dfs(cur.Child)next cur.Next// 将 node 与 child 相连cur.Next cur.Chi…...

Java实现找色和找图功能

某天,张三接到一个任务需求,将一个Excel表格里面的员工信息,录入到员工系统里面,由于数据量非常大,操作起来巨慢。经过一段时间的操作和观察,他发现这种操作,非常有规律,基本就是一些…...

linux脚本工具

目录 shell工具查看Nvidia GPU状态查看某个监听端口是否存在设置局部代理查找关键字相关进程根据日常所需&#xff0c;持续更新 shell工具 减少重复性工作&#xff0c;简化工作流程&#xff0c;提高工作效率 将所编写的shell脚本赋予可执行权限 chmod x <脚本文件> 在…...

MySQL之基础篇

数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则&#xff1b; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…...

13年408计算机考研-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI参考模型&#xff0c;由下至上依次是&#xff1a;物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层&#xff0c; B.数据格式转换&#xff0c;是表示层要解决的问题&#xff0c;很显然答案…...

camera2 + MediaRecorder 实现的分段循环录像功能

硬件设备Android系统 8.1&#xff1b; 硬件设备上开发过程中的问题记录&#xff1a; 问题1. 长时间录像后发现保存的录像文件始终只有4G。 原因及解决&#xff1a;Android 11之前的系统有对保存的文件大小有限制&#xff0c;所以只能修改成分段保存&#xff0c;即录像文件3.…...

LeetCode 每日一题 2024/9/23-2024/9/29

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/23 2414. 最长的字母序连续子字符串的长度9/24 2207. 字符串中最多数目的子序列9/25 2306. 公司命名9/26 2535. 数组元素和与数字和的绝对差9/27 2516. 每种字符至少取 K…...

知识付费APP开发指南:基于在线教育系统源码的技术详解

本篇文章&#xff0c;我们将探讨基于在线教育系统源码的知识付费APP开发的技术细节&#xff0c;帮助开发者和企业快速入门。 一、选择合适的在线教育系统源码 选择合适的在线教育系统源码是开发的关键一步。市场上有许多开源和商业化的在线教育系统源码&#xff0c;开发者需要…...

物联网智能项目全面解析

目录 引言 一、物联网概述 1.1 什么是物联网 1.2 物联网的历史与发展 二、物联网智能项目分类 三、关键组件与技术 3.1 传感器和执行器 3.2 连接技术 3.3 数据处理与分析 3.4 用户界面 四、物联网智能项目案例分析 4.1 智能家居 4.2 智慧城市 4.3 工业物联网 4.4…...

【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式结构重用

序言&#xff1a; 本文详细讲解了关于我们在页面上经常看到的轮播图在鸿蒙开发中如何用Swiper实现&#xff0c;介绍了Swiper的基本用法与属性&#xff0c;及如何面对大段的重复代码进行封装和重用&#xff08;Extend、Styles、Builder&#xff09;&#xff0c;使代码更加简洁易…...

Springboot3保存日志到数据库

保存日志到数据库 请求日志几乎是所有大型企业级项目的必要的模块&#xff0c;请求日志对于我们来说后期在项目运行上线一段时间用于排除异常、请求分流处理、限制流量等。请求日志一般都会记录请求参数、请求地址、请求状态&#xff08;Status Code&#xff09;、SessionId、…...

叉车高位显示器无线摄影,安装更加便捷!

叉车叉货&#xff0c;基本功能&#xff0c;但货叉升降高度确不一定&#xff0c;普通的3米左右&#xff0c;高的十几米&#xff0c;特别是仓储车&#xff0c;仓库叉货空间小&#xff0c;环境昏暗&#xff0c;视线受阻严重&#xff0c;司机叉货升的那么高怎么准确无误的插到货呢&…...

模板的特化

模板的特化 1.概念2.函数模板特化3.类模板的特化3.1 全特化3.2 偏特化3.2.1 部分特化3.2.2 参数更进一步的限制 4.总结 1.概念 在原模板类的基础上&#xff0c;针对特殊类型所进行特殊化的实现方式 2.函数模板特化 步骤 1.必须要先有一个基础的函数模板 2.关键字 template后面接…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

JS红宝书笔记 - 3.3 变量

要定义变量&#xff0c;可以使用var操作符&#xff0c;后跟变量名 ES实现变量初始化&#xff0c;因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符&#xff0c;可以创建一个全局变量 如果需要定义…...