日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何使用PyCaret-低代碼ML庫(kù)

當(dāng)我們研究監(jiān)督的機(jī)器學(xué)習(xí)問(wèn)題時(shí),如果我們對(duì)結(jié)果感到滿意,那么很容易看到隨機(jī)森林或梯度提升模型如何執(zhí)行并停止實(shí)驗(yàn)。如果您僅用一行代碼就可以比較許多不同的模型,該怎么辦?如果您可以將數(shù)據(jù)科學(xué)過(guò)程的每個(gè)步驟(從功能工程到模型部署)減少到僅幾行代碼,該怎么辦?

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比南漳網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式南漳網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南漳地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

這正是PyCaret發(fā)揮作用的地方。PyCaret是一個(gè)高級(jí),低代碼的Python庫(kù),它使僅需幾行代碼即可輕松比較,訓(xùn)練,評(píng)估,調(diào)整和部署機(jī)器學(xué)習(xí)模型。從本質(zhì)上講,PyCaret基本上只是許多Scikit-learn,Yellowbrick,SHAP,Optuna和Spacy等數(shù)據(jù)科學(xué)庫(kù)的大型包裝。是的,您可以將這些庫(kù)用于相同的任務(wù),但是如果您不想編寫(xiě)大量代碼,PyCaret可以節(jié)省大量時(shí)間。

在本文中,我將演示如何使用PyCaret快速輕松地構(gòu)建機(jī)器學(xué)習(xí)項(xiàng)目并為部署準(zhǔn)備最終模型。

安裝PyCaret

PyCaret是一個(gè)具有很多依賴項(xiàng)的大型庫(kù)。我建議使用Conda為PyCaret創(chuàng)建一個(gè)虛擬環(huán)境,這樣安裝不會(huì)影響您現(xiàn)有的任何庫(kù)。要在Conda中創(chuàng)建和激活虛擬環(huán)境,請(qǐng)運(yùn)行以下命令:

 
 
 
 
  1. conda create --name pycaret_env python=3.6
  2. conda activate pycaret_env

要安裝僅具有所需依賴項(xiàng)的默認(rèn)較小版本的PyCaret,可以運(yùn)行以下命令。

 
 
 
 
  1. pip install pycaret

要安裝完整版本的PyCaret,您應(yīng)該運(yùn)行以下命令。

 
 
 
 
  1. pip install pycaret[full]

一旦安裝了PyCaret,請(qǐng)停用虛擬環(huán)境,然后使用以下命令將其添加到Jupyter。

 
 
 
 
  1. conda deactivate
  2. python -m ipykernel install --user --name pycaret_env --display-name "pycaret_env"

現(xiàn)在,在瀏覽器中啟動(dòng)Jupyter Notebook之后,您應(yīng)該能夠看到將環(huán)境更改為剛創(chuàng)建的選項(xiàng)的選項(xiàng)。

> Changing the Conda virtual environment in Jupyter.

導(dǎo)入庫(kù)

您可以在此GitHub存儲(chǔ)庫(kù)中找到本文的完整代碼。在下面的代碼中,我僅導(dǎo)入了Numpy和Pandas來(lái)處理此演示的數(shù)據(jù)。

 
 
 
 
  1. import numpy as np
  2. import pandas as pd

讀取數(shù)據(jù)

對(duì)于此示例,我使用了Kaggle上可用的“加利福尼亞住房?jī)r(jià)格”數(shù)據(jù)集。在下面的代碼中,我將此數(shù)據(jù)集讀入一個(gè)數(shù)據(jù)框,并顯示了該數(shù)據(jù)框的前十行。

 
 
 
 
  1. housing_data = pd.read_csv('./data/housing.csv')housing_data.head(10)

> First ten rows of the housing dataset.

上面的輸出使我們對(duì)數(shù)據(jù)的外觀有所了解。數(shù)據(jù)主要包含數(shù)字特征和一個(gè)分類(lèi)特征,用于每個(gè)房屋與海洋的接近度。我們?cè)噲D預(yù)測(cè)的目標(biāo)列是“ median_house_value”列。整個(gè)數(shù)據(jù)集總共包含20,640個(gè)觀測(cè)值。

初始化實(shí)驗(yàn)

現(xiàn)在我們有了數(shù)據(jù),我們可以初始化一個(gè)PyCaret實(shí)驗(yàn),該實(shí)驗(yàn)將對(duì)數(shù)據(jù)進(jìn)行預(yù)處理并為將在此數(shù)據(jù)集上訓(xùn)練的所有模型啟用日志記錄。

 
 
 
 
  1. from pycaret.regression import *
  2. reg_experiment = setup(housing_data, 
  3.                        target = 'median_house_value', 
  4.                        session_id=123, 
  5.                        log_experiment=True, 
  6.                        experiment_name='ca_housing')

