成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾行代碼搞定ML模型,低代碼機器學習Python庫正式開源

新聞 前端
PyCaret 庫支持在「低代碼」環境中訓練和部署有監督以及無監督的機器學習模型,提升機器學習實驗的效率。

 PyCaret 庫支持在「低代碼」環境中訓練和部署有監督以及無監督的機器學習模型,提升機器學習實驗的效率。

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

想提高機器學習實驗的效率,把更多精力放在解決業務問題而不是寫代碼上?低代碼平臺或許是個不錯的選擇。

最近,機器之心發現了一個開源低代碼機器學習 Python 庫 PyCaret,它支持在「低代碼」環境中訓練和部署有監督以及無監督的機器學習模型。

  • GitHub 地址:https://github.com/pycaret/pycaret
  • 用戶文檔:https://www.pycaret.org/guide
  • Notebook 教程:https://www.pycaret.org/tutorial

PyCaret 庫支持數據科學家快速高效地執行端到端實驗,與其他開源機器學習庫相比,PyCaret 庫只需幾行代碼即可執行復雜的機器學習任務。該庫適合有經驗的數據科學家、傾向于低代碼機器學習解決方案的公民數據科學家,以及編程背景較弱甚至沒有的新手。

PyCaret 庫支持多種 Notebook 環境,包括 Jupyter Notebook、Azure notebook 和 Google Colab。從本質上來看,PyCaret 是一個 Python 封裝器,封裝了多個機器學習庫和框架,如 sci-kit-learn、XGBoost、Microsoft LightGBM、spaCy 等。

機器學習實驗中所有步驟均可使用 PyCaret 自動開發的 pipeline 進行復現。在 Pycaret 中所執行的所有操作均按順序存儲在 Pipeline 中,該 Pipeline 針對模型部署進行了完全配置。

不管是填充缺失值、轉換類別數據、執行特征工程設計,還是調參,Pycaret 都能夠自動執行。而且 pipeline 可以保存為二進制文件格式,支持在不同環境中進行遷移。

PyCaret 包含一系列函數,用戶通過它們完成機器學習實驗。PyCaret 庫的函數可分為以下五個大類,涵蓋初始化、模型訓練、集成、分析與部署:

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

此外,PyCaret 提供 6 個模塊,支持有監督和無監督模型的訓練和部署,分別是分類、回歸、聚類、異常檢測、自然語言處理和關聯規則挖掘。每個模塊封裝特定的機器學習算法和不同模塊均可以使用的函數。用戶可以根據實驗類型,將模塊導入環境中。

几行代码搞定ML模型,低代码机器学习Python库正式开源

PyCaret 庫提供的六個模塊。

接下來,我們就來了解一下 PyCaret 庫的安裝和使用方法吧。

啟動 PyCaret

使用 pip 安裝 PyCaret。

使用命令行界面或 notebook 環境,運行下面的代碼進行安裝:

  1. pip install pycaret 

Azure notebook 和 Google Colab 用戶,可以運行下列代碼進行安裝:

  1. !pip install pycaret 

安裝 PyCaret 時會自動安裝所有依賴項,過程非常簡單,如下圖所示:

PyCaret 分步教程

數據獲取

該教程使用「糖尿病」數據集,目標是根據血壓、胰島素水平以及年齡等多種因素預測患者的預后情況(1 或 0)。數據集參見 PyCaret 的 GitHub 地址。

