nirs4all-datasets
收藏官方服务:
资源简介:
存储、鉴定和组织用于基准测试和实验室实验的近红外光谱参考数据集,遵循研究和工业机器学习标准(FAIR、可引用DOI、可复现)。数据存储在Recherche Data Gouv(法国国家Dataverse实例)上,支持通过pooch风格按需下载、验证校验和并本地缓存。
Curates, organizes, and stores near-infrared spectroscopy reference datasets for benchmarking and laboratory experiments, adhering to research and industrial machine learning standards (FAIR, citable DOI, reproducible). The datasets are hosted on Recherche Data Gouv, the French national Dataverse instance, and support on-demand download, checksum verification, and local caching in a pooch-style manner.
创建时间:
2026-05-27
原始信息汇总
数据集概述:nirs4all-datasets
nirs4all-datasets 是一个可引用、可复现的原始近红外光谱(Near-Infrared Spectroscopy, NIRS)参考数据集库。其核心目标是提供一个基于共同、版本固定、来源清晰的数据基础,用于模型的基准测试、探索和比较。
核心定位与设计原则
- 数据集本质:数据集被定义为“原始的测量现实”,而非预设的基准任务。每个数据集包含一个或多个光谱源(仪器)、任意数量的变量(包括所有目标和元数据列,不虚构也不丢弃)、源数据自带的划分,以及完整的来源追溯至原始发布者。
- 任务中立:具体的任务(选择哪个Y、哪种划分、哪种指标)完全由使用者决定,不嵌入数据集本身。
数据模型
- 源(X):
1..n,保持独立。多仪器/多模块数据集将每个模块作为独立的源。不同源的样本通过sample_id对齐,而非行位置。 - 变量(Y + 元数据):
0..n。没有内在的Y/元数据区分,每一列都可能成为目标变量。数据集可以声明无目标变量(仅X或仅元数据也有效)。声明的目标变量会被标记,其余保持为元数据。 - 划分:仅记录源数据自带的训练/测试/折叠划分,
get()函数不会自动应用,以支持复现原始论文。 - 层级:
public:所有信息可见,可从源地址公开获取。private:所有信息可见,但导出需要令牌。anonymized:变量名称被遮盖,目标值被标准化,导出需要令牌。- 注意:字节数据(实际光谱文件)不存储在git或站点中,目录仅指向源DOI/URL。
- 版本:包含两个维度。内容版本(字节数据变更时更新)和度量协议版本(允许在不重建数据的情况下,使用新协议重新生成身份卡)。
三个主要交付物
- Git追踪的目录:每个数据集包含一个手工可核查的描述符和一个机器生成的“身份卡”(包括统计信息、按源/变量的数据可视化、MLCommons Croissant、数据表)。实际数据不进入Git。
- Python插件:
get("name")函数可按需从源地址下载数据集,验证其SHA-256哈希,缓存,并返回一个NirsDataset对象。 - 静态网站:一个可浏览、可验证的目录,包含全库数据可视化和每个数据集的独立身份卡。
技术实现与存储架构
- 依赖:复用
nirs4all进行数据质量评估,使用nirs4all-io/nirs4all-formats读取仪器文件(如OPUS, JCAMP-DX, SPC, ASD等),不重新实现NIRS/IO逻辑。 - 三级存储:
- Git(小文件,被追踪):存储描述符、索引、身份卡、Croissant文件、清单文件。
- 源地址(如Zenodo, Dataverse等):存储原始和规范化的字节数据,按需获取,不会被此项目重新托管。
- 本地缓存:按需下载的、已验证的规范化Parquet文件,位于
pooch.os_cache。
状态与许可证
- 状态:alpha (0.x),pre-1.0 阶段,磁盘和API约定可能还会变化。
- 许可证:代码使用MIT许可证。每个数据集在其描述符中携带自己的SPDX许可证,仅链接至其源地址。
搜集汇总
数据集介绍