如下面的GIF中所示,運(yùn)行上面的代碼會(huì)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,然后生成帶有實(shí)驗(yàn)選項(xiàng)的數(shù)據(jù)框。

> Pycaret setup function output.

比較基準(zhǔn)模型

我們可以立即比較不同的基線模型,以找到具有使用compare_models函數(shù)的最佳K折交叉驗(yàn)證性能的模型,如下面的代碼所示。在下面的示例中,出于演示目的,我已將XGBoost排除在外。

 
 
 
 
  1. best_model = compare_models(exclude=['xgboost'], fold=5)

> Results of comparing different models.

該函數(shù)將生成一個(gè)數(shù)據(jù)框,其中包含每個(gè)模型的性能統(tǒng)計(jì)信息,并突出顯示性能最佳的模型的指標(biāo),在本例中為CatBoost回歸器。

建立模型

我們還可以使用PyCaret在單行代碼中訓(xùn)練模型。create_model函數(shù)僅需要一個(gè)與您要訓(xùn)練的模型類(lèi)型相對(duì)應(yīng)的字符串。您可以在PyCaret文檔頁(yè)面上找到此功能的可接受字符串的完整列表以及相應(yīng)的回歸模型。

 
 
 
 
  1. catboost = create_model('catboost')

create_model函數(shù)使用訓(xùn)練后的CatBoost模型的交叉驗(yàn)證指標(biāo)來(lái)生成上面的數(shù)據(jù)框。

超參數(shù)調(diào)整

現(xiàn)在我們有了訓(xùn)練有素的模型,我們可以通過(guò)超參數(shù)調(diào)整進(jìn)一步優(yōu)化它。只需一行代碼,我們就可以調(diào)整該模型的超參數(shù),如下所示。

 
 
 
 
  1. tuned_catboost = tune_model(catboost, n_iter=50, optimize = 'MAE')

> Results of hyperparameter tuning with 10-fold cross-validation.

最重要的結(jié)果(在這種情況下為平均指標(biāo))以黃色突出顯示。

可視化模型的性能

我們可以使用PyCaret創(chuàng)建許多圖表,以可視化模型的性能。PyCaret使用另一個(gè)稱(chēng)為Yellowbrick的高級(jí)庫(kù)來(lái)構(gòu)建這些可視化文件。

殘留圖

默認(rèn)情況下,plot_model函數(shù)將為回歸模型生成殘差圖,如下所示。

 
 
 
 
  1. plot_model(tuned_catboost)

> Residual plot for the tuned CatBoost model.

預(yù)測(cè)誤差

通過(guò)創(chuàng)建預(yù)測(cè)誤差圖,我們還可以將預(yù)測(cè)值相對(duì)于實(shí)際目標(biāo)值可視化。

 
 
 
 
  1. plot_model(tuned_catboost, plot = 'error')

> Prediction error plot for the tuned CatBoost regressor.

上面的圖特別有用,因?yàn)樗鼮槲覀兲峁┝薈atBoost模型的R2系數(shù)的直觀表示。在理想情況下(R2= 1),當(dāng)預(yù)測(cè)值與實(shí)際目標(biāo)值完全匹配時(shí),此圖將僅包含沿虛線的點(diǎn)。

功能重要性

我們還可以可視化模型的功能重要性,如下所示。

 
 
 
 
  1. plot_model(tuned_catboost, plot = 'feature')

> Feature importance plot for the CatBoost regressor.

從上面的圖可以看出,在預(yù)測(cè)房屋價(jià)格時(shí),位數(shù)中位數(shù)是最重要的特征。由于此特征對(duì)應(yīng)于房屋建造區(qū)域的中位數(shù)收入,因此此評(píng)估非常合理。在高收入地區(qū)建造的房屋可能比低收入地區(qū)的房屋貴。

使用所有圖評(píng)估模型

我們還可以創(chuàng)建多個(gè)圖,以使用validate_model函數(shù)評(píng)估模型。

 
 
 
 
  1. evaluate_model(tuned_catboost)

> The interface created using the evaluate_model function.

解釋模型

interpret_model函數(shù)是用于解釋模型預(yù)測(cè)的有用工具。此函數(shù)使用一個(gè)稱(chēng)為SHAP的可解釋機(jī)器學(xué)習(xí)庫(kù),我在下面的文章中介紹了該庫(kù)。

