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 Services 、 SQL Server Machine Learning Server (獨立式)(R 或 Python)或 SQL Server 2016 R Server (獨立 式) 所提供的 其中一種支援的 R 或 Python 演算法。
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 提供的轉換
不支援的模型類型
不支援下列模型類型:
- 在 RevoScaleR 中使用
rxGlm
或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 參數資料。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應