skrub-data/skrub

Machine learning with dataframes

skrub – 数据框架友好的机器学习预处理

它是什么

  • 一个 Python 库,提供工具来清理、转换和编码存储在 pandas 类数据框架中的表格数据,使其可以直接输入 scikit-learn(或任何其他 ML)模型。
  • 它专注于预处理阶段,而非模型训练或推理。

主要功能(如 README 所述)

功能 作用
逐列清理 检测并修复常见问题,例如不一致的字符串格式、缺失值和词汇表外的类别。
编码 提供稳健的编码器(例如目标编码、频率编码),可处理高基数类别列,而不会爆炸特征空间。
基于相似性的分组 自动分组相似字符串(例如拼错的产品名称),在建模前减少噪声。
与 scikit-learn 集成 提供遵循 scikit-learn fit/transform API 的转换器类,因此可以放入管道中。
文档与示例 附有网站、自动生成的文档和一系列可运行的示例,说明典型工作流程。
社区 设有 Discord 服务器和 GitHub Discussions 页面,用于用户支持和分享使用案例。

典型工作流程

import pandas as pd
import skrub

# 加载数据框架
df = pd.read_csv('data.csv')

# 使用 scikit-learn 管道进行清理和编码
from sklearn.pipeline import make_pipeline
from sklearn.ensemble import RandomForestClassifier

pipeline = make_pipeline(
    skrub.Cleaner(),          # 修复字符串、缺失值等
    skrub.TargetEncoder(),   # 将类别转换为数值特征
    RandomForestClassifier()
)

pipeline.fit(df.drop('target', axis=1), df['target'])

该库处理混乱、真实世界的数据准备步骤,这些步骤通常是 ML 项目的瓶颈。

安装

  • 可在 PyPI 和 conda-forge 上获取:pip install skrub 或 conda install -c conda-forge skrub。
  • README 指向项目网站上的详细安装说明。

入门与学习资源

  • 官方网站(https://skrub-data.org/)托管自动生成的文档、示例画廊和一组学习材料。
  • 安装后,您可以使用以下方式找到捆绑的文档:
    import skrub
    print(skrub.__docs_dir__)
    

社区与贡献

  • 鼓励用户分享信息、加入 Discord,并在 GitHub Discussions 上讨论使用案例。
  • 错误和功能请求通过 GitHub issues 处理;网站上提供贡献指南。

引用

  • 对于学术工作,请引用 README 中链接的 Zenodo 存档。

结论 skrub 是一个实用、文档完善的工具箱,弥合了原始表格数据与干净、模型就绪特征之间的差距,对于花费大部分时间在训练机器学习模型前整理混乱数据框架的数据科学家特别有用。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目