僅需一行代碼,我們就可以為模型創(chuàng)建一個(gè)SHAPE蜂群圖。

 
 
 
 
  1. interpret_model(tuned_catboost)

> SHAP plot produced by calling the interpret_model function.

根據(jù)上面的圖,我們可以看到中位數(shù)收入字段對(duì)預(yù)測(cè)房屋價(jià)值的影響最大。

自動(dòng)機(jī)器學(xué)習(xí)

PyCaret還具有運(yùn)行自動(dòng)機(jī)器學(xué)習(xí)(AutoML)的功能。我們可以指定我們要優(yōu)化的損失函數(shù)或度量,然后讓庫(kù)接管如下所示。

 
 
 
 
  1. automlautoml_model = automl(optimize = 'MAE')

在此示例中,AutoML模型也恰好是CatBoost回歸變量,我們可以通過(guò)打印出該模型進(jìn)行確認(rèn)。

 
 
 
 
  1. print(automl_model)

運(yùn)行上面的print語(yǔ)句將產(chǎn)生以下輸出:

 
 
 
 

產(chǎn)生預(yù)測(cè)

預(yù)報(bào)模型功能允許我們通過(guò)使用來(lái)自實(shí)驗(yàn)的數(shù)據(jù)或新的看不見(jiàn)的數(shù)據(jù)來(lái)生成預(yù)測(cè)。

 
 
 
 
  1. pred_holdouts = predict_model(automl_model)
  2. pred_holdouts.head()

上面的predict_model函數(shù)為交叉驗(yàn)證期間用于驗(yàn)證模型的保持?jǐn)?shù)據(jù)集生成預(yù)測(cè)。該代碼還為我們提供了一個(gè)數(shù)據(jù)框,其中包含針對(duì)AutoML模型生成的預(yù)測(cè)的性能統(tǒng)計(jì)信息。

> Predictions generated by the AutoML model.

在上面的輸出中,“標(biāo)簽”列表示由AutoML模型生成的預(yù)測(cè)。我們還可以對(duì)整個(gè)數(shù)據(jù)集進(jìn)行預(yù)測(cè),如下面的代碼所示。

 
 
 
 
  1. new_data = housing_data.copy()
  2. new_data.drop(['median_house_value'], axis=1, inplace=True)
  3. predictions = predict_model(automl_model, data=new_data)
  4. predictions.head()

保存模型

PyCaret還允許我們使用save_model函數(shù)保存經(jīng)過(guò)訓(xùn)練的模型。此功能將模型的轉(zhuǎn)換管道保存到pickle文件中。

 
 
 
 
  1. save_model(automl_model, model_name='automl-model')

我們還可以使用load_model函數(shù)加載保存的AutoML模型。

 
 
 
 
  1. loaded_model = load_model('automl-model')
  2. print(loaded_model)

打印出加載的模型將產(chǎn)生以下輸出:

 
 
 
 
  1. Pipeline(memory=None,
  2.          steps=[('dtypes',
  3.                  DataTypes_Auto_infer(categorical_features=[],
  4.                                       display_types=True, features_todrop=[],
  5.                                       id_columns=[], ml_usecase='regression',
  6.                                       numerical_features=[],
  7.                                       target='median_house_value',
  8.                                       time_features=[])),
  9.                 ('imputer',
  10.                  Simple_Imputer(categorical_strategy='not_available',
  11.                                 fill_value_categorical=None,
  12.                                 fill_value_numerical=None,
  13.                                 numer...
  14.                 ('cluster_all', 'passthrough'),
  15.                 ('dummy', Dummify(target='median_house_value')),
  16.                 ('fix_perfect', Remove_100(target='median_house_value')),
  17.                 ('clean_names', Clean_Colum_Names()),
  18.                 ('feature_select', 'passthrough'), ('fix_multi', 'passthrough'),
  19.                 ('dfs', 'passthrough'), ('pca', 'passthrough'),
  20.                 ['trained_model',
  21.                  ]],
  22.          verbose=False)

從上面的輸出中可以看到,PyCaret不僅在流水線的末尾保存了經(jīng)過(guò)訓(xùn)練的模型,還在流水線的開(kāi)始處保存了特征工程和數(shù)據(jù)預(yù)處理步驟?,F(xiàn)在,我們?cè)谝粋€(gè)文件中有一個(gè)可用于生產(chǎn)的機(jī)器學(xué)習(xí)管道,我們不必?fù)?dān)心將管道的各個(gè)部分放在一起。

模型部署

現(xiàn)在我們已經(jīng)準(zhǔn)備好可以生產(chǎn)的模型管道,我們還可以使用deploy_model函數(shù)將模型部署到諸如AWS的云平臺(tái)。如果打算將模型部署到S3存儲(chǔ)桶,則在運(yùn)行此功能之前,必須運(yùn)行以下命令來(lái)配置AWS命令行界面:

 
 
 
 
  1. aws configure

