sp_rxPredict
適用於:SQL Server 2016 (13.x) 和更新版本 - 僅限 Windows
為指定的輸入產生預測值,其中包含儲存在 SQL Server 資料庫中二進位格式的機器學習模型。
近乎即時地提供 R 和 Python 機器學習模型的評分。 sp_rxPredict
是以 C++ 撰寫的預存程式,並特別針對評分作業進行優化。 sp_rxPredict
是的包裝函式:
函式 | 包裝紙 |
---|---|
rxPredict R 函式 |
- RevoScaleR - MicrosoftML |
rx_predict Python 函式 | - revoscalepy - microsoftml |
必須使用 R 或 Python 建立模型。 不過,一旦以二進位格式串行化並儲存在目標資料庫引擎實例上,即使未安裝 R 或 Python 整合,也可以從該資料庫引擎實例取用它。 如需詳細資訊,請參閱 在 SQL Server 中使用sp_rxPredict即時評分。
語法
sp_rxPredict ( @model , @input )
[ ; ]
引數
@model
支援格式的預先定型模型。
@input
有效的 SQL 查詢。
傳回值
會傳回分數數據行,以及輸入數據源中的任何傳遞數據行。
如果演算法支持產生這類值,則可以傳回額外的分數數據行,例如信賴區間。
備註
若要啟用預存程式的使用,必須在 實例上啟用 SQLCLR。
注意
啟用此選項有安全性影響。 如果您的伺服器上無法啟用 SQLCLR,請使用替代實作,例如 PREDICT (Transact-SQL) 函式。
使用者需要 EXECUTE
資料庫的許可權。
支援的演算法
若要建立和定型模型,請使用 SQL Server 機器學習 Services(R 或 Python)、SQL Server 2016 R Services、SQL Server 機器學習 Server (獨立式) 或 SQL Server 2016 R Server (獨立式)或 SQL Server 2016 R Server (獨立式)所提供的其中一種支援的 R 或 Python 演演算法。
R:RevoScaleR 模型
1 模型也支援函式的 PREDICT
原生評分。
R:MicrosoftML 模型
- rxFastTrees:快速樹狀結構
- rxFastForest:快速樹系
- rxLogisticRegression:羅吉斯回歸
- rxOneClassSvm:OneClass SVM
- rxNeuralNet:類神經網路
- rxFastLinear:快速線性模型
R:MicrosoftML 提供的轉換
- rxFastTrees:快速樹狀結構
- concat:機器學習 Concat 轉換
- 類別:機器學習 類別數據轉換
- categoricalHash:機器學習 類別哈希數據轉換
- selectFeatures:機器學習 特徵選取轉換
Python:revoscalepy 模型
- rx_lin_mod 1
- rx_logit 1
- rx_btrees 1
- rx_dtree 1
- rx_dforest 1
1 模型也支援函式的 PREDICT
原生評分。
Python:microsoftml 模型
- microsoftml.rx_fast_trees:提升式樹狀
- microsoftml.rx_fast_forest:隨機樹系
- microsoftml.rx_logistic_regression:羅吉斯迴歸
- microsoftml.rx_oneclass_svm:異常偵測
- microsoftml.rx_neural_network:神經網路
- microsoftml.rx_fast_linear:具有隨機雙座標上升的線性模型
Python:microsoftml 提供的轉換
- microsoftml.rx_fast_trees:提升式樹狀
- microsoftml.concat:將多個資料行串連成單一向量
- microsoftml.categorical:將文字資料行轉換成類別
- microsoftml.categorical_hash:對文字資料行進行雜湊處理並轉換成類別
不支援的模型類型
不支援下列模型類型:
在 RevoScaleR 中使用
rxGlm
或rxNaiveBayes
演算法的模型。R 中的 PMML 模型。
使用其他非Microsoft連結庫建立的模型。
使用轉換函式或包含轉換的公式的模型,例如
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 參數數據。