pmlb

GitHub
862 142 非常简单 1 次阅读 1周前MIT数据工具其他
AI 解读 由 AI 自动生成,仅供参考

pmlb 是一个专为评估和比较监督学习算法而打造的大型基准数据集仓库。它收录了涵盖二分类、多分类及回归任务的海量数据,特征类型丰富,包括连续值、有序值及各类离散变量,广泛适用于多种应用场景。

在机器学习研究中,寻找高质量、格式统一且具代表性的数据集往往耗时费力,不同来源的数据清洗标准不一也增加了实验复现的难度。pmlb 有效解决了这一痛点,提供了一套经过精心整理、格式标准化的数据集,让研究人员能将精力集中在算法本身的性能对比上,而非数据预处理环节。

这款工具特别适合机器学习研究人员、数据科学家以及算法开发者使用。无论是需要验证新模型的有效性,还是希望在公平环境下横向对比不同算法的表现,pmlb 都能提供坚实的数据支撑。

其技术亮点在于便捷的 Python 封装库。用户只需通过简单的 pip 安装,即可调用 fetch_data 函数一键获取数据,支持直接返回 Pandas DataFrame 或适配 Scikit-learn 的 NumPy 数组格式。此外,它还内置了本地缓存机制以避免重复下载,并提供了按任务类型(分类或回归)筛选数据集的功能,极大地简化了基准测试流程,提升了科研与开发效率。

使用场景

某算法团队正在研发新一代自动机器学习(AutoML)框架,急需在发布前对内部集成的数十种分类与回归模型进行大规模、多维度的性能基准测试。

没有 pmlb 时

  • 数据搜集耗时巨大:工程师需手动从 UCI、Kaggle 等不同来源爬取数据集,花费数天时间清洗格式不统一的 CSV 文件。
  • 评估标准难以统一:由于各数据集特征类型(连续、离散、有序)定义混乱,导致不同算法间的对比结果缺乏公平性和可复现性。
  • 覆盖场景单一:受限于人工收集能力,测试集往往集中在常见领域,难以覆盖医疗、金融等长尾场景,导致模型泛化能力评估存在盲区。
  • 代码耦合度高:每次引入新数据集都需要重写数据加载和预处理脚本,严重拖慢了迭代验证的速度。

使用 pmlb 后

  • 一键获取标准数据:通过 fetch_data 接口即可直接调用上百个经过严格清洗和格式统一的基准数据集,将数据准备时间从几天缩短至几分钟。
  • 内置科学分类体系:pmlb 自动识别并标记特征类型(如二元、多类、连续值),确保所有算法都在相同的标准化输入下进行公平竞技。
  • 全景式压力测试:利用其涵盖广泛应用场景的数据库,团队能迅速发现模型在特定领域(如高维稀疏数据)的性能短板,显著提升鲁棒性。
  • 无缝对接生态:原生支持返回 Scikit-learn 格式的 NumPy 数组,无需额外适配代码即可嵌入现有的自动化评估流水线中。

pmlb 通过提供标准化、多样化的基准数据仓库,将算法评估从繁琐的数据工程中解放出来,让研发团队能专注于核心模型的创新与优化。

运行环境要求

GPU

未说明

内存

未说明

依赖
notes该工具是一个用于获取基准数据集的 Python 包装器。若直接克隆仓库以访问原始数据文件,需要安装并配置 Git LFS(大文件存储)。数据文件以 gzip 压缩格式存储,使用制表符分隔。建议通过 pip 安装 'pmlb' 包来直接获取数据,支持本地缓存以避免重复下载。
python未说明
pandas
numpy
scikit-learn
pmlb hero image

快速开始

宾夕法尼亚大学机器学习基准测试集

本仓库包含用于评估和比较监督学习算法的一组大型、精心 curated 的基准数据集的代码和数据。这些数据集涵盖了广泛的应用场景,包括二分类/多分类问题和回归问题,以及类别型、有序型和连续型特征的组合。

请访问我们的主页,以交互式方式浏览数据集、简要说明文档和贡献指南!

PMLB 1.0 中的重大变更

本仓库已进行重构,多个数据集名称已被更改!

如果您使用的是旧版本的 PMLB,我们强烈建议您将其升级至 v1.0,以获得更新的数据集 URL 和名称:

pip install pmlb --upgrade

数据集

数据集通过 Git 大文件存储(LFS)进行管理。如果您希望克隆整个仓库,请为您的用户账户安装并设置 Git LFS。或者,您也可以从 GitHub 下载 .zip 文件。

所有数据集均采用通用格式:

  • 第一行是列名
  • 每一行对应数据集中的一条记录
  • 目标列名为 target
  • 所有列以制表符 (\t) 分隔
  • 所有文件均使用 gzip 压缩以节省空间

Dataset_Sizes