運(yùn)行上面的代碼將觸發(fā)一系列提示,提示您需要提供諸如AWS Secret Access Key之類(lèi)的信息。完成此過(guò)程后,就可以使用deploy_model函數(shù)部署模型了。

 
 
 
 
  1. deploy_model(automl_model, model_name = 'automl-model-aws', 
  2.              platform='aws',
  3.              authentication = {'bucket' : 'pycaret-ca-housing-model'})

在上面的代碼中,我將AutoML模型部署到了AWS中名為pycaret-ca-housing-model的S3存儲(chǔ)桶中。從這里,您可以編寫(xiě)一個(gè)AWS Lambda函數(shù),該函數(shù)從S3中提取模型并在云中運(yùn)行。PyCaret還允許您使用load_model函數(shù)從S3加載模型。

MLflow用戶界面

PyCaret的另一個(gè)不錯(cuò)的功能是,它可以使用稱(chēng)為MLfLow的機(jī)器學(xué)習(xí)生命周期工具來(lái)記錄和跟蹤您的機(jī)器學(xué)習(xí)實(shí)驗(yàn)。運(yùn)行以下命令將從本地主機(jī)在瀏覽器中啟動(dòng)MLflow用戶界面。

 
 
 
 
  1. !mlflow ui

> MLFlow dashboard.

在上面的儀表板中,我們可以看到MLflow可以跟蹤您的PyCaret實(shí)驗(yàn)的不同模型的運(yùn)行情況。您可以查看性能指標(biāo)以及實(shí)驗(yàn)中每次運(yùn)行的運(yùn)行時(shí)間。

使用PyCaret的利與弊

如果您已經(jīng)閱讀了此書(shū),則現(xiàn)在對(duì)如何使用PyCaret有了基本的了解。雖然PyCaret是一個(gè)很棒的工具,但它有其自身的優(yōu)缺點(diǎn),如果您打算將其用于數(shù)據(jù)科學(xué)項(xiàng)目,則應(yīng)注意這一點(diǎn)。

優(yōu)點(diǎn):

  • 低代碼庫(kù)。
  • 非常適合簡(jiǎn)單的標(biāo)準(zhǔn)任務(wù)和通用機(jī)器學(xué)習(xí)。
  • 為回歸,分類(lèi),自然語(yǔ)言處理,聚類(lèi),異常檢測(cè)和關(guān)聯(lián)規(guī)則挖掘提供支持。
  • 使創(chuàng)建和保存模型的復(fù)雜轉(zhuǎn)換管道變得容易。
  • 使可視化模型性能變得容易。

缺點(diǎn):

  • 到目前為止,由于NLP實(shí)用程序僅限于主題建模算法,因此PyCaret對(duì)于文本分類(lèi)而言并不理想。
  • PyCaret不是深度學(xué)習(xí)的理想選擇,并且不使用Keras或PyTorch模型。
  • 您無(wú)法執(zhí)行更復(fù)雜的機(jī)器學(xué)習(xí)任務(wù),例如使用PyCaret(至少在版本2.2.0中)進(jìn)行圖像分類(lèi)和文本生成。
  • 通過(guò)使用PyCaret,您將在某種程度上犧牲對(duì)簡(jiǎn)單和高級(jí)代碼的控制。

概括

在本文中,我演示了如何使用PyCaret完成機(jī)器學(xué)習(xí)項(xiàng)目中的所有步驟,從數(shù)據(jù)預(yù)處理到模型部署。盡管PyCaret是有用的工具,但是如果您打算將其用于數(shù)據(jù)科學(xué)項(xiàng)目,則應(yīng)了解其優(yōu)缺點(diǎn)。PyCaret非常適合使用表格數(shù)據(jù)進(jìn)行通用機(jī)器學(xué)習(xí),但是從2.2.0版本開(kāi)始,PyCaret不適用于更復(fù)雜的自然語(yǔ)言處理,深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)任務(wù)。但這仍然是一種節(jié)省時(shí)間的工具,誰(shuí)知道,也許開(kāi)發(fā)人員將來(lái)會(huì)增加對(duì)更復(fù)雜任務(wù)的支持?

如前所述,您可以在GitHub上找到本文的完整代碼。https://github.com/AmolMavuduru/PyCaretTutorial


本文標(biāo)題:如何使用PyCaret-低代碼ML庫(kù)
本文鏈接:http://m.5511xx.com/article/ccdpesh.html