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 ServicesSQL Server 機器學習 Server (獨立)(R 或 Python)或 SQL Server 2016 R Server (獨立式)所提供的其中一種支援的 R 或 Python 演演算法。

R:RevoScaleR 模型

1 模型也支援函式的 PREDICT 原生評分。

R:MicrosoftML 模型

R:MicrosoftML 提供的轉換

Python:revoscalepy 模型

  • rx_lin_mod 1
  • rx_logit 1
  • rx_btrees 1
  • rx_dtree 1
  • rx_dforest 1

1 模型也支援函式的 PREDICT 原生評分。

Python:microsoftml 模型

Python:microsoftml 提供的轉換

不支援的模型類型

不支援下列模型類型:

  • 在 RevoScaleR 中使用 rxGlmrxNaiveBayes 演算法的模型。

  • 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 資料行類型: doublefloat、、 shortushortlongulongstring。 您可能需要先篩選掉輸入數據中不支援的類型,再使用它進行即時評分。

如需對應 SQL 類型的相關信息,請參閱 SQL-CLR 類型對應對應 CLR 參數數據