文档
  • PyCaret 3.0
  • 入门
    • 💻安装
    • 🚀快速入门
    • ⭐教程
    • 📶模块
    • ⚙️数据预处理
      • 数据准备
      • 缩放和转换
      • 特征工程
      • 特征选择
      • 其他设置参数
    • 💡函数
      • 初始化
      • 训练
      • 优化
      • 分析
      • 部署
      • 其他
  • 学习 PYCARET
    • 📖博客
      • 宣布 PyCaret 1.0
      • 宣布 PyCaret 2.0
      • 关于 PyCaret 你不知道的 5 件事
      • 构建并部署你的第一个机器学习 Web 应用
      • 使用 PyCaret 在 Power BI 中构建你自己的 AutoML
      • 在 Google Kubernetes 上部署机器学习管道
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 在 Power BI 中实现异常检测器
      • 在 Google Kubernetes 上部署机器学习应用
      • 在 GKE 上部署机器学习管道
      • 在 AWS Fargate 上部署机器学习管道
      • 使用 Docker 在云端部署机器学习管道
      • 使用 PyCaret 在 Power BI 中进行聚类分析
      • 使用 ONNX Runtime 在边缘端部署 PyCaret 模型
      • GitHub 是你所需要的最佳 AutoML
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 和 MLflow 实现轻松的 MLOps
      • 使用 PyCaret 在 Power BI 中进行聚类分析
      • 使用 PyCaret 在 Alteryx 中实现机器学习
      • 使用 PyCaret 在 KNIME 中实现机器学习
      • 使用 PyCaret 在 SQL 中实现机器学习 第一部分
      • 使用 PyCaret 在 Power BI 中实现机器学习
      • 使用 PyCaret 在 Tableau 中实现机器学习
      • 使用 PyCaret 进行多时间序列预测
      • 使用 PyCaret 预测客户流失
      • 使用 PyCaret 预测潜在客户得分(正确方法)
      • 使用 PyCaret 在 Python 中进行 NLP 文本分类
      • 使用 PyCaret 预测潜在客户得分(正确方法)
      • 使用 PyCaret 预测黄金价格暴跌
      • 使用机器学习预测黄金价格
      • PyCaret 2.1 功能摘要
      • 使用 PyCaret 将机器学习模型部署到 SQL Server
      • 使用 PyCaret 和 Gradio 加速你的机器学习
      • 时间序列 101 - 初学者指南
      • 使用 PyCaret 进行时间序列异常检测
      • 使用 PyCaret 回归进行时间序列预测
      • 使用 PyCaret 在 Power BI 中进行主题建模
      • 使用 PyCaret 编写和训练自定义机器学习模型
      • 使用 PyCaret 和 Streamlit 构建并部署机器学习应用
      • PyCaret 2.3.6 来了!了解新功能
    • 📺视频
    • 🛩️备忘单
    • ❓常见问题
    • 👩‍💻示例
  • 重要链接
    • 🛠️发布说明
    • ⚙️API 参考
    • 🙋 讨论
    • 📤问题
    • 👮 许可
  • 媒体
    • 💻Slack
    • 📺YouTube
    • 🔗LinkedIn
    • 😾GitHub
    • 🔅Stack Overflow
由 GitBook 提供支持
本页内容
  • 使用 PyCaret 将机器学习模型部署到数据 — 第二部分
  • 一、导入/加载数据
  • 二、创建机器学习模型并保存到数据库表
  • 三、运行预测
  • 四、结论
  • 五、重要链接

这有帮助吗?

  1. 学习 PYCARET
  2. 博客

使用 PyCaret 将机器学习模型部署到 SQL Server

上一篇PyCaret 2.1 功能摘要下一篇使用 PyCaret 和 Gradio 加速你的机器学习

上次更新:2 年前

这有帮助吗?

使用 PyCaret 将机器学习模型部署到数据 — 第二部分

二元分类

作者:Umar Farooque

图片来源:Joshua Sortino,Unsplash

