sp_rxPredict
適用対象: SQL Server 2016 (13.x) 以降 - Windows のみ
SQL Server データベースのバイナリ形式で格納された機械学習モデルで構成される、特定の入力の予測値を生成します。
R と Python の機械学習モデルのスコアリングをほぼリアルタイムで提供します。 sp_rxPredict
は C++ で記述されたストアド プロシージャであり、スコアリング操作専用に最適化されています。 sp_rxPredict
は次のラッパーです。
機能 | ラッパー |
---|---|
rxPredict R 関数 |
- RevoScaleR - MicrosoftML |
Python 関数のrx_predict | - revoscalepy - microsoftml |
モデルは、R または Python を使用して作成する必要があります。 ただし、ターゲット データベース エンジン インスタンスでシリアル化およびバイナリ形式で格納されると、R または Python の統合がインストールされていない場合でも、そのデータベース エンジン インスタンスから使用できます。 詳細については、「SQL Server でのsp_rxPredictを使用したリアルタイム スコアリングを参照してください。
構文
sp_rxPredict ( @model , @input )
[ ; ]
引数
@model
サポートされている形式の事前トレーニング済みモデル。
@input
有効な SQL クエリ。
戻り値
スコア列と、入力データ ソースからのパススルー列が返されます。
アルゴリズムがそのような値の生成をサポートしている場合は、信頼区間などの追加のスコア列を返すことができます。
解説
ストアド プロシージャの使用を有効にするには、インスタンスで SQLCLR を有効にする必要があります。
Note
このオプションを有効にすることには、セキュリティ上の影響があります。 サーバーで SQLCLR を有効にできない場合は、 PREDICT (Transact-SQL) 関数などの代替実装を使用します。
ユーザーには、データベース 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 モデル
1 モデルでは、 PREDICT
関数を使用したネイティブ スコアリングもサポートされます。
R: MicrosoftML モデル
- rxFastTrees: Fast Tree
- rxFastForest: 高速フォレスト
- rxLogisticRegression: ロジスティック回帰
- rxOneClassSvm: OneClass SVM
- rxNeuralNet: ニューラル ネット
- rxFastLinear: 高速線形モデル
R: MicrosoftML によって提供される変換
- rxFastTrees: Fast Tree
- concat: Machine Learning Concat Transform
- カテゴリ: Machine Learning カテゴリ データ変換
- categoricalHash: Machine Learning のカテゴリハッシュデータ変換
- selectFeatures: Machine Learning 機能選択変換
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: 複数の列を連結して 1 つのベクトルにする
- 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 パラメーター データのマッピングを参照してください。