【比 Keras 更好用?】德工程師開發全自動機器學習模型包,不用動手寫任何程式!

【我們為什麼挑選這篇文章】製作機器學習模型最麻煩的不外乎是資料整理和最佳化,如何簡化流程,讓整個過程更自動化呢?德國工程師花了兩周的時間開發出一個無需編寫任何程式碼,就能設計出模型的「模型包」,有網友認為可以更省時,但也有網友認為這樣做失去了寫程式的樂趣,你覺得呢?(責任編輯:賴佩萱)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處

作者:量子位

做機器學習模型時,只是融合各種算法,就已經用光了腦細胞?又或者覺得,數據預處理就是在「浪費時間」?

一位畢業於哥廷根大學、做機器學習的小哥也發現了這個問題:原本只是想設計個模型,結果「實現比設計還麻煩」。

於是他自己動手做了個專案 igel (德語中意為「刺猬」,但也是 Init、Generate、Evaluate Machine Learning 的縮寫),無需編寫任何多餘程式碼,就能設計出想要的模型。

也就是說,使用者只需要知道各種機器學習模型的原理,但不需要再自己動手寫程式碼。相比於 Keras,這個專案進一步簡化了預處理、輸入輸出的工作,就像「模型包」一樣簡便。

作者用了兩週的時間,做出了項目的 1.0 版本,一天以內已有 842 Star,目前還在快速上漲中。由於只是 1.0 版本,作者表示,這個專案仍然有很大的完善空間,但就目前的功能來說,已經足夠進行基本的機器學習建模了。

讓機器學習自動化

作者建立這個專案的初衷,是希望為所有人提供機器學習模型。無論是技術面工程師、還是非技術面的其他行業用戶,都能使用機器模型讓自己的工作更簡單。

說白了,就是將機器學習變成一個「自動化」的過程,而他也這麼設計了。

項目 igel 包含了當前最新的所有機器學習模型(回歸、分類、聚類),而且作者表示,項目還在持續更新中;也就是說,後續如果還有更新的機器學習模型,也會再加進專案。

模型目前支援的功能有以下幾種:

  • 所有最新的機器學習模型(甚至是預覽模型)
  • 不同的數據預處理方法
  • 在編寫配置時提供靈活性和數據控制
  • 交叉驗證
  • yaml 和 json 格式
  • 不同的 sklearn 指標以進行回歸,分類和聚類
  • 多輸出/多目標回歸和分類
  • 多處理並行模型構建

可以看出,作者為了偷懶,讓機器學習生產變得更簡潔,也是操碎了心。

如果要上手的話,也非常簡便。

六步輕鬆上手懶人模型包

與其他程序一樣,作者為這個程序提供了「幫助」菜單,只需要輸入「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 在汽車行業工作,研究方向是數位雙生技術(digital twins),會同時應用人工智慧和物聯網的知識。業餘時間,他喜歡做做專案,尤其是與 AI 和 Python 相關的專案。

專案傳送門:https://github.com/nidhaloff/igel
參考資料:《ycombinator》、《nidhalbacc

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈比 Keras 更好用的機器學習“模型包”:無需預處理,0 代碼上手做模型〉;首圖來源:unsplash。)

你可能會有興趣