pycaret之模型部署
1、预测模型 一旦使用deploy_model将模型成功部署到云中,或者使用save_model在本地成功部署了模型,就可以使用predict_model函数将其用于看不见的数据进行预测。 此功能采用训练有素的模型对象和数据集进行预测。 它将自动应用实验过程中创建的整个转换管道。 对于分类,将基于50%的概率创建预测标签,但是如果您选择使用通过optimize_threshold获得的不同阈值,则可以在predict_model中传递概率_threshold参数。 此功能还可用于生成保留/测试集的预测。
(1)Predictions on hold-out / test set
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
xgboost = create_model('xgboost')
# predict on hold-out
pred_holdout = predict_model(xgboost)
(2) Predictions on unseen data
# Importing dataset
from pycaret.datasets import get_data
boston = get_data('boston')
# Importing module and initializing setup
from pycaret.regression import *
reg1 = setup(data = boston, target = 'medv')
# create a model
lr = create_model('lr')
# finalize a model
lr_final = finalize_model(lr)
# importing unseen data
import pandas as pd
data_unseen = pd.read_csv('data_unseen.csv')
# generate predictions on unseen data
predictions = predict_model(lr_final, data = data_unseen)
(3)Predictions on unseen data directly from cloud
# Importing dataset
from pycaret.datasets import get_data
boston = get_data('boston')
# Importing module and initializing setup
from pycaret.regression import *
reg1 = setup(data = boston, target = 'medv')
# create a model
lr = create_model('lr')
# finalize a model
lr_final = finalize_model(lr)
# deploy a model
deploy_model(lr_final, model_name = 'lr_aws', platform = 'aws',
authentication = {'bucket' : 'pycaret-test'})
# importing unseen data
import pandas as pd
data_unseen = pd.read_csv('data_unseen.csv')
# generate predictions directly from AWS
predictions = predict_model('lr_aws', data = data_unseen, platform = 'aws', authentication = {'bucket' : 'pycaret-test'})
2、完成模型
最终确定模型是典型的受监督实验工作流程中的最后一步。当使用设置在PyCaret中开始实验时,将创建模型训练中未使用的保留集。默认情况下,如果在设置中未定义train_size参数,则保留集包含30%的数据集样本。 PyCaret中的所有功能都使用剩余的70%作为训练集来创建,调整或集成模型。因此,保持集是最终保证,可用于诊断过拟合/欠拟合。但是,一旦使用predict_model在保留集上生成了预测,并且选择了部署特定模型,就希望在包括保留在内的整个数据集上对模型进行最后一次训练。在整个数据集上完成模型的编写就像编写finalize_model一样容易。此函数接受训练的模型对象,并返回已在整个数据集中训练的模型。 该函数仅在pycaret.classification和pycaret.regression模块中可用。
# Importing dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
rf = create_model('rf')
# finalize a model
final_rf = finalize_model(rf)
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,
criterion='gini', max_depth=None, max_features='auto',
max_leaf_nodes=None, max_samples=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=10,
n_jobs=None, oob_score=False, random_state=123,
verbose=0, warm_start=False)
3、部署模型 使用finalize_model确定模型后,即可进行部署。 可以使用save_model功能在本地使用经过训练的模型,该功能将转换管道和经过训练的模型保存为最终用户应用程序可以作为二进制pickle文件使用。 或者,可以使用PyCaret将模型部署在云上。 在云上部署模型就像编写deploy_model一样简单。
对于AWS用户 在将模型部署到AWS S3(“ aws”)之前,必须使用命令行界面配置环境变量。 要配置AWS环境变量,请在python命令行中输入aws configure。 需要以下信息,可以使用您的亚马逊控制台帐户的身份和访问管理(IAM)门户生成以下信息: AWS访问密钥ID AWS密钥访问 默认区域名称(可以在您的AWS控制台的“全局设置”下看到) 默认输出格式(必须留空)
# Importing dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# Importing module and initializing 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' })
# Importing unseen dataset
import pandas as pd
data_unseen = pd.read_csv('data_unseen.csv')
# Generate predictions using deployed model
from pycaret.classification import *
predictions = predict_model(model_name = 'lr_aws', data = data_unseen, platform = 'aws', authentication = { 'bucket' : 'pycaret-test' })
4、保存模型 在PyCaret中保存训练好的模型就像编写save_model一样简单。 该函数采用经过训练的模型对象,并将整个转换管道和经过训练的模型对象保存为可传输的二进制pickle文件,以备后用。
# Importing dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# create a model
dt = create_model('dt')
# save a model
save_model(dt, 'dt_saved_07032020')
# Loading the saved model
dt_saved = load_model('dt_saved_07032020')
- Page.FindControl方法找不到指定控件的原因
- Silverlight 2 DispatcherTimer和通过XAML创建UI元素
- 腾讯移动安全实验室发布《2013年手机安全报告》
- 自定义Unity 容器的扩展 --- Unity Application Block Event Broker
- LINQ to SQL集成到应用程序中需考虑的一些问题
- WCF的追踪分析工具——SvcPerf
- 解决七牛云存储缓存加速Gravatar 头像图片路径url 参数失效的问题
- 命令行解析的规则以及Command Line Parser Library
- 简单代码让WordPress 支持电子邮箱(Email)作为登录名
- .NET Migration工具
- 如何有效监控.NET 应用程序
- 写入Ring Buffer
- Enterprise Library 4 缓存快速入门
- Enterprise Library 4 缓存应用程序块的设计
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Supermap GIS地图知识点
- 最全一篇Lombok使用讲解,及原理,真香啊
- 过来人对迷茫的程序员一点建议,3种学习方式的优缺点
- Java实现分页模糊查询
- VB.NET 仿spy++拖拽图标获取窗体句柄
- 线程生命周期,五大状态转换分析
- 推荐 2 款超牛逼、炫酷、实用的Docker管理工具!
- [业界方案]用Jaeger来学习分布式追踪系统Opentracing
- 记一次FullGC的排查经历--从日志到业务代码
- [源码分析] OpenTracing之跟踪Redis
- Python 3.8 新功能大揭秘
- SpringBoot Redis简单理解
- SpringBoot前端 —— thymeleaf 简单理解
- MyBatis XML简单理解
- Arraylist 与 LinkedList面试题