調(diào)包俠神器2.0發(fā)布,Python機器學(xué)習模型搭建只需要幾行代碼
比SKlearn更好上手
蕭簫 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
Python開源機器學(xué)習建模庫PyCaret,剛剛發(fā)布了2.0版本。
這款堪稱「調(diào)包俠神器」的模型訓(xùn)練工具包,幾行代碼就能搞定模型編寫、改進和微調(diào)。
從數(shù)據(jù)預(yù)處理到模型效果對比,PyCaret都能自動實現(xiàn)。
所以,PyCaret長啥樣,2.0的版本又做了什么改進?
一起來看看。
機器學(xué)習庫的「煉丹爐」
PyCaret說白了,有點像一個機器學(xué)習庫的煉丹爐。
以下是它「熔」進來的部分庫:
數(shù)據(jù)處理:pandas、numpy…數(shù)據(jù)可視化:matplotlib、seaborn…各種模型:sklearn、xgboost、catboost、lightgbm…
嗯…sklearn直接就給封裝進去了,調(diào)用很方便。
然后,PyCaret這個煉丹爐,自帶功能“按鍵”(定義了一些函數(shù)),包括數(shù)據(jù)預(yù)處理、模型訓(xùn)練、模型集成、模型分析、模型測試等。
只需要寫上幾行Python代碼,這些功能“按鍵”就會被按下,PyCaret自動幫你實現(xiàn)。
至于實現(xiàn)過程中需要調(diào)用什么基本庫,那些可以放棄思考不需要考慮。
從下圖來看,僅僅是預(yù)處理階段,就包含樣本劃分、數(shù)據(jù)預(yù)處理、缺失值處理、歸一化、獨熱編碼等功能。
如果要實現(xiàn)必需的預(yù)處理功能,需要多少行代碼來調(diào)用?
答案是0行。
因為,當使用setup()進行初始化時,PyCaret將自動執(zhí)行機器學(xué)習必需的數(shù)據(jù)預(yù)處理步驟,包括缺失值插入、分類變量編碼、標簽編碼、數(shù)據(jù)集拆分等。
例如,在數(shù)據(jù)處理前,你發(fā)現(xiàn)數(shù)據(jù)集有空缺的地方(下圖中NaN部分)。
別怕,PyCaret會自動分析數(shù)據(jù),進行缺失值插入。
預(yù)處理后,PyCaret還貼心地幫你準備了各種模型。
從模型訓(xùn)練、選用到測試,只有你想不到的,沒有它做不了的。
如果已經(jīng)將數(shù)據(jù)處理好,并交給PyCaret,一個compare_models函數(shù)就能訓(xùn)練庫中的所有模型,進行結(jié)果比較后,標出最佳模型。
如下圖,各種模型指標的最優(yōu)值會被一鍵標黃,就看你怎么選擇了。
選好后,想對模型進行一點優(yōu)化?一個tune_model函數(shù)就能幫你搞定。
或者,不想僅僅選用一個模型?
PyCaret也準備了模型集成的函數(shù),blend和stack任你選。
除此之外,模型參數(shù)的分析(包括可視化)也只需要幾行代碼就能實現(xiàn),功能非常強大。
最后,PyCaret還能為新數(shù)據(jù)提供迭代預(yù)測結(jié)果,下面的效果,同樣只需要幾行代碼就能完成。
那么,這次PyCaret增強,進行了什么改進呢?(項目見傳送門)
PyCaret 2.0增強版
這是PyCaret 2.0的6大特色,有些在1.0就有了,有些功能如實驗日志,看起來是更新后新加入的功能。
實驗日志,對于模型的調(diào)整不可或缺。
例如,想要將訓(xùn)練過程中模型的精度變化可視化,通常我們會在模型中加入生成日志文件的函數(shù),生成一個更直觀的時間-精度變化圖。
PyCaret 2.0加入了實驗日志的功能,自動幫你跟蹤模型實驗過程中的各項指標,以及生成視覺效果等。
不僅如此,在2.0中,模型生成到預(yù)測的所有工作流程,現(xiàn)在可以被設(shè)計了。
也就是說,你可以設(shè)置一條自定義「流水線」,在這個過程中,從訓(xùn)練到測試,所有模塊的功能都會被自動化完成。
甚至,PyCaret 2.0還提供了機器學(xué)習模型前端軟件的搭建工具。
以及,PyCaret 2.0現(xiàn)在幾乎支持所有算法的并行處理,xgboost和catboost模型也支持GPU訓(xùn)練。
除此之外,還有一些新的程序功能,等待你去發(fā)現(xiàn)。
傳送門
項目地址:https://github.com/pycaret/pycaret/releases/tag/2.0
參考鏈接:https://towardsdatascience.com/announcing-pycaret-2-0-39c11014540e