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 を有効にする必要があります。
Note
このオプションを有効にすることには、セキュリティ上の影響があります。 サーバーで SQLCLR を有効にできない場合は、 Transact-SQL PREDICT 関数などの代替実装を使用します。
ユーザーには、データベース EXECUTE
アクセス許可が必要です。
サポートされているアルゴリズム
モデルを作成してトレーニングするには、 SQL Server Machine Learning Services (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
では、double、float、short、ushort、long、ulong、string の .NET 列型のみがサポートされています。 リアルタイム スコアリングに使用する前に、入力データでサポートされていない型を除外することが必要になる場合があります。
対応する SQL 型の詳細については、「SQL と CLR 型のマッピング」または「CLR パラメーター データのマッピング」を参照してください。