机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型


萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI
做机器学习模型时 , 只是融合各种算法 , 就已经用光了脑细胞?
又或者觉得 , 数据预处理就是在“浪费时间”?
一位毕业于哥廷根大学、做机器学习的小哥也发现了这个问题:原本只是想设计个模型 , 结果“实现比设计还麻烦” 。
于是他自己动手做了个项目igel (德语中意为“刺猬” , 但也是Init、Generate、Evaluate Machine Learning的缩写) , 无需编写任何多余代码 , 就能设计出想要的模型 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
也就是说 , 用户只需要知道各种机器学习模型的原理 , 但不需要再自己动手写代码 。
相比于Keras , 这个项目进一步简化了预处理、输入输出的工作 , 就像“模型包”一样简便 。
作者用了两周的时间 , 做出了项目的1.0版本 , 一天以内已有842 Star , 目前还在快速上涨中 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
由于只是1.0版本 , 作者表示 , 这个项目仍然有很大的完善空间 。
但就目前的功能来说 , 已经足够进行基本的机器学习建模了 。
“让机器学习生产变得自动化”
作者建立这个项目的初衷 , 是希望为所有人提供机器学习模型 。
无论是技术向工程师、还是非技术向的其他行业用户 , 都能使用机器模型让自己的工作更简单 。
说白了 , 就是将机器学习变成一个“自动化”的过程 , 而他也这么设计了 。
项目igel包含了当前最新的所有机器学习模型(回归、分类、聚类) , 而且作者表示 , 项目还在持续更新中 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
也就是说 , 后续如果还有更新的机器学习模型 , 也会再加进项目 。
模型目前支持的功能有以下几种:
支持所有最新的机器学习模型(甚至是预览模型)
支持不同的数据预处理方法
在编写配置时提供灵活性和数据控制
支持交叉验证
支持yaml和json格式
支持不同的sklearn指标以进行回归 , 分类和聚类
支持多输出/多目标回归和分类
支持多处理并行模型构建
可以看出 , 作者为了偷懒让机器学习生产变得更简洁 , 也是操碎了心 。
如果要上手的话 , 也非常简便 。
6步上手“模型包”
与其他程序一样 , 作者为这个程序提供了“帮助”菜单 , 只需要输入“igel -h” (或igel -help) , 就能了解它的使用方法 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
学习完使用方法后 , 就可以开始创建配置文件了 , 无论是yaml还是json格式 , 都ok 。
如果你是个“懒癌患者” (像作者一样) , 可以使用“igel init”来初始化 。
例如 , 想做个判断“是否生病”功能的配置文件:
第一步 , 选择功能、模型、目标:igel init -type “classification” -model “NeuralNetwork” -target “sick”
第二步 , 初始化:igel init
那么 , 程序就会给你生成一份配置文件 , 根据需要进行修改 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
在那之后 , 就是选择具体的算法参数、并提供你所选的数据集了 。
例如 , 想用随机森林处理数据 , 那么 , 只需要提供参数给系统(以及数据集、配置文件路径) , 它就会帮你训练:

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型分页标题
本文插图
此外 , 还可以对模型/预训练模型进行评估:

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
感觉不错?生成预测模型:

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
直接用起来:

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
简单6步 , 机器模型(预览模型)就已经生成了 , 非常方便 。
网友:太棒了 , 想要更多新功能
此外 , 作者也非常乐意采纳各个网友的意见 。
例如 , 一个网友指出 , 如果能用交叉验证进行超参数搜索/调整 , 那么会是个很好的改进 , 而作者本人也立即采纳了这个建议 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
不过 , 也有网友表示 , “让一切程序自动化”是没有意义的 。
毕竟作者已经声明 , 项目是建立在scikit-learn的基础上的 。 但后者同样几行代码就能做机器学习 , 那么scikit-learn和这个项目有什么区别?
作者对此回应称 , 最大的区别在于 , 相比于编写代码 , 这个项目旨在以更“可读”的方式设计想做的模型 。
有网友认可这样的观点 , 毕竟对于许多做生产的机器学习工程师来说 , “任何不需要做的编程工作”都是没有意义的 , 是在“浪费时间和金钱” 。
对于这个项目 , 更多的网友表示了支持 , 并希望看见他的新功能 。

机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
本文插图
对这个机器学习项目感兴趣的小伙伴 , 可以通过下方传送门查看~
作者介绍
Nidhal Baccouri , 于今年4月在德国哥廷根大学取得硕士学位 , 研究方向是软件、控制工程和人工智能 。
【机器学习|比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型】目前 , Nidhal Baccouri在汽车行业工作 , 研究方向是数字双胞胎技术 , 会同时应用人工智能和物联网的知识 。 业余时间 , 他喜欢做做项目 , 尤其是与AI和Python相关的项目 。