比Keras更好用的機(jī)器學(xué)習(xí)“模型包”:無需預(yù)處理,0代碼上手做模型
只用“下命令”,就能做模型
蕭簫 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
做機(jī)器學(xué)習(xí)模型時(shí),只是融合各種算法,就已經(jīng)用光了腦細(xì)胞?
又或者覺得,數(shù)據(jù)預(yù)處理就是在“浪費(fèi)時(shí)間”?
一位畢業(yè)于哥廷根大學(xué)、做機(jī)器學(xué)習(xí)的小哥也發(fā)現(xiàn)了這個(gè)問題:原本只是想設(shè)計(jì)個(gè)模型,結(jié)果“實(shí)現(xiàn)比設(shè)計(jì)還麻煩”。
于是他自己動(dòng)手做了個(gè)項(xiàng)目igel?(德語中意為“刺猬”,但也是Init、Generate、Evaluate Machine Learning的縮寫),無需編寫任何多余代碼,就能設(shè)計(jì)出想要的模型。
也就是說,用戶只需要知道各種機(jī)器學(xué)習(xí)模型的原理,但不需要再自己動(dòng)手寫代碼。
相比于Keras,這個(gè)項(xiàng)目進(jìn)一步簡化了預(yù)處理、輸入輸出的工作,就像“模型包”一樣簡便。
作者用了兩周的時(shí)間,做出了項(xiàng)目的1.0版本,一天以內(nèi)已有842 Star,目前還在快速上漲中。
由于只是1.0版本,作者表示,這個(gè)項(xiàng)目仍然有很大的完善空間。
但就目前的功能來說,已經(jīng)足夠進(jìn)行基本的機(jī)器學(xué)習(xí)建模了。
“讓機(jī)器學(xué)習(xí)生產(chǎn)變得自動(dòng)化”
作者建立這個(gè)項(xiàng)目的初衷,是希望為所有人提供機(jī)器學(xué)習(xí)模型。
無論是技術(shù)向工程師、還是非技術(shù)向的其他行業(yè)用戶,都能使用機(jī)器模型讓自己的工作更簡單。
說白了,就是將機(jī)器學(xué)習(xí)變成一個(gè)“自動(dòng)化”的過程,而他也這么設(shè)計(jì)了。
項(xiàng)目igel包含了當(dāng)前最新的所有機(jī)器學(xué)習(xí)模型(回歸、分類、聚類),而且作者表示,項(xiàng)目還在持續(xù)更新中。
也就是說,后續(xù)如果還有更新的機(jī)器學(xué)習(xí)模型,也會(huì)再加進(jìn)項(xiàng)目。
模型目前支持的功能有以下幾種:
支持所有最新的機(jī)器學(xué)習(xí)模型(甚至是預(yù)覽模型)
支持不同的數(shù)據(jù)預(yù)處理方法
在編寫配置時(shí)提供靈活性和數(shù)據(jù)控制
支持交叉驗(yàn)證
支持yaml和json格式
支持不同的sklearn指標(biāo)以進(jìn)行回歸,分類和聚類
支持多輸出/多目標(biāo)回歸和分類
支持多處理并行模型構(gòu)建
可以看出,作者為了偷懶讓機(jī)器學(xué)習(xí)生產(chǎn)變得更簡潔,也是操碎了心。
如果要上手的話,也非常簡便。
6步上手“模型包”
與其他程序一樣,作者為這個(gè)程序提供了“幫助”菜單,只需要輸入“igel -h”?(或igel -help),就能了解它的使用方法。
學(xué)習(xí)完使用方法后,就可以開始創(chuàng)建配置文件了,無論是yaml還是json格式,都o(jì)k。
如果你是個(gè)“懶癌患者”?(像作者一樣),可以使用“igel init”來初始化。
例如,想做個(gè)判斷“是否生病”功能的配置文件:
第一步,選擇功能、模型、目標(biāo):igel init -type “classification” -model “NeuralNetwork” -target “sick”
第二步,初始化:igel init
那么,程序就會(huì)給你生成一份配置文件,根據(jù)需要進(jìn)行修改。
在那之后,就是選擇具體的算法參數(shù)、并提供你所選的數(shù)據(jù)集了。
例如,想用隨機(jī)森林處理數(shù)據(jù),那么,只需要提供參數(shù)給系統(tǒng)(以及數(shù)據(jù)集、配置文件路徑),它就會(huì)幫你訓(xùn)練:
此外,還可以對模型/預(yù)訓(xùn)練模型進(jìn)行評估:
感覺不錯(cuò)?生成預(yù)測模型:
直接用起來:
簡單6步,機(jī)器模型(預(yù)覽模型)就已經(jīng)生成了,非常方便。
網(wǎng)友:太棒了,想要更多新功能
此外,作者也非常樂意采納各個(gè)網(wǎng)友的意見。
例如,一個(gè)網(wǎng)友指出,如果能用交叉驗(yàn)證進(jìn)行超參數(shù)搜索/調(diào)整,那么會(huì)是個(gè)很好的改進(jìn),而作者本人也立即采納了這個(gè)建議。
不過,也有網(wǎng)友表示,“讓一切程序自動(dòng)化”是沒有意義的。
畢竟作者已經(jīng)聲明,項(xiàng)目是建立在scikit-learn的基礎(chǔ)上的。但后者同樣幾行代碼就能做機(jī)器學(xué)習(xí),那么scikit-learn和這個(gè)項(xiàng)目有什么區(qū)別?
作者對此回應(yīng)稱,最大的區(qū)別在于,相比于編寫代碼,這個(gè)項(xiàng)目旨在以更“可讀”的方式設(shè)計(jì)想做的模型。
有網(wǎng)友認(rèn)可這樣的觀點(diǎn),畢竟對于許多做生產(chǎn)的機(jī)器學(xué)習(xí)工程師來說,“任何不需要做的編程工作”都是沒有意義的,是在“浪費(fèi)時(shí)間和金錢”。
對于這個(gè)項(xiàng)目,更多的網(wǎng)友表示了支持,并希望看見他的新功能。
對這個(gè)機(jī)器學(xué)習(xí)項(xiàng)目感興趣的小伙伴,可以通過下方傳送門查看~
作者介紹
Nidhal Baccouri,于今年4月在德國哥廷根大學(xué)取得碩士學(xué)位,研究方向是軟件、控制工程和人工智能。
目前,Nidhal Baccouri在汽車行業(yè)工作,研究方向是數(shù)字雙胞胎技術(shù),會(huì)同時(shí)應(yīng)用人工智能和物聯(lián)網(wǎng)的知識(shí)。業(yè)余時(shí)間,他喜歡做做項(xiàng)目,尤其是與AI和Python相關(guān)的項(xiàng)目。
傳送門
項(xiàng)目地址:
https://github.com/nidhaloff/igel
參考鏈接:
https://news.ycombinator.com/item?id=24671525
https://nidhalbacc.azurewebsites.net/