revoscalepy(SQL Server 机器学习服务中的 Python 包)

适用于: SQL Server 2017 (14.x) 及更高版本

revoscalepy 是 Microsoft 推出的 Python 包,支持分布式计算、远程计算上下文和高性能数据科学算法。 该包在 SQL Server 机器学习服务中提供。

该包提供以下功能:

  • 具有相同版本 revoscalepy 的系统上的本地和远程计算上下文
  • 数据转换和可视化功能
  • 数据科学函数,可通过分布式或并行处理进行扩展
  • 改进的性能,包括使用 Intel 数学库

在 revoscalepy 中创建的数据源和计算上下文也可用于机器学习算法 。 有关这些算法的简介,请参阅 SQL Server 中的 microsoftml Python 模块

完整参考文档

多个 Microsoft 产品中都分发有 revoscalepy 包,但不管是在 SQL Server 还是在其他产品中获取该包,用法都是一样的。 由于函数相同,因此单个 revoscalepy 函数的文档仅发布到 Python 引用下的一个位置。 如果存在任何特定于产品的行为,这些差异将在函数帮助页中注明。

版本和平台

revoscalepy 模块基于 Python 3.5,且仅在安装以下 Microsoft 产品或下载之一时才可用 :

注意

完整产品发布版本为 SQL Server 2017(仅限 Windows)。 SQL Server 2019 及高更版本中的 revoscalepy 同时支持 Windows 和 Linux。

按类别列出函数

本部分按类别列出函数,以帮助了解每个函数的使用方式。 此外,还可以使用目录按字母顺序查找函数。

1 数据源和计算

revoscalepy 包含用于创建数据源和设置执行计算的位置或计算上下文的函数 。 下表列出了与 SQL Server 方案相关的函数。

在某些情况下,SQL Server 和 Python 使用不同的数据类型。 有关 SQL 和 Python 数据类型之间的映射的列表,请参阅 Python 到 SQL 数据类型

函数 说明
RxInSqlServer 创建 SQL Server 计算上下文对象以将计算推送到远程实例。 好几个 revoscalepy 函数都将计算上下文作为参数 。 有关上下文切换示例,请参阅使用 revoscalepy 创建模型
RxSqlServerData 基于 SQL Server 查询或表创建数据对象。
RxOdbcData 基于 ODBC 连接创建数据源。
RxXdfData 基于本地 XDF 文件创建数据源。 XDF 文件通常用于将内存中数据卸载到磁盘。 当处理的数据多于可以在一批中从数据库传输的数据时,或者数据多于内存中可以容纳的数据时,XDF 文件可能比较有用。 例如,如果定期将大量数据从数据库移动到本地工作站,而非针对每个 R 操作重复查询数据库,则可以使用 XDF 文件作为缓存将数据保存在本地,然后在 R 工作区中使用它。

提示

如果不熟悉数据源或计算上下文,建议从分布式计算一文开始。

2 数据操作 (ETL)

函数 说明
rx_import 将数据导入 .xdf 文件或数据框。
rx_data_step 将数据从输入数据集转换为输出数据集。

3 训练和摘要

函数 说明
rx_btrees 调整随机梯度提升的决策树
rx_dforest 调整分类和回归决策林
rx_dtree 调整分类和回归树
rx_lin_mod 创建线性回归模型
rx_logit 创建逻辑回归模型
rx_summary 在 revoscalepy 中生成对象的单变量摘要。

还应查看 microsoftml 中的函数以了解其他方法。

4 评分函数

函数 说明
rx_predict 从已训练的模型生成预测,并可用于实时评分。
rx_predict_default 使用 rx_lin_mod 和 rx_logit 对象计算预测值和残差。
rx_predict_rx_dforest 计算 rx_dforest 或 rx_btrees 对象中的数据集的预测值或拟合值。
rx_predict_rx_dtree 计算 rx_dtree 对象中数据集的预测值或拟合值。

如何使用 revoscalepy

可在存储过程中封装的 Python 代码中调用 revoscalepy 中的函数 。 大多数开发者会在本地构建 revoscalepy 解决方案,然后将已完成的 Python 代码迁移到存储过程作为部署练习 。

在本地运行时,通常可在命令行或 Python 开发环境中运行 Python 脚本,并使用 revoscalepy 函数之一指定 SQL Server 计算上下文 。 可将远程计算上下文用于整个代码或单个函数。 例如,你可能希望将模型定型卸载到服务器上以使用最新数据并避免数据移动。

准备好将 Python 脚本封装在存储过程 sp_execute_external_script 中时,建议将代码重写为具有明确定义的输入和输出的单个函数。

输入和输出必须为 pandas 数据帧 。 完成此操作后,可从任何支持 T-SQL 的客户端调用存储过程,轻松地将 SQL 查询作为输入传递,并将结果保存到 SQL 表中。 有关示例,请参阅了解面向 SQL 开发者的数据库内 Python 分析

将 revoscalepy 与 microsoftml 配合使用

将用于 microsoftml 的 Python 函数与 revoscalepy 中提供的计算上下文和数据源集成在一起。 从 microsoftml 调用函数时,例如在定义和训练模型时,请使用 revoscalepy 函数在本地或在 SQL Server 远程计算上下文中执行 Python 代码。

以下示例显示了在 Python 代码中导入模块的语法。 然后可以引用所需的各个函数。

from microsoftml.modules.logistic_regression.rx_logistic_regression import rx_logistic_regression
from revoscalepy.functions.RxSummary import rx_summary
from revoscalepy.etl.RxImport import rx_import_datasource

另请参阅