构建方式
nirs4all-datasets作为一个可引用、可复现的原始近红外光谱参考数据集库,其构建方式独具匠心。每个数据集被视作一组原始测量数据,而非预设的基准任务,包含一个或多个光谱仪器来源、任意数量的变量(涵盖所有目标与元数据列),以及原始数据发布者定义的原生划分。数据集的构建严格遵循版本锁定与来源追溯原则,通过git追踪的目录清单记录每个数据集的描述符与机器生成的身份证卡片,而庞大的原始数据字节则从未进入git仓库,而是存储在原始发布源(如Zenodo或数据仓库)中。用户可通过Python插件按需从来源下载数据,并自动验证SHA-256哈希值以确保完整性。
特点
该数据集库的核心特色在于其灵活性与可扩展性。多仪器或多模块数据集中的每个数据块都被视为独立的来源,通过样本标识符进行对齐,而非按行位置对齐,从而有效处理非对称重复测量。数据集中的变量没有内在的目标与元数据区分,每个列都可作为潜在目标,声明过的目标会被标记,其余则保留为元数据,并配有完整的可视化图表。数据集采用分层展示与导出机制,分为公开、私密与匿名化三个层级,字节数据始终不从git或站点直接提供,而是指向原始DOI或URL。版本控制呈现双轴结构,内容版本与度量协议版本独立演进,确保数据更新时身份卡片可重新评估。
使用方法
使用nirs4all-datasets库极为简便。用户通过Python调用n4ad.list()可获取目录索引,n4ad.card()能查看数据集的身份证卡片,包含来源、变量、统计信息与来源追溯详情。核心加载函数n4ad.get()从原始来源获取数据,经校验后缓存并返回NirsDataset对象。该对象提供ds.sources()列出所有仪器来源,ds.x()获取特定来源的光谱数组,ds.y()获取声明目标,ds.metadata()获取元数据列,ds.split()获取原生划分标签。对于私密或匿名化数据集,需通过环境变量或配置文件提供Dataverse API令牌。CLI工具n4a-datasets支持引导构建、质量评估、健康状况检查等高级操作,完整工作流记录于CONTRIBUTING.md文档中。
背景与挑战
背景概述
近红外光谱(NIRS)技术凭借其非破坏性与快速检测特性,在农业、食品、医疗等领域展现出广泛的应用前景。然而,该领域长期面临数据孤岛与基准缺失的困境——多数研究依赖私有数据集或经人为处理后的数据,导致模型比较缺乏公平的尺度。为应对这一现状,nirs4all-datasets数据集应运而生,由研究团队于2023年前后创建,旨在构建一个可引用、可复现的原始NIRS参考数据银行。该数据集收录了来自多台仪器的原始光谱测量结果,严格保留数据的完整性和来源信息,使研究者能够在统一的、经过版本控制和溯源验证的基础上进行模型评估与比较。其核心贡献在于将‘原始测量现实’与‘基准任务’解耦,赋予用户自由选择目标变量、划分方案与评价指标的权利,从而为NIRS领域的开放科学与标准化研究奠定了坚实的基石。
当前挑战
该数据集所面临的挑战主要涵盖两大层面。首先是领域问题的挑战:近红外光谱数据普遍存在高维度、多共线性以及信号与背景噪声的复杂混合,传统化学计量学方法在处理多源异构数据时往往力不从心,而深度学习模型又因缺乏统一的大规模基准而难以充分验证其泛化能力。其次是构建过程中的挑战:为确保数据的可复现性与审计追踪,团队需要为每一条数据记录其完整的来源、仪器参数与预处理步骤,这要求建立精细的数据模型来管理多仪器间的非对齐频谱、非对称重复样本以及混合了目标变量与元数据的多维变量空间。此外,数据集的版本控制需同时兼顾内容变更和质量评估协议迭代,存储架构则采用三级分离策略以确保原始字节不出现在代码仓库中,这些设计均显著增加了系统实现的复杂度。
常用场景
经典使用场景
在近红外光谱分析领域,nirs4all-datasets数据集为多仪器、多变量、多来源的光谱数据提供了一个标准化的存储与调用框架。其经典使用场景集中于构建跨平台、跨仪器的光谱模型比较与迁移学习研究,研究者可通过统一的API获取不同仪器采集的同一样本光谱数据,从而在控制样本身份的前提下,系统评估仪器差异对模型性能的影响,为光谱标准化与模型泛化能力探索奠定坚实基础。
衍生相关工作
基于nirs4all-datasets的标准化数据模型,已衍生出一系列围绕光谱数据质量管理、多源对齐算法及模型可解释性评估的经典工作。例如,利用其清晰的光源分离结构,研究者开发了跨仪器光谱匹配与领域自适应方法;借助其完整的元数据与目标标记体系,催生了针对多变量任务的特征选择与度量协议研究。此外,该数据仓库的设计模式也为其他化学计量学领域构建可复现基准数据集提供了参考范本。
数据集最近研究
最新研究方向
基于近红外光谱(NIRS)数据的标准化、可复现与可溯源基准数据集构建,推动光谱分析模型在农业、食品、制药及环境监测等跨学科领域中的公平比较与可重复性研究,尤其聚焦于多仪器异构数据融合、样本身份对齐策略、以及数据集版本化与权限分级治理机制,为NIRS领域的前沿探索如跨仪器模型泛化、小样本学习与无监督表征挖掘提供坚实的数据基础设施支撑。
以上内容由遇见数据集搜集并总结生成



