sp_rxPredict
适用于: SQL Server 2016 (13.x) 及更高版本 - 仅限 Windows
为给定输入生成预测值,该输入包含以二进制格式存储在 SQL Server 数据库中的机器学习模型。
提供对 R 和 Python 机器学习模型的近实时评分。 sp_rxPredict
是作为包装器提供的存储过程
rxPredict
RevoScaleR 和 MicrosoftML 中的 R 函数,revoscalepy 和 microsoftml 中的 rx_predict Python 函数。 它是用 C++ 编写的,并专门针对评分操作进行优化。
尽管必须使用 R 或 Python 创建模型,但一旦模型被序列化并以二进制格式存储在目标数据库引擎实例上,即使未安装 R 或 Python 集成,也可以从该数据库引擎实例使用它。 有关详细信息,请参阅 使用sp_rxPredict进行实时评分。
语法
sp_rxPredict ( @model, @input )
参数
model
采用受支持的格式的预训练模型。
input
有效的 SQL 查询
返回值
将返回评分列,以及输入数据源中的任何传递列。 如果算法支持生成此类值,则可以返回其他分数列,例如置信区间。
备注
若要启用存储过程的使用,必须在实例上启用 SQLCLR。
注意
启用此选项存在安全隐患。 如果无法在服务器上启用 SQLCLR,请使用替代实现,例如 Transact-SQL PREDICT 函数。
用户需要 EXECUTE
对数据库拥有权限。
支持的算法
若要创建和训练模型,请使用由 SQL Server 机器学习服务 (R 或 Python) 、SQL Server 2016 R 服务、SQL Server Machine Learning Server (独立) (R 或 Python) 提供的 R 或 Python 支持的算法之一,SQL Server 2016 R Server (独立) 。
R:RevoScaleR 模型
标有 * 的模型还支持使用 函数进行 PREDICT
本机评分。
R:MicrosoftML 模型
R:MicrosoftML 提供的转换
Python:revoscalepy 模型
- rx_lin_mod *
- rx_logit *
- rx_btrees *
- rx_dtree *
- rx_dforest *
标有 * 的模型还支持使用 函数进行 PREDICT
本机评分。
Python:microsoftml 模型
- rx_fast_trees
- rx_fast_forest
- rx_logistic_regression
- rx_oneclass_svm
- rx_neural_network
- rx_fast_linear
Python:microsoftml 提供的转换
不支持的模型类型
不支持以下模型类型:
- 在
rxGlm
RevoScaleR 中使用 或rxNaiveBayes
算法的模型。 - R 中的 PMML 模型。
- 使用其他第三方库创建的模型。
- 使用转换函数或包含转换的公式(例如
A ~ log(B
)的模型不支持实时评分。 若要使用此类型的模型,建议在将数据传递到实时评分前对输入数据执行转换。
实时评分不使用解释器,因此在评分步骤中不支持可能需要解释器的任何功能。
示例
DECLARE @model = SELECT @model
FROM model_table
WHERE model_name = 'rxLogit trained';
EXEC sp_rxPredict @model = @model,
@inputData = N'SELECT * FROM data';
除了是有效的 SQL 查询外, @inputData 中的输入数据还必须包含与存储模型中的列兼容的列。
sp_rxPredict
仅支持以下 .NET 列类型:double、float、short、ushort、long、ulong 和 string。 可能需要先在输入数据中筛选掉不受支持的类型,然后再使用它进行实时评分。
有关相应的 SQL 类型的信息,请参阅 SQL-CLR 类型映射或映射 CLR 参数数据。
反馈
提交和查看相关反馈