sp_rxPredict
Si applica a: SQL Server 2016 (13.x) e versioni successive - Solo Windows
Genera un valore stimato per un determinato input costituito da un modello di Machine Learning archiviato in un formato binario in un database di SQL Server.
Fornisce l'assegnazione dei punteggi ai modelli di Machine Learning R e Python quasi in tempo reale. sp_rxPredict
è una stored procedure scritta in C++ ed è ottimizzata in modo specifico per le operazioni di assegnazione dei punteggi. sp_rxPredict
è un wrapper per:
Funzione | Involucro |
---|---|
rxPredict Funzione R |
- RevoScaleR - MicrosoftML |
rx_predict funzione Python | - revoscalepy - microsoftml |
Il modello deve essere creato usando R o Python. Tuttavia, una volta serializzato e archiviato in un formato binario in un'istanza del motore di database di destinazione, può essere utilizzato da tale istanza del motore di database, anche quando l'integrazione di R o Python non è installata. Per altre informazioni, vedere Assegnazione dei punteggi in tempo reale con sp_rxPredict in SQL Server.
Sintassi
sp_rxPredict ( @model , @input )
[ ; ]
Argomenti
@model
Modello con training preliminare in un formato supportato.
@input
Query SQL valida.
Valori restituiti
Viene restituita una colonna score, nonché qualsiasi colonna pass-through dall'origine dati di input.
Le colonne di punteggio aggiuntive, ad esempio l'intervallo di confidenza, possono essere restituite se l'algoritmo supporta la generazione di tali valori.
Osservazioni:
Per abilitare l'uso della stored procedure, è necessario abilitare SQLCLR nell'istanza di .
Nota
L'abilitazione di questa opzione comporta implicazioni per la sicurezza. Usare un'implementazione alternativa, ad esempio la funzione PREDICT (Transact-SQL), se SQLCLR non può essere abilitato nel server.
L'utente deve disporre dell'autorizzazione EXECUTE
per il database.
Algoritmi supportati
Per creare ed eseguire il training del modello, usare uno degli algoritmi supportati per R o Python, fornito da SQL Server Machine Learning Services (R o Python), SQL Server 2016 R Services, SQL Server Machine Learning Server (Standalone) (R o Python) o SQL Server 2016 R Server (Standalone).
R: Modelli RevoScaleR
1 I modelli supportano anche l'assegnazione dei punteggi nativa con la PREDICT
funzione .
R: Modelli MicrosoftML
- rxFastTrees: Albero rapido
- rxFastForest: Foresta veloce
- rxLogisticRegression: Regressione logistica
- rxOneClassSvm: OneClass SVM
- rxNeuralNet: Neural Net
- rxFastLinear: modello lineare veloce
R: Trasformazioni fornite da MicrosoftML
- rxFastTrees: Albero rapido
- concat: Trasformazione Concat di Machine Learning
- categorico: Trasformazione dati categorica di Machine Learning
- categoricalHash: Trasformazione HashData categorica di Machine Learning
- selectFeatures: Trasformazione selezione funzionalità di Machine Learning
Python: modelli revoscalepy
1 I modelli supportano anche l'assegnazione dei punteggi nativa con la PREDICT
funzione .
Python: modelli microsoftml
- microsoftml.rx_fast_trees: alberi con boosting
- microsoftml.rx_fast_forest: foresta casuale
- microsoftml.rx_logistic_regression: regressione logistica
- microsoftml.rx_oneclass_svm: rilevamento anomalie
- microsoftml.rx_neural_network: rete neurale
- microsoftml.rx_fast_linear: modello lineare con SDCA (Stochastic Dual Coordinate Ascent)
Python: trasformazioni fornite da microsoftml
- microsoftml.rx_fast_trees: alberi con boosting
- microsoftml.concat: concatena più colonne in un singolo vettore
- microsoftml.categorical: converte una colonna di testo in categorie
- microsoftml.categorical_hash: esegue l'hashing e converte una colonna di testo in categorie
Tipi di modelli non supportati
I tipi di modello seguenti non sono supportati:
Modelli che usano gli
rxGlm
algoritmi orxNaiveBayes
in RevoScaleR.Modelli PMML in R.
Modelli creati con altre librerie non Microsoft.
I modelli che usano una funzione di trasformazione o una formula contenente una trasformazione, ad esempio
A ~ log(B)
non sono supportati nell'assegnazione dei punteggi in tempo reale. Per usare un modello di questo tipo, si consiglia di eseguire la trasformazione sui dati di input prima di passare i dati a un punteggio in tempo reale.
L'assegnazione dei punteggi in tempo reale non usa un interprete, quindi tutte le funzionalità che potrebbero richiedere un interprete non sono supportate durante il passaggio di assegnazione dei punteggi.
Esempi
DECLARE @model =
SELECT @model
FROM model_table
WHERE model_name = 'rxLogit trained';
EXEC sp_rxPredict @model = @model,
@inputData = N'SELECT * FROM data';
Oltre a essere una query SQL valida, i dati di input in @inputData devono includere colonne compatibili con le colonne nel modello archiviato.
sp_rxPredict
supporta solo i tipi di colonna .NET seguenti: double
, float
, ushort
short
, long
, ulong
, e string
. Potrebbe essere necessario filtrare i tipi non supportati nei dati di input prima di usarli per l'assegnazione dei punteggi in tempo reale.
Per informazioni sui tipi SQL corrispondenti, vedere Mapping dei tipi SQL-CLR o Mapping dei dati dei parametri CLR.