Partage via


sp_rxPredict

S’applique à : SQL Server 2016 (13.x) et versions ultérieures - Windows uniquement

Génère une valeur prédite pour une entrée donnée composée d’un modèle Machine Learning stocké dans un format binaire dans une base de données SQL Server.

Fournit un scoring sur les modèles Machine Learning R et Python en quasi temps réel. sp_rxPredict est une procédure stockée écrite en C++, et est optimisée spécifiquement pour les opérations de scoring. sp_rxPredict est un wrapper pour :

Fonction Enveloppe
rxPredict Fonction R - RevoScaleR
- MicrosoftML
rx_predict fonction Python - revoscalepy
- microsoftml

Le modèle doit être créé à l’aide de R ou Python. Toutefois, une fois sérialisé et stocké dans un format binaire sur une instance de moteur de base de données cible, il peut être consommé à partir de cette instance du moteur de base de données, même quand l’intégration R ou Python n’est pas installée. Pour plus d’informations, consultez le scoring en temps réel avec sp_rxPredict dans SQL Server.

Syntaxe

sp_rxPredict ( @model , @input )
[ ; ]

Arguments

@model

Modèle préentraîné dans un format pris en charge.

@input

Requête SQL valide.

Valeurs de retour

Une colonne de score est retournée, ainsi que toutes les colonnes directes de la source de données d’entrée.

Des colonnes de score supplémentaires, telles que l’intervalle de confiance, peuvent être retournées si l’algorithme prend en charge la génération de ces valeurs.

Notes

Pour activer l’utilisation de la procédure stockée, SQLCLR doit être activé sur l’instance.

Remarque

Il existe des implications en matière de sécurité pour activer cette option. Utilisez une autre implémentation, telle que la fonction PREDICT (Transact-SQL), si SQLCLR ne peut pas être activé sur votre serveur.

L’utilisateur a besoin EXECUTE d’une autorisation sur la base de données.

Algorithmes pris en charge

Pour créer et entraîner un modèle, utilisez l’un des algorithmes pris en charge pour R ou Python, fournis par SQL Server Machine Learning Services (R ou Python), SQL Server 2016 R Services, SQL Server Machine Learning Server (autonome) ou SQL Server 2016 R Server (autonome) ou SQL Server 2016 R Server (autonome).

R : Modèles RevoScaleR

1 Les modèles prennent également en charge le scoring natif avec la PREDICT fonction.

R : Modèles MicrosoftML

R : Transformations fournies par MicrosoftML

Python : modèles revoscalepy

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

1 Les modèles prennent également en charge le scoring natif avec la PREDICT fonction.

Python : modèles microsoftml

Python : Transformations fournies par microsoftml

Types de modèles non pris en charge

Les types de modèle suivants ne sont pas pris en charge :

  • Modèles utilisant les algorithmes ou rxNaiveBayes les rxGlm algorithmes dans RevoScaleR.

  • Modèles PMML en R.

  • Modèles créés à l’aide d’autres bibliothèques non-Microsoft.

  • Les modèles utilisant une fonction de transformation ou une formule contenant une transformation, comme A ~ log(B) ne sont pas pris en charge dans le scoring en temps réel. Pour utiliser un modèle de ce type, nous vous recommandons d’effectuer la transformation sur les données d’entrée avant de passer les données au scoring en temps réel.

Le scoring en temps réel n’utilise pas d’interpréteur. Par conséquent, toutes les fonctionnalités susceptibles de nécessiter un interpréteur ne sont pas prises en charge pendant l’étape de scoring.

Exemples

DECLARE @model =
    SELECT @model
    FROM model_table
    WHERE model_name = 'rxLogit trained';

EXEC sp_rxPredict @model = @model,
    @inputData = N'SELECT * FROM data';

En plus d’être une requête SQL valide, les données d’entrée dans @inputData doivent inclure des colonnes compatibles avec les colonnes du modèle stocké.

sp_rxPredictprend uniquement en charge les types de colonnes .NET suivants : double, , shortfloat, ushort, long, ulong, et string. Vous devrez peut-être filtrer les types non pris en charge dans vos données d’entrée avant de l’utiliser pour le scoring en temps réel.

Pour plus d’informations sur les types SQL correspondants, consultez mappage de types SQL-CLR ou données de paramètre CLR de mappage.