比Keras更好用的機器學習“模型包”:0代碼上手做模型
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
做機器學習模型時,只是融合各種算法,就已經用光了腦細胞?
又或者覺得,數據預處理就是在“浪費時間”?
一位畢業于哥廷根大學、做機器學習的小哥也發現了這個問題:原本只是想設計個模型,結果“實現比設計還麻煩”。
于是他自己動手做了個項目igel (德語中意為“刺猬”,但也是Init、Generate、Evaluate Machine Learning的縮寫),無需編寫任何多余代碼,就能設計出想要的模型。
也就是說,用戶只需要知道各種機器學習模型的原理,但不需要再自己動手寫代碼。
相比于Keras,這個項目進一步簡化了預處理、輸入輸出的工作,就像“模型包”一樣簡便。
作者用了兩周的時間,做出了項目的1.0版本,一天以內已有842 Star,目前還在快速上漲中。

由于只是1.0版本,作者表示,這個項目仍然有很大的完善空間。
但就目前的功能來說,已經足夠進行基本的機器學習建模了。
“讓機器學習生產變得自動化”
作者建立這個項目的初衷,是希望為所有人提供機器學習模型。
無論是技術向工程師、還是非技術向的其他行業用戶,都能使用機器模型讓自己的工作更簡單。
說白了,就是將機器學習變成一個“自動化”的過程,而他也這么設計了。
項目igel包含了當前最新的所有機器學習模型(回歸、分類、聚類),而且作者表示,項目還在持續更新中。

也就是說,后續如果還有更新的機器學習模型,也會再加進項目。
模型目前支持的功能有以下幾種:
支持所有最新的機器學習模型(甚至是預覽模型)
支持不同的數據預處理方法
在編寫配置時提供靈活性和數據控制
支持交叉驗證
支持yaml和json格式
支持不同的sklearn指標以進行回歸,分類和聚類
支持多輸出/多目標回歸和分類
支持多處理并行模型構建
可以看出,作者為了偷懶讓機器學習生產變得更簡潔,也是操碎了心。
如果要上手的話,也非常簡便。
6步上手“模型包”
與其他程序一樣,作者為這個程序提供了“幫助”菜單,只需要輸入“igel -h” (或igel -help),就能了解它的使用方法。

學習完使用方法后,就可以開始創建配置文件了,無論是yaml還是json格式,都ok。
如果你是個“懶癌患者” (像作者一樣),可以使用“igel init”來初始化。
例如,想做個判斷“是否生病”功能的配置文件:
第一步,選擇功能、模型、目標:igel init -type “classification” -model “NeuralNetwork” -target “sick”
第二步,初始化:igel init
那么,程序就會給你生成一份配置文件,根據需要進行修改。

在那之后,就是選擇具體的算法參數、并提供你所選的數據集了。
例如,想用隨機森林處理數據,那么,只需要提供參數給系統(以及數據集、配置文件路徑),它就會幫你訓練:

此外,還可以對模型/預訓練模型進行評估:

感覺不錯?生成預測模型:

直接用起來:

簡單6步,機器模型(預覽模型)就已經生成了,非常方便。
網友:太棒了,想要更多新功能
此外,作者也非常樂意采納各個網友的意見。
例如,一個網友指出,如果能用交叉驗證進行超參數搜索/調整,那么會是個很好的改進,而作者本人也立即采納了這個建議。

不過,也有網友表示,“讓一切程序自動化”是沒有意義的。

畢竟作者已經聲明,項目是建立在scikit-learn的基礎上的。但后者同樣幾行代碼就能做機器學習,那么scikit-learn和這個項目有什么區別?
作者對此回應稱,最大的區別在于,相比于編寫代碼,這個項目旨在以更“可讀”的方式設計想做的模型。

有網友認可這樣的觀點,畢竟對于許多做生產的機器學習工程師來說,“任何不需要做的編程工作”都是沒有意義的,是在“浪費時間和金錢”。

對于這個項目,更多的網友表示了支持,并希望看見他的新功能。

對這個機器學習項目感興趣的小伙伴,可以通過下方傳送門查看~
作者介紹
Nidhal Baccouri,于今年4月在德國哥廷根大學取得碩士學位,研究方向是軟件、控制工程和人工智能。
目前,Nidhal Baccouri在汽車行業工作,研究方向是數字雙胞胎技術,會同時應用人工智能和物聯網的知識。業余時間,他喜歡做做項目,尤其是與AI和Python相關的項目。
傳送門
項目地址:
https://github.com/nidhaloff/igel