sp_rxPredict

適用於:SQL Server 2016 (13.x) 和更新版本 - 僅限 Windows

為指定的輸入產生預測值,其中包含儲存在 SQL Server 資料庫中二進位格式的機器學習模型。

近乎即時地提供 R 和 Python 機器學習模型的評分。 sp_rxPredict 是當做包裝函式提供的預存程式

雖然模型必須使用 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 模型

以 * 標記的模型也支援函式的 PREDICT 原生評分。

Python:microsoftml 模型

Python:microsoftml 提供的轉換

不支援的模型類型

不支援下列模型類型:

  • 在 RevoScaleR 中使用 rxGlmrxNaiveBayes 演算法的模型。
  • 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 參數資料