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
- rxFastTrees : Arbre rapide
- rxFastForest : Fast Forest
- rxLogisticRegression : Régression logistique
- rxOneClassSvm : OneClass SVM
- rxNeuralNet : Net neuronal
- rxFastLinear : modèle linéaire rapide
R : Transformations fournies par MicrosoftML
- rxFastTrees : Arbre rapide
- concat : Transformation De Concat Machine Learning
- Catégorie : Transformation des données catégorielles Machine Learning
- categoricalHash : Machine Learning Categorical HashData Transform
- selectFeatures : Transformation de sélection des fonctionnalités Machine Learning
Python : modèles revoscalepy
1 Les modèles prennent également en charge le scoring natif avec la PREDICT
fonction.
Python : modèles microsoftml
- microsoftml.rx_fast_trees : arborescences optimisées
- microsoftml.rx_fast_forest : forêt aléatoire
- microsoftml.rx_logistic_regression : régression logistique
- microsoftml.rx_oneclass_svm : détection d’anomalie
- microsoftml.rx_neural_network : réseau neuronal
- microsoftml.rx_fast_linear : modèle linéaire avec ascension coordonnée double stochastique
Python : Transformations fournies par microsoftml
- microsoftml.rx_fast_trees : arborescences optimisées
- microsoftml.concat : concatène plusieurs colonnes en un seul vecteur
- microsoftml.categorical : convertit une colonne de texte en catégories
- microsoftml.categorical_hash : hache et convertit une colonne de texte en catégories
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
lesrxGlm
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_rxPredict
prend uniquement en charge les types de colonnes .NET suivants : double
, , short
float
, 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.