predict_model
此函数使用训练好的模型生成标签。当 data
为 None 时,它会在保留集上预测标签和得分。
保留集预测
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
xgboost = create_model('xgboost')
# predict on hold-out
predict_model(xgboost)
未见数据预测
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
xgboost = create_model('xgboost')
# predict on new data
new_data = diabetes.copy()
new_data.drop('Class variable', axis = 1, inplace = True)
predict_model(xgboost, data = new_data)
按类别划分的概率
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
xgboost = create_model('xgboost')
# predict on new data
new_data = diabetes.copy()
new_data.drop('Class variable', axis = 1, inplace = True)
predict_model(xgboost, raw_score = True, data = new_data)
设置概率阈值
用于将预测概率转换为类别标签的阈值。除非设置了此参数,否则它将默认为模型创建期间设置的值。如果未设置,则所有分类器的默认值为 0.5。仅适用于二元分类。
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
xgboost = create_model('xgboost')
# probability threshold 0.3
predict_model(xgboost, probability_threshold = 0.3)
不同阈值在保留集数据上的比较
finalize_model
此函数在包括保留集在内的整个数据集上训练给定的模型。
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
rf = create_model('rf')
# finalize a model
finalize_model(rf)
此函数不改变模型的任何参数。它只在包括保留集在内的整个数据集上重新训练。
deploy_model
此函数在云端部署完整的 ML pipeline。
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
lr = create_model('lr')
# finalize a model
final_lr = finalize_model(lr)
# deploy a model
deploy_model(final_lr, model_name = 'lr_aws', platform = 'aws', authentication = { 'bucket' : 'pycaret-test' })
AWS
在将模型部署到 AWS S3(‘aws’)之前,必须使用命令行界面配置环境变量。要配置 AWS 环境变量,请在你的 python 命令行中输入 aws configure 。需要以下信息,这些信息可以使用你的 Amazon 控制台账户的身份和访问管理 (IAM) 门户生成
默认区域名称(可在 AWS 控制台的全局设置下查看)
GCP
要在 Google Cloud Platform ('gcp') 上部署模型,必须使用命令行或 GCP 控制台创建项目。项目创建后,必须创建一个服务账户并将服务账户密钥下载为 JSON 文件,以便在本地环境中设置环境变量。
Azure
要在 Microsoft Azure ('azure') 上部署模型,必须在本地环境中设置连接字符串的环境变量。前往 Azure 门户上存储账户的设置,以获取所需的连接字符串。
AZURE_STORAGE_CONNECTION_STRING(必需的环境变量)
save_model
此函数将转换 pipeline 和训练好的模型对象保存到当前工作目录中,作为 pickle 文件以便后续使用。
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
dt = create_model('dt')
# save pipeline
save_model(dt, 'dt_pipeline')
load_model
此函数加载先前保存的 pipeline。
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
dt = create_model('dt')
# save pipeline
save_model(dt, 'dt_pipeline')
# load pipeline
load_model('dt_pipeline')
save_experiment
函数 save_experiment
将实验保存到 pickle 文件。实验使用 cloudpickle 保存,以处理 lambda 函数。数据或测试数据不会与实验一起保存,加载时使用 load_experiment
需要重新指定。
复制 # load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# save experiment
save_experiment('my_saved_experiment1')
load_experiment
函数 load_experiment
从路径或文件加载实验。数据 data
(和 test_data
)不会与实验一起保存,加载时需要重新指定。
复制 # load data
data = get_data('diabetes')
# load experiment function
from pycaret.classification import load_experiment
clf2 = load_experiment('my_saved_experiment1', data = data)
check_drift
函数 check_drift
使用 evidently 库生成漂移报告文件。
复制 # load dataset
from pycaret.datasets import get_data
data = get_data('insurance')
# generate drift report
check_drift(reference_data = data.head(500), current_data = data.tail(500), target = 'charges')
它将在本地生成一个 HTML 报告。
convert_model
此函数将训练好的机器学习模型的决策函数转译(transpiles)成不同的编程语言,例如 Python、C、Java、Go、C# 等。如果你想将模型部署到无法安装常规 Python 环境来支持模型推理的环境中,这将非常有用。
复制 # load dataset
from pycaret.datasets import get_data
juice = get_data('juice')
# init setup
from pycaret.classification import *
exp_name = setup(data = juice, target = 'Purchase')
# train a model
lr = create_model('lr')
# convert a model
convert_model(lr, 'java')
视频
create_api
此函数接收一个输入模型并创建一个用于推理的 POST API。它只创建 API,不会自动运行。要运行 API,必须使用 !python
运行 Python 文件。
复制 # load dataset
from pycaret.datasets import get_data
juice = get_data('juice')
# init setup
from pycaret.classification import *
exp_name = setup(data = juice, target = 'Purchase')
# train a model
lr = create_model('lr')
# create api
create_api(lr, 'lr_api')
# run api
!python lr_api.py
使用 !python
命令初始化 API 后。你可以在 localhost:8000/docs 上看到服务器。
视频
create_docker
此函数创建一个 Dockerfile
和一个 requirements.txt
,用于将 API 端点投入生产环境。
复制 # load dataset
from pycaret.datasets import get_data
juice = get_data('juice')
# init setup
from pycaret.classification import *
exp_name = setup(data = juice, target = 'Purchase')
# train a model
lr = create_model('lr')
# create api
create_api(lr, 'lr_api')
# create docker
create_docker('lr_api')
你会看到为你创建了两个文件。
视频
create_app
此函数创建一个用于推理的基本 gradio
应用。后续会扩展支持其他应用类型,例如 Streamlit
。
复制 # load dataset
from pycaret.datasets import get_data
juice = get_data('juice')
# init setup
from pycaret.classification import *
exp_name = setup(data = juice, target = 'Purchase')
# train a model
lr = create_model('lr')
# create app
create_app(lr)
视频