直接從 PyCaret 庫中導入數據集的最簡單方法是使用 pycaret.datasets 模塊中的 get_data 函數。

  1. from *pycaret.datasets* import *get_data* 
  2.  
  3. diabetes = *get_data*('diabetes'

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

get_data 的輸出。

PyCaret 可以直接處理 Pandas 數據幀。

環境配置

在 PyCaret 中執行任意機器學習實驗的第一步都是,通過導入所需模塊并初始化 setup() 來設置環境。如下示例中使用的模塊是 pycaret.classification。

模塊導入后,將通過定義數據結構「糖尿病」和目標變量「類變量」來初始化 setup()。

  1. from *pycaret.classification* import ***exp1 = *setup*(diabetes, target = 'Class variable'

 

几行代码搞定ML模型,低代码机器学习Python库正式开源

所有預處理的步驟都會應用至 setup() 中,PyCaret 擁有 20 余項功能可運用于 ML 相關的數據準備,例如根據 setup 函數中定義的參數來創建 Transformation pipeline,同時也會自動協調 Pipeline 中所有的相關性及依賴關系。這樣面對測試或者未見過的數據集,用戶無需再手動管理或是調整執行的順序。

PyCaret 的 Pipeline 可輕松地在各環境之間相互遷移,比如大規模運行或是輕松部署到生產環境中。下圖展示了 PyCaret 首次發布時可用的預處理功能:

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

PyCaret 的預處理功能。

數據預處理是機器學習的必要步驟,比如當初始化 setup() 時,缺失值填充、分類變量編碼、標簽編碼(將 yes or no 轉化為 1 or 0)以及 train-test-split 會自動執行。

模型比較

這是監督機器學習實驗(分類或回歸模塊)應該進行的第一步。compare_models 函數訓練模型庫中的所有模型,并使用 k 折交叉驗證(默認 k=10)來比較常見的評估指標。所使用的評估指標如下所示:

  • 分類模塊:準確度、AUC、Recall、精度、F1 和 Kappa;
  • 回歸模塊:MAE、MSE、RMSE、R2、RMSLE 和 MAPE。
  1. *compare_models*() 

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

compare_models() 函數的輸出。Output from compare_models( ) function

默認使用 10 折交叉驗證來評估指標,可以通過改變 fold 參數值來改變評估結果。默認使用精度值(由高到低)來分類 table,同樣可以通過改變 sort 參數值來改變分類結果。

模型創建

在 PyCaret 的任何模塊中,創建模型就像編寫 create_model 一樣簡單,它只需要一個參數,即作為字符串輸入來傳遞的模型名稱。此函數返回具有 k 折交叉驗證分數和訓練好的模型對象的表格。

  1. adaboost = *create_model*('adaboost'

几行代码搞定ML模型,低代码机器学习Python库正式开源

變量「adaboost」存儲一個由*create_model*函數返回的訓練模型對象,該對象是 scikit 學習估計器。可以通過在變量后使用標點(.)來訪問訓練對象的原始屬性。參見下面的示例:

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

訓練好的模型對象的屬性。

PyCaret 有 60 多個開源即用型算法。

模型調優

tune_model 函數用于自動調優機器學習模型的超參數。PyCaret 在預定義的搜索空間上使用隨機網格搜索。此函數返回具有 k 折交叉驗證分數和訓練好的模型對象的表格。

  1. tuned_adaboost = tune_model('ada'

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

在無監督模塊中的 tune_model 函數,比如 pycaret.nlp,pycaret.clustering 和 pycaret.anomaly 可以和監督模塊結合使用。舉例而言,通過評估監督 ML 模型中的目標或者損失函數,PyCaret 的 NLP 模塊可以用來調整準確度或 R2 等指標的數值。

模型集成

ensemble_model 函數用于集成訓練好的模型。它只需要一個參數,即訓練好的模型對象。此函數返回具有 k 折交叉驗證分數和訓練好的模型對象的表格。

  1. # creating a decision tree model 
  2.  
  3. dt = *create_model*('dt')# ensembling a trained dt model 
  4.  
  5. dt_bagged = *ensemble_model*(dt) 

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

該庫默認使用 Bagging 方法用于模型集成,用戶也可使用 ensemble_model 函數中的 method 參數將其轉換為 Boosting。

PyCaret 還提供了 blend_models 和 stack_models 功能,來集成多個訓練好的模型。

模型繪制

訓練好的機器學習模型的性能評估和診斷可以通過 plot_model 函數來完成,具體而言,將訓練模型對象和 plot 類型作為 plot_model 函數中的字符串輸入(string input)。

  1. # create a model 
  2.  
  3. adaboost = *create_model*('ada')# AUC plot 
  4.  
  5. *plot_model*(adaboost, plot = 'auc')# Decision Boundary 
  6.  
  7. *plot_model*(adaboost, plot = 'boundary')# Precision Recall Curve 
  8.  
  9. *plot_model*(adaboost, plot = 'pr')# Validation Curve 
  10.  
  11. *plot_model*(adaboost, plot = 'vc'

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

此外,用戶還可以使用 evaluate_model 函數在 notebook 的用戶界面上看到可視化圖。

  1. *evaluate_model*(adaboost) 

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

 

pycaret.nlp 模塊中的 plot_model 函數可用于可視化文本語料庫和語義主題模型。

模型解釋

數據中的關系呈非線性是實踐中常常出現的情況。這時總會看到基于樹的模型要比簡單的高斯模型的表現好得多。但這是以犧牲可解釋性為代價的,因為基于樹的模型無法像線性模型那樣提供簡單的系數。

PyCaret 通過 interpret_model 函數實現了 SHAP(SHapley Additive exPlanations)。

  1. # create a model 
  2.  
  3. xgboost = *create_model*('xgboost')# summary plot 
  4.  
  5. *interpret_model*(xgboost)# correlation plot 
  6.  
  7. *interpret_model*(xgboost, plot = 'correlation'

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

 

測試數據集上特定數據點的解釋可以通過『reason』圖來評估。如下圖所示:在測試數據集上檢查首個實例。

  1. *interpret_model*(xgboost, plot = 'reason', observation = 0

几行代码搞定ML模型,低代码机器学习Python库正式开源

模型預測

到目前為止,所看到的結果僅基于訓練數據集上 k 折交叉驗證(默認 70%)。所以為了得到模型在測試或者 hold-out 數據集上的預測結果和性能,用戶可以使用 predict_model 函數。如下所示:

  1. # create a model 
  2.  
  3. rf = *create_model*('rf')# predict test / hold-out dataset 
  4.  
  5. rf_holdout_pred* = predict_model*(rf) 

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

 

predict_model 函數還可以用來預測未見過的數據集。現在,將訓練時所使用的數據集用作新的未見過數據集的代理(proxy)。在實踐中,predict_model 函數會被迭代地使用,每次使用都會有一個新的未見過的數據集。

  1. predictions = *predict_model*(rf, data = diabetes) 

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

此外,對于使用 stack_models 和 create_stacknet 函數創建的模型,predict_model 函數可以預測它們的序列鏈。不僅如此,借助于 deploy_model 函數,predict_model 函數還可以直接基于托管在 AWS S3 上的模型進行預測。

模型部署

我們可以使用以下方法讓訓練好的模型在未見過的數據集上生成預測:在訓練模型的同一個 notebook 或 IDE 中使用 predict_model 函數。但是,在未見過的數據集上執行預測是一個迭代的過程。其中,基于用例的不同,預測可以分為實時預測和批量預測。

PyCaret 的 deploy_model 函數允許部署整個 pipeline,包括云端訓練的模型。

  1. *deploy_model*(model = rf, model_name = 'rf_aws', platform = 'aws',  
  2.  
  3.              authentication =  {'bucket'  : 'pycaret-test'}) 

模型/實驗保存

訓練完成后,包含所有預處理轉換和訓練模型對象在內的整個 pipeline 能夠以二進制 pickle 文件的格式保存。

  1. # creating model 
  2.  
  3. adaboost = *create_model*('ada')# saving model* 
  4.  
  5. save_model*(adaboost, model_name = 'ada_for_deployment'

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

 用戶也能夠以二進制文件的格式保存整個實驗,包括所有中間輸出(intermediary output)。

  1. *save_experiment*(experiment_name = 'my_first_experiment'

 å‡ è¡Œä»£ç æžå®šML模型,低代码机器学习Python库正式开源

最后,通過 PyCaret 所有模塊中可用的 load_model 和 load_experiment 函數,用戶還可以下載保存的模型和實驗。

 

責任編輯:張燕妮 來源: 機器之心
相關推薦

2020-10-18 07:19:47

低代碼機器學習低代碼工具

2022-03-23 15:19:00

低代碼開源阿里巴巴

2021-02-26 10:45:49

PyCaret低代碼Python

2021-09-24 16:30:28

無代碼低代碼機器學習

2020-08-03 09:48:04

Python 機器學習代碼

2021-09-08 11:02:32

Java代碼圖片

2022-08-09 13:44:37

機器學習PySpark M數據分析

2020-08-10 06:36:21

強化學習代碼深度學習

2019-05-14 09:53:31

代碼開發工具

2020-06-18 07:00:00

機器學習人工智能開源框架

2024-06-24 07:50:00

代碼機器學習

2020-08-03 12:47:58

DevOps數據科學家代碼

2024-11-12 13:41:49

2023-12-21 11:39:47

2021-07-05 12:36:22

低代碼編程語言開發平臺

2021-01-22 15:49:55

低代碼開源UBML

2023-11-06 10:50:35

機器學習LIME

2019-01-23 11:12:42

機器學習機器模型預測工資

2018-06-27 19:32:59

人工智能深度學習機器學習

2021-06-30 10:43:35

云系統架構代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久高清 | 成人在线不卡 | 黄在线| caoporn视频在线 | 成人在线网 | 久久精品国产亚洲夜色av网站 | 亚洲第一色站 | 精品久久久久久久 | 精品综合 | 亚洲免费视频网站 | 欧美一区二区三区在线观看视频 | 韩国精品在线观看 | 国产午夜精品久久 | 久久久激情视频 | 在线观看亚洲专区 | 国产精品一区二区无线 | 黄色在线免费观看视频 | 国产一区二区精品 | 国产午夜精品理论片a大结局 | 韩日在线视频 | 在线观看视频中文字幕 | 中文字幕日韩在线观看 | 99精品视频一区二区三区 | 国产精品久久久久久久久久久久 | 久久伊人亚洲 | 色网站在线免费观看 | www.日本在线观看 | 一区二区三区在线电影 | 成人水多啪啪片 | 日韩久草 | 日韩欧美中文字幕在线视频 | 欧美一级片在线看 | 中文字幕一区二区在线观看 | 国产一区二区在线免费视频 | 日韩欧美三级电影在线观看 | 欧美精品在线免费观看 | 免费国产一区二区 | 97视频在线观看免费 | 日本在线一二 | 日本小电影在线 | 中文字幕一区二区三区乱码在线 |