在构建机器学习模型时,是否感觉到融合各种算法已经让你绞尽脑汁?
又或者觉得数据预处理是在“浪费时间”?
一位在哥廷根大学毕业的机器学习爱好者也意识到了这一点:他原本只是想设计一个模型,但却发现“实现的复杂程度超出了设计本身”。
因此,他动手开发了一个项目igel(德语意为“刺猬”,同时也是InIT、GeneRate、Evaluate MacHine learning的缩写),使得用户无需编写多余代码,就能轻松设计想要的模型。

换句话说,用户只需理解各种机器学习模型的原理,而无需自己动手编码。
相较于Keras,这个项目进一步简化了数据预处理和输入输出的流程,像一个“模型包”一样便捷。
作者在两周内完成了项目的1.0版本,发布后短短一天便获得了842个Star,并且这个数字还在持续增长。

尽管目前只是1.0版本,作者表示项目仍有很大的改进空间。
但现有的功能已足以支持基本的机器学习建模需求。
他的目标是“让机器学习的生产过程实现自动化”。
该项目旨在为所有人提供易用的机器学习模型,无论是技术工程师还是来自其他领域的非技术用户,都能利用这些模型简化工作。
简单来说,就是将机器学习的过程变得“自动化”,而他也按照这个思路进行了设计。
项目igel涵盖了当前最新的所有机器学习模型(包括回归、分类和聚类),并且作者表示该项目还在不断更新中。

这意味着后续会有更多新型机器学习模型被加入到项目中。
目前模型支持的功能包括:
- 支持所有最新的机器学习模型(甚至是预览模型)
- 支持多种数据预处理方法
- 在配置编写时提供灵活性和数据控制
- 支持交叉验证
- 支持YAML和JSON格式
- 支持多种sklearn指标,用于回归、分类和聚类分析
- 支持多输出/多目标回归和分类
- 支持多处理并行模型构建
可见,作者在简化机器学习生产过程中付出了很多心血。
如果想要上手使用,也非常简单。
只需6步即可开始使用这个“模型包”。
和其他程序一样,作者为此提供了“帮助”菜单,只需输入“igel -h”(或igel -help),便能了解到使用方法。

掌握用法后,就可以开始创建配置文件,无论是YAML还是JSON格式都可以。
如果你是个“懒癌患者”(像作者一样),可以使用“igel inIT”来初始化。
例如,若要创建一个判断“是否生病”的配置文件:
第一步,选择功能、模型、目标:igel inIT -type “classification” -Model “NeuralNetwork” -target “Sick”
第二步,初始化:igel inIT
程序将自动生成一份配置文件,用户可根据需要进行修改。

接下来就是选择具体的算法参数,并提供所选数据集。
例如,若要使用随机森林处理数据,只需提供参数(包括数据集和配置文件路径),系统将协助训练:

此外,还可以对模型或预训练模型进行评估:

觉得效果不错?那就生成预测模型:

直接使用起来:

通过这简单6步,机器模型(预览模型)便可轻松生成,非常方便。
作者介绍

Nidhal BaCCOuRi,今年4月在德国哥廷根大学取得硕士学位,研究方向为软件、控制工程与人工智能。
目前,他在汽车行业工作,专注于数字双胞胎技术,结合人工智能与物联网的知识,并在业余时间进行与AI和Python相关的项目。
项目地址:
https://Github.coM/nidhaloFF/igel
