【我們為什麼挑選這篇文章】大家在建立機器學習模型時,難免會遇到發生錯誤、必須回過頭從一大串混亂的程式碼中,一步步驗證除錯的情況。PyCaret 這個開源的機器學習套件或許可以減輕你的痛苦,它不只附帶強大的機器學習工具如 scikit-learn、XGBoost,甚至只要幾行程式碼就能輕鬆解決問題。(責任編輯:賴佩萱)
本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位
Python 開源機器學習建模庫 PyCaret,剛剛發布了 2.0 版本。這款堪稱「調包俠神器」的模型訓練工具包,幾行程式碼就能搞定模型編寫、改進和微調。
從數據預處理到模型效果對比,PyCaret 都能自動實現,所以 PyCaret 長什麼樣,2.0 的版本又做了什麼改進?一起來看看。
從數據準備到模型部署,PyCaret 用一行程式碼完成多種任務
PyCaret 說白了,有點像一個機器學習庫的煉丹爐。
以下是它「熔」進來的部分庫:數據處理—pandas、numpy、數據可視化—matplotlib、seaborn、各種模型—sklearn、xgboost、catboost、lightgbm。
嗯…sklearn直接就給封裝進去了,調用很方便!
然後,PyCaret 這個煉丹爐,自帶功能「按鍵」(定義了一些函數),包括數據預處理、模型訓練、模型集成、模型分析、模型測試等。只需要寫上幾行 Python 程式碼,這些功能「按鍵」就會被按下,PyCaret 自動幫你實現。
至於實現過程中需要調用什麼基本庫,那些你不需要考慮。
從下圖來看,僅僅是預處理階段,就包含樣本劃分、數據預處理、缺失值處理、歸一化、獨熱編碼等功能。
如果要實現必需的預處理功能,需要多少行程式碼來調用?
答案是 0 行。因為,當使用 setup() 進行初始化時,PyCaret 將自動執行機器學習必需的數據預處理步驟,包括缺失值插入、分類變量編碼、標籤編碼、數據集拆分等。
例如,在數據處理前,你發現數據集有空缺的地方(下圖中 NaN 部分)。
別怕,PyCaret 會自動分析數據,進行缺失值插入。
預處理後,PyCaret 還貼心地幫你準備了各種模型。從模型訓練、選用到測試,只有你想不到的,沒有它做不了的。
如果已經將數據處理好,並交給 PyCaret,一個 compare_models 函數就能將訓練庫中的所有模型,進行結果比較後,標出最佳模型。
如下圖,各種模型指標的最優值會被一鍵標黃,就看你怎麼選擇了。
選好後,想對模型進行一點優化?一個 tune_model 函數就能幫你搞定。或者,不想僅僅選用一個模型?PyCaret 也準備了模型集成的函數,blend 和 stack 任你選。
除此之外,模型參數的分析(包括可視化)也只需要幾行程式碼就能實現,功能非常強大。
最後,PyCaret 還能為新數據提供迭代預測結果,下面的效果,同樣只需要幾行代就能完成。
PyCaret 2.0 新增了哪些強大功能?
這是 PyCaret 2.0 的 6 大特色,有些在 1.0 就有了,有些功能如實驗日誌,看起來是更新後新加入的功能。
實驗日誌對於模型的調整不可或缺。例如,想要將訓練過程中模型的精度變化可視化,通常我們會在模型中加入生成日誌文件的函數,來生成一個更直觀的時間——精度變化圖。
PyCaret 2.0 加入了實驗日誌的功能,自動幫你追蹤模型實驗過程中的各項指標,同時生成視覺效果等。
不僅如此,在 2.0 中,模型生成到預測的所有工作流程,現在可以被設計了。也就是說,你可以設置一條自定義「流水線」,在這個過程中,從訓練到測試,所有模組的功能都會被自動化完成。
甚至,PyCaret 2.0 還提供了機器學習模型前端軟體的搭建工具,且幾乎支持所有演算法的並行處理,xgboost 和 catboost 模型也支持 GPU 訓練。
除此之外,還有一些新的程序功能,等待你去發現。
(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈調包俠神器 2.0 發布,Python 機器學習模型搭建只需要幾行代碼〉。)