次の方法で共有


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 ServicesSQL Server Machine Learning Server (スタンドアロン) (R または Python)、または SQL Server 2016 R Server (スタンドアロン)によって提供される R または Python でサポートされているアルゴリズムのいずれかを使用します。

R: RevoScaleR モデル

1 モデルでは、 PREDICT 関数を使用したネイティブ スコアリングもサポートされます。

R: MicrosoftML モデル

R: MicrosoftML によって提供される変換

Python: revoscalepy モデル

1 モデルでは、 PREDICT 関数を使用したネイティブ スコアリングもサポートされます。

Python: microsoftml モデル

Python: microsoftml によって提供される変換

サポートされていないモデルの種類

次のモデルの種類はサポートされていません。

  • 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 列の種類 ( doublefloatshortushortlongulong、および string) のみがサポートされます。 リアルタイム スコアリングに使用する前に、入力データでサポートされていない型を除外することが必要になる場合があります。

対応する SQL 型の詳細については、「SQL-CLR 型マッピングまたは CLR パラメーター データのマッピングを参照してください。