创建与scikit-learn兼容估计器的工具集。
项目描述
Scikit-learn Smithy
Scikit-learn Smithy是一个帮助您轻松创建与scikit-learn兼容估计器的工具。
如何使用它?
✅ 作为终端中的TUI(终端用户界面)。
所有这些工具将提示一系列关于您想要创建的估计量的问题,然后为您生成样板代码。
为什么❓
编写与scikit-learn兼容的估计量可能比预期的要难。
虽然每个人都听说过 fit
和 predict
,但根据您编写的估计量类型,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 查看哈希值)
关闭
sklearn_smithy-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa61505872cfd40ffe8695d711688a2b9d8c5cc7762241f92567f0e187575d07 |
|
MD5 | 80cae5969a57d614f812c6450b0e102c |
|
BLAKE2b-256 | 4ff600e9fca8e50fe7b5c279790d2bd020c2f172b41b7f504ec70efc9eda18ce |
关闭
sklearn_smithy-0.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1769f7c128d0c43f6143a5ced01cc7298ba943d3fcb13953c14f94e91910ca98 |
|
MD5 | aa549711383a44811ec2b2d8041bd050 |
|
BLAKE2b-256 | f4920b8d6b01fbb639b16560c18506cd1b66c6f168972d34bc614ca7b9cfbd16 |