機器學習 自動建模工具PyCaret

2021-10-09 09:46:17 字數 2385 閱讀 1267

機器學習涉及資料分析、清洗、建模、評價、對比模型……無論是初學者,還是有經驗的開發者在面對新的專案時,都想要簡化這些工作,最好能用簡單的**、較短時間,就能得出初步驗證結果,之後再進一步優化。

希望能用乙個簡單的資料檔案,幾行通用的python語句,就能實現分析、建模和部署。pycaret就是這樣的工具:雖然沒有太多創新演算法,但極大地簡化了工作流程。這也讓機器學習的門檻越來越低。

pycaret是python開發的機器學習庫,它封裝了sklearn,xgboost,lightgbm,spacy,shap,pyod,gensim,wordcloud等工具,幾乎包括機器學習所有的使用場景和方法(不含深度學習):異常檢測anomaly detection,關聯規則association rules,分類classification,回歸regression,聚類clustering,自然語言處理nlp等。其中支援最豐富的還是分類和回歸。

pycaret遮蔽了具體使用細節,比如各種庫在建模,繪圖,特徵排序的不同呼叫方法。向外提供端到端(end-to-end)的統一開發工具,減少了學習成本讓不熟悉程式設計的其它領域人士,也能快速建模,而無需關注各種api的使用細節;同時也幫助專業人士更加高效地工作。

原始碼的tutorials目錄下有針對聚類分類等典型問題各種級別的入門示例,除了普通建模以外,還有整合模型、做圖分析等功能。目前2.2k github star,並一直在不斷更新。因為在快速開發迭代過程中,有些文件和當前**有一些對不上。內容結構雖然還不是特別嚴謹,但重點是確實能解決問題。即使不使用pycaret,也可以從例程中學習到常用機器學習庫的使用方法。

原始碼中提供dockerfile,用於建立包含pycaret的docker映象,不過pycaret相對比較簡單,推薦在環境中用命令直接安裝。

$ pip install pycaret
安裝時需要注意它依賴的各個機器學習庫的軟體版本匹配問題。

其核心**在專案的pycaret目錄中,目前包括:

anomaly.py 異常值檢測(無監督) arules.py 關聯規則(無監督)

classification.py 分類(有監督)

clustering.py 聚類(無監督)

datasets.py 資料載入(輔助工具)

nlp.py 自然語言處理(無監督)

preprocess.py 預處理(輔助工具,被其它模組內部呼叫)

regression.py 回歸(有監督)

基本流程一般包含:讀取資料->建模/對比模型->模型**->繪圖分析->模型匯出。包括以下常用方法:

get_data() 讀資料,例程中多為讀取示例資料,使用者可以使用自己的資料代替。

setup() 預處理,各種建模方法(如分類/聚類)根據自己的特點實現了不同的setup,其中幾乎都包含對預處理模組的呼叫。

models() 列出當前建模方法支援的所有模型。

compare_models() 訓練多個模型,並對比其效果。

create_model() 訓練模型。

predict_model() 使用模型**。

plot_model() 顯示模型相關的各種分析圖,如auc曲線,學習曲線,還包含詞雲圖等。

tune_model() 模型調參。

assign_model() 檢視無監督模型打標籤的情況。

evaluate_model() 評價模型。

deploy_model() 雲端部署。

ensemble_model() 整合模型。

finalize_model() 匯出最終模型和引數。

下例介紹用回歸模型**波士頓房價。

from pycaret.datasets import get_data

from pycaret.regression import * # 使用回歸方法

boston = get_data('boston') # 讀取資料

reg1 = setup(data = boston, target = 'medv') # 資料分析和預處理,指定目標變數medv

models() # 列出可用的建模方法

best = compare_models(include = ['dt','rf','xgboost']) # 對比決策樹、隨機森林、xgboost方法

model = create_model('xgboost') # 構建xgboost模型 plot_model(xgboost, plot='learning') # 繪製學習曲線

interpret_model(xgboost) # shap 特徵重要性分析

機器學習工具彙總

從機器學習談起 介紹工具是機器學習的重要組成部分,選擇合適的工具與使用最好的演算法同等重要。在這篇文章中,你將會見識到各種機器學習工具。了解它們為什麼重要,以及可供選擇的工具型別。機器學習工具使得應用機器學習更快,更簡單,更有趣。你不希望為學習 使用機器學習工具而學習 使用機器學習工具。必須有目的地...

機器學習工具彙總

在這篇文章中,你將會見識到各種機器學習工具。了解它們為什麼重要,以及可供選擇的工具型別。機器學習工具使得應用機器學習更快,更簡單,更有趣。你不希望為學習 使用機器學習工具而學習 使用機器學習工具。必須有目的地使用工具。機器學習工具可以讓你在機器學習專案中交付結果。當你試圖決定是否要學習新工具或是新功...

機器學習模型 知乎 機器學習 建模高階指南 (一)

歡迎來到vitu中級機器學習微課程!解決實際資料集中常見的資料型別 缺失值,分類變數 設計pipelines以提高機器學習 的質量,使用先進的技術進行模型驗證 交叉驗證 建立最先進的模型 xgboost 和 避免常見和重要的資料科學錯誤 洩漏leakage 在此過程中,您將通過每個新主題的實際資料的...