数据集特征的完整表格也可供下载。请注意,在我们的文档中,特征被定义为:

  • “二值”:如果特征为整数类型且仅有 2 个唯一值(等同于 pandas profiling 中的“布尔型”)
  • “类别”:如果特征为整数类型且具有 超过 2 个唯一值(等同于 pandas profiling 中的“类别型”)
  • “连续”:如果特征为浮点数类型(等同于 pandas profiling 中的“数值型”)

Python 封装库

为了方便访问基准数据集,我们提供了一个名为 pmlb 的 Python 封装库。该库可通过 pip 安装到 Python 环境中:

pip install pmlb

并在 Python 脚本中按如下方式使用:

from pmlb import fetch_data

# 返回一个 pandas DataFrame
adult_data = fetch_data('adult')
print(adult_data.describe())

fetch_data 函数还有两个附加参数:

  • return_X_y(True/False):是否以 scikit-learn 格式返回数据,即特征和标签分别存储在独立的 NumPy 数组中。
  • local_cache_dir(字符串):本地机器上用于存储数据文件的目录,以便无需再次从网络下载。默认情况下,封装库不使用本地缓存目录。

例如:

from pmlb import fetch_data

# 返回 NumPy 数组
adult_X, adult_y = fetch_data('adult', return_X_y=True, local_cache_dir='./')
print(adult_X)
print(adult_y)

您还可以列出所有可用的数据集:

from pmlb import dataset_names

print(dataset_names)

或者,如果您只想获取分类或回归数据集的列表:

from pmlb import classification_dataset_names, regression_dataset_names

print(classification_dataset_names)
print('')
print(regression_dataset_names)

使用示例:利用 PMLB 比较两种分类算法

PMLB 的设计宗旨是便于对机器学习算法进行基准测试和相互比较。以下是一个 Python 代码片段,展示了使用 PMLB 比较两种算法的最基本方法。

from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split

import matplotlib.pyplot as plt
import seaborn as sb

from pmlb import fetch_data, classification_dataset_names

logit_test_scores = []
gnb_test_scores = []

for classification_dataset in classification_dataset_names:
    X, y = fetch_data(classification_dataset, return_X_y=True)
    train_X, test_X, train_y, test_y = train_test_split(X, y)

    logit = LogisticRegression()
    gnb = GaussianNB()

    logit.fit(train_X, train_y)
    gnb.fit(train_X, train_y)

    logit_test_scores.append(logit.score(test_X, test_y))
    gnb_test_scores.append(gnb.score(test_X, test_y))

sb.boxplot(data=[logit_test_scores, gnb_test_scores], notch=True)
plt.xticks([0, 1], ['LogisticRegression', 'GaussianNB'])
plt.ylabel('测试准确率')

贡献说明

请参阅我们的贡献指南。我们欢迎对文档的支持,并非常感谢新数据集和功能的贡献。

引用 PMLB

如果您在科学出版物中使用了 PMLB,请考虑引用以下论文之一:

Joseph D. Romano, Le, Trang T., William La Cava, John T. Gregg, Daniel J. Goldberg, Praneel Chakraborty, Natasha L. Ray, Daniel Himmelstein, Weixuan Fu, and Jason H. Moore. PMLB v1.0:用于基准测试机器学习方法的开源数据集集合arXiv 预印本 arXiv:2012.00058(2020 年)。

@article{romano2021pmlb,
  title={PMLB v1.0: an open source dataset collection for benchmarking machine learning methods},
  author={Romano, Joseph D and Le, Trang T and La Cava, William and Gregg, John T and Goldberg, Daniel J and Chakraborty, Praneel and Ray, Natasha L and Himmelstein, Daniel and Fu, Weixuan and Moore, Jason H},
  journal={arXiv preprint arXiv:2012.00058v2},
  year={2021}
}

Randal S. Olson, William La Cava, Patryk Orzechowski, Ryan J. Urbanowicz, and Jason H. Moore(2017 年)。PMLB:用于机器学习评估和比较的大型基准测试套件BioData Mining 10,第 36 页。

BibTeX 条目:

@article{Olson2017PMLB,
    author="Olson, Randal S. and La Cava, William and Orzechowski, Patryk and Urbanowicz, Ryan J. and Moore, Jason H.",
    title="PMLB: a large benchmark suite for machine learning evaluation and comparison",
    journal="BioData Mining",
    year="2017",
    month="Dec",
    day="11",
    volume="10",
    number="1",
    pages="36",
    issn="1756-0381",
    doi="10.1186/s13040-017-0154-4",
    url="https://doi.org/10.1186/s13040-017-0154-4"
}

PMLB 的支持

PMLB 由 宾夕法尼亚大学计算遗传学实验室美国国立卫生研究院 的资助下开发,资助项目编号为 AI117694、LM010098 和 LM012601。我们对 NIH 和宾夕法尼亚大学在本项目开发过程中的大力支持深表感激。

版本历史

v1.0.2a2020/10/13
v1.0.1.post32020/09/10
v1.02020/08/16

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.3k|★★☆☆☆|今天
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|1周前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|1周前
其他图像数据工具

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2周前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

75.9k|★★★☆☆|今天
语言模型图像开发框架