跳转到主要内容

创建与scikit-learn兼容估计器的工具集。

项目描述

Scikit-learn Smithy

Scikit-learn Smithy是一个帮助您轻松创建与scikit-learn兼容估计器的工具。


WebUI | 文档 | 仓库 | 问题追踪器


如何使用它?

✅ 通过Web UI直接从浏览器访问。
✅ 作为终端中的CLI(命令行界面)。
  • 通过smith forge命令可用。
  • 需要安装python -m pip install sklearn-smithy
  • typer提供支持。
✅ 作为终端中的TUI(终端用户界面)。
  • 通过smith forge-tui命令可用。
  • 需要安装额外依赖项python -m pip install "sklearn-smithy[textual]"
  • textual 提供支持。

所有这些工具将提示一系列关于您想要创建的估计量的问题,然后为您生成样板代码。

为什么❓

编写与scikit-learn兼容的估计量可能比预期的要难。

虽然每个人都听说过 fitpredict,但根据您编写的估计量类型,scikit-learn可能还期望您的估计量具有其他行为、方法和属性。

  • 您编写的估计量类型。
  • 估计量的签名。
  • .fit(...) 方法的签名。

Scikit-learn Smithy拯救:该工具旨在通过询问一些关于它的问题来帮助您制作自己的估计量,然后生成样板代码。

这样,您就可以完全专注于核心实现逻辑,而不是scikit-learn API的琐碎细节。

合理性检查

一旦实现了核心逻辑,估计量就应准备好与 有些官方的 parametrize_with_checks pytest兼容装饰器进行测试

from sklearn.utils.estimator_checks import parametrize_with_checks

@parametrize_with_checks([
    YourAwesomeRegressor,
    MoreAwesomeClassifier,
    EvenMoreAwesomeTransformer,
])
def test_sklearn_compatible_estimator(estimator, check):
    check(estimator)

并且它应该与scikit-learn Pipeline、GridSearchCV等兼容。

官方指南

关于如何 开发估计量 的scikit-learn文档。

支持的估计量

以下类型的scikit-learn估计量受到支持

  • ✅ 分类器
  • ✅ 回归器
  • ✅ 异常检测器
  • ✅ 聚类器
  • ✅ 转换器
    • ✅ 特征选择器
  • 🚧 元估计量

安装

sklearn-smithy可在 pypi 上找到,因此您可以直接从那里安装

python -m pip install sklearn-smithy

备注:所需的最低Python版本是3.10。

这将使 smith 命令可在您的终端中使用,您应该能够运行以下命令

smith version

sklearn-smithy=...

额外依赖项

要运行TUI,您还需要安装 textual 依赖项

python -m pip install "sklearn-smithy[textual]"

用户指南 📚

请参阅专门的 用户指南 文档部分。

起源故事

这个工具的想法源于 scikit-lego #660,我无法比引用PR描述本身更好地解释它

所以故事是这样的

  • CI/CD因为scikit-learn==1.5rc1中的 check_estimator 内部更改而失败
  • scikit-learn问题 中,我更好地了解了如何运行兼容组件的测试
  • 特别是,自己编写估计量 建议使用 parametrize_with_checks,当然我想“这是一个很好的主意,避免手动处理每个测试”
  • 不多说,我进入了一个兔子洞来重构我们所有的测试 - 这本来是好的
  • 但是,这些测试失败帮助我发现代码库中的一些缺失部分

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源分布

sklearn_smithy-0.2.0.tar.gz (18.9 kB 查看哈希值)

上传时间 源码

构建发行版

sklearn_smithy-0.2.0-py3-none-any.whl (24.5 kB 查看哈希值)

上传时间 Python 3

支持