igel
用 YAML 描述任务,igel 自动完成机器学习训练、评估与预测
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 YAML 描述任务,igel 自动完成机器学习训练、评估与预测
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:Igel 命令行工作流程演示 —— 用 YAML 配置即可完成模型训练
想象这样一个场景:你是某公司的数据分析师,今天老板突然说"帮我跑个用户流失预测模型,下班前要"。往常你得先翻文档调 sklearn,再写一堆 DataFrame 变换代码,光是环境配置就够折腾半天。
现在,你只需要写一个 YAML 文件,告诉 Igel 你的数据在哪、任务类型是什么、想要什么模型——然后敲下回车。这就是 Igel 试图解决的问题。
Igel 由突尼斯裔德国开发者 Nidhal Baccouri 于 2020 年 8 月创建,项目名 "Igel"(德语"刺猬")取自作者的绰号。这位当时在德国研究机器学习的研究生,在反复编写 sklearn 训练循环中感到了深深的疲惫——每次做概念验证(POC)都要写一堆模板代码、调试数据管道,明明只是想快速验证一个想法,却要花大量时间在"工程"而非"算法"上。
他决定做一款工具,让机器学习变得像写配置文件一样简单。2020 年 8 月项目上线后迅速获得关注,在 GitHub Trending 上一度登榜,吸引了来自全球的数据科学家和学生用户。目前已积累 3,134 颗星、206 个 Fork,并被收录于 AutoML 相关 Awesome 列表中。
Igel 的设计哲学是**"声明式配置优于命令式代码"**。用户不需要写 Python 代码,只需准备一个 YAML(或 JSON)配置文件,描述清楚以下内容:
数据集路径:CSV、Excel、TXT、JSON、HTML 均可
任务类型:回归(regression)、分类(classification)、聚类(clustering)
模型选择:可以使用默认推荐模型,也可以手动指定(如 RandomForest、SVM 等数十种)
评估指标:MSE、准确率、F1、ROC-AUC 等
超参数搜索:可选,让 AutoML 自动帮你调参
提交后,Igel 会自动完成:数据加载 → 预处理(缺失值填充、特征编码、归一化)→ 模型训练 → 交叉验证 → 结果评估 → 模型保存,全流程无需用户写一行代码。

图2:igel evaluate 命令 —— 自动输出各指标评估结果
从 v0.2.8 开始,Igel 引入了 AutoML 支持,基于 AutoKeras 框架,能够处理:
图像分类(ImageClassifier):输入原始图片文件夹,自动搜索最优 CNN 架构
文本分类(TextClassifier):支持原始文本数据的自动分类
结构化数据分类/回归(StructuredDataClassifier/Regressor):表格数据的 AutoML
AutoModel:全自动模式,无需指定任务类型,Igel 自动推断
Igel 提供 5 个核心命令:
| 命令 | 功能 |
|---|---|
igel fit | 训练模型 |
igel evaluate | 评估模型性能 |
igel predict | 用训练好的模型做预测 |
igel experiment | 快速实验模式,自动比较多个模型 |
igel export | 导出为 ONNX 格式,实现跨平台部署 |
每个命令都支持交互式模式(--interactive),用户无需查阅文档,命令行会逐步引导填写配置。

图3:igel experiment 自动对比多个模型,快速找到最优方案
Igel 是典型的站在巨人肩膀上的项目,核心技术栈包括:
| 依赖库 | 作用 |
|---|---|
| scikit-learn | 提供全部基础 ML 算法(回归、分类、聚类) |
| AutoKeras | 驱动 AutoML 功能(图像/文本分类) |
| pandas / numpy | 数据处理 |
| PyYAML | 解析用户配置文件 |
| click | 构建命令行界面 |
| FastAPI + Uvicorn | 提供 HTTP API 服务端(可选启用) |
| skl2onnx | 模型格式转换 |
项目本身代码量不大(igel/ 目录约 24 个 Python 文件),采用插件式架构:Igel 主类承担调度角色,具体功能分散在 data.py(数据处理/模型字典)、preprocessing.py(预处理)、hyperparams.py(超参搜索)等子模块中,职责划分清晰。
完整的 pytest 测试套件
pre-commit 配置(代码风格、lint)
ReadTheDocs 文档托管
MIT 开源协议
代码质量评分可达 80/100,属于中等偏上水平——对于一个个人项目而言已相当不错。
零编码门槛:任何懂机器学习概念但不会写代码的人,都能快速上手
AutoML 加持:即使不了解模型选择,也能借助 AutoKeras 找到不错的方案
多任务支持:覆盖回归、分类、聚类三大类问题,兼顾表格和媒体数据
交互式 CLI:内置引导模式,新手友好
ONNX 导出:训练好的模型可导出为 ONNX 格式,方便在生产环境中部署
不支持深度学习自定义:AutoML 只能用于图像/文本,复杂自定义神经网络场景不适用
生产环境慎用:CLI 工具定位,适合 POC 和教学,不适合作为生产级 ML Pipeline 的核心组件
更新频率下降:项目最新更新停留在 2021 年左右,后续维护较少
依赖版本老旧:pyproject.toml 中指定了较旧版本的依赖(如 scikit-learn 0.23.2),可能与新版 Python 不兼容
Igel 是一款将机器学习训练过程"配置化"的命令行工具,适合需要快速验证 ML 想法的非程序员和教学场景。 如果你厌倦了每次做 POC 都要写 sklearn boilerplate,Igel 值得一试。