Condividi tramite


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

R: Trasformazioni fornite da MicrosoftML

Python: modelli revoscalepy

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

1 I modelli supportano anche l'assegnazione dei punteggi nativa con la PREDICT funzione .

Python: modelli microsoftml

Python: trasformazioni fornite da microsoftml

Tipi di modelli non supportati

I tipi di modello seguenti non sono supportati:

  • Modelli che usano gli rxGlm algoritmi o rxNaiveBayes 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_rxPredictsupporta solo i tipi di colonna .NET seguenti: double, float, ushortshort, 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.