本文将涵盖的内容

  1. 如何将数据加载到 SQL Server 表中

  2. 如何在 SQL Server 表中创建和保存模型

  3. 如何使用已保存的模型进行模型预测并将结果存储到表中

一、导入/加载数据

现在你需要使用 SQL Server Management Studio 将 CSV 文件导入数据库。

在数据库中创建一个名为“cancer”的表

右键点击数据库,选择任务 -> 导入数据

对于数据源,选择平面文件源。然后使用浏览按钮选择 CSV 文件。花一些时间配置数据导入,然后点击**下一步**按钮。

对于目标,选择正确的数据库提供程序(例如 SQL Server Native Client 11.0)。输入服务器名称;勾选使用 SQL Server 身份验证,输入用户名、密码和**数据库**,然后点击**下一步**按钮。

在选择源表和视图窗口中,你可以在点击**下一步**按钮之前编辑映射。

勾选立即运行,然后点击**下一步**按钮

点击完成按钮运行包

二、创建机器学习模型并保存到数据库表

在本例中,我们将使用“乳腺癌数据集”。在数据库表中创建和保存模型是一个多步骤的过程。让我们一步一步来完成它

i. 创建一个存储过程来创建训练好的模型,在本例中是一个 Extra Trees 分类器算法。该过程将从上一步创建的 cancer 表中读取数据。

下面是用于创建过程的代码

*-- Stored procedure that generates a PyCaret model using the cancer data using Extra Trees Classifier Algorithm*

DROP PROCEDURE IF EXISTS generate_cancer_pycaret_model;

Go

CREATE PROCEDURE generate_cancer_pycaret_model (@trained_model varbinary(max) OUTPUT) AS

BEGIN

EXECUTE sp_execute_external_script

@language = N'Python'

, @script = N'

import pycaret.classification as cp

import pickle

trail1 = cp.setup(data = cancer_data, target = "Class", silent = True, n_jobs=None)

*# Create Model*
et = cp.create_model("et", verbose=False)


*#To improve our model further, we can tune hyper-parameters using tune_model function.
#We can also optimize tuning based on an evaluation metric. As our choice of metric is F1-score, lets optimize our algorithm!*

tuned_et = cp.tune_model(et, optimize = "F1", verbose=False)


*#The finalize_model() function fits the model onto the complete dataset.
#The purpose of this function is to train the model on the complete dataset before it is deployed in production*

final_model = cp.finalize_model(tuned_et)

*# Before saving the model to the DB table, convert it to a binary object*

trained_model = []
prep = cp.get_config("prep_pipe")
trained_model.append(prep)
trained_model.append(final_model)
trained_model = pickle.dumps(trained_model)'

, @input_data_1 = N'select "Class", "age", "menopause", "tumor_size", "inv_nodes", "node_caps", "deg_malig", "breast", "breast_quad", "irradiat" from dbo.cancer'

, @input_data_1_name = N'cancer_data'

, @params = N'@trained_model varbinary(max) OUTPUT'

, @trained_model = @trained_model OUTPUT;

END;

GO

ii. 创建一个表,用于存储训练好的模型对象

DROP TABLE IF EXISTS dbo.pycaret_models;

GO

CREATE TABLE dbo.pycaret_models (
model_id  INT NOT NULL PRIMARY KEY,
dataset_name VARCHAR(100) NOT NULL DEFAULT('default dataset'),
model_name  VARCHAR(100) NOT NULL DEFAULT('default model'),
model   VARBINARY(MAX) NOT NULL
);

GO

iii. 调用存储过程创建模型对象并保存到数据库表

DECLARE @model VARBINARY(MAX);
EXECUTE generate_cancer_pycaret_model @model OUTPUT;
INSERT INTO pycaret_models (model_id, dataset_name, model_name, model) VALUES(2, 'cancer', 'Extra Trees Classifier algorithm', @model);

此执行的输出是

模型保存后表结果的视图

三、运行预测

下一步是根据保存的模型对测试数据集运行预测。这同样是一个多步骤的过程。让我们再次回顾所有步骤。

i. 创建一个存储过程,该过程将使用测试数据集来检测测试数据点的癌症

下面是创建数据库过程的代码

DROP PROCEDURE IF EXISTS pycaret_predict_cancer;
GO

CREATE PROCEDURE pycaret_predict_cancer (@id INT, @dataset varchar(100), @model varchar(100))
AS

BEGIN

DECLARE @py_model varbinary(max) = (select model

from pycaret_models

where model_name = @model

and dataset_name = @dataset

and model_id = @id

);

EXECUTE sp_execute_external_script

@language = N'Python',

@script = N'

# Import the scikit-learn function to compute error.

import pycaret.classification as cp

import pickle

cancer_model = pickle.loads(py_model)

*# Generate the predictions for the test set.*

predictions = cp.predict_model(cancer_model, data=cancer_score_data)

OutputDataSet = predictions

print(OutputDataSet)

'

, @input_data_1 = N'select "Class", "age", "menopause", "tumor_size", "inv_nodes", "node_caps", "deg_malig", "breast", "breast_quad", "irradiat" from dbo.cancer'

, @input_data_1_name = N'cancer_score_data'

, @params = N'@py_model varbinary(max)'

, @py_model = @py_model

with result sets (("Class" INT, "age" INT, "menopause" INT, "tumor_size" INT, "inv_nodes" INT,

"node_caps" INT, "deg_malig" INT, "breast" INT, "breast_quad" INT,

"irradiat" INT, "Class_Predict" INT, "Class_Score" float ));

END;

GO

ii. 创建一个表来保存预测结果以及数据集

DROP TABLE IF EXISTS [dbo].[pycaret_cancer_predictions];

GO

CREATE TABLE [dbo].[pycaret_cancer_predictions](

[Class_Actual] [nvarchar] (50) NULL,

[age] [nvarchar] (50) NULL,

[menopause] [nvarchar] (50) NULL,

[tumor_size] [nvarchar] (50) NULL,

[inv_nodes] [nvarchar] (50) NULL,

[node_caps] [nvarchar] (50) NULL,

[deg_malig] [nvarchar] (50) NULL,

[breast] [nvarchar] (50) NULL,

[breast_quad] [nvarchar] (50) NULL,

[irradiat] [nvarchar] (50) NULL,

[Class_Predicted] [nvarchar] (50) NULL,

[Class_Score] [float] NULL

) ON [PRIMARY]

GO

iii. 调用 pycaret_predict_cancer 过程将预测结果保存到表中

*--Insert the results of the predictions for test set into a table*

INSERT INTO [pycaret_cancer_predictions]

EXEC pycaret_predict_cancer 2, 'cancer', 'Extra Trees Classifier algorithm';

iv. 执行下面的 SQL 查看预测结果

*-- Select contents of the table*

SELECT * FROM [pycaret_cancer_predictions];

四、结论

在这篇文章中,我们学习了如何使用 PyCaret 在 SQL Server 中构建分类模型。类似地,你可以根据业务问题的需求构建和运行其他类型的监督和无监督机器学习模型。

我未来的文章将是关于如何在 SQL Server 中使用 Python 和 PyCaret 探索其他监督和无监督学习技术的教程。

五、重要链接

我的前一篇文章** 详细介绍了如何整合** 与. 在本文中,我将提供详细的步骤,说明如何使用(PyCaret 是一个 Python 中的低代码机器学习库)在 SQL Server 中训练和部署一个监督机器学习分类模型。

**分类是一种监督机器学习类型,用于预测分类类标签,这些标签是离散且无序的。 中可用的模块包可用于二元或多类别问题。

控制台输出
SQL Server 表结果
预测结果
图片来源:Tobias Fischer,Unsplash

你可以进一步查看** 网站获取关于其他可以在 SQL Server 中以类似方式实现的监督和无监督实验的文档。

📖
**使用 PyCaret 1.0 在 SQL 中实现机器学习
**PyCaret
**SQL Server
**PyCaret 2.0
**PyCaret
**PyCaret
PyCaret
我的 LinkedIn 个人资料