Compartir a través de


sp_rxPredict

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores: solo Windows

Genera un valor previsto para una entrada determinada que consta de un modelo de aprendizaje automático almacenado en un formato binario en una base de datos de SQL Server.

Proporciona puntuación en los modelos de aprendizaje automático de R y Python casi en tiempo real. sp_rxPredict es un procedimiento almacenado escrito en C++y está optimizado específicamente para las operaciones de puntuación. sp_rxPredict es un contenedor para:

Función Envoltura
rxPredict Función R - RevoScaleR
- MicrosoftML
rx_predict función de Python - revoscalepy
- microsoftml

El modelo debe crearse mediante R o Python. Sin embargo, una vez que se serializa y almacena en un formato binario en una instancia de motor de base de datos de destino, se puede consumir desde esa instancia del motor de base de datos, incluso cuando la integración de R o Python no está instalada. Para obtener más información, consulte Puntuación en tiempo real con sp_rxPredict en SQL Server.

Sintaxis

sp_rxPredict ( @model , @input )
[ ; ]

Argumentos

@model

Un modelo entrenado previamente en un formato admitido.

@input

Una consulta SQL válida.

Valores devueltos

Se devuelve una columna de puntuación, así como cualquier columna de paso a través del origen de datos de entrada.

Se pueden devolver columnas de puntuación adicionales, como el intervalo de confianza, si el algoritmo admite la generación de estos valores.

Comentarios

Para habilitar el uso del procedimiento almacenado, SQLCLR debe estar habilitado en la instancia.

Nota:

Hay implicaciones de seguridad para habilitar esta opción. Use una implementación alternativa, como la función PREDICT (Transact-SQL), si SQLCLR no se puede habilitar en el servidor.

El usuario necesita EXECUTE permiso en la base de datos.

Algoritmos admitidos

Para crear y entrenar el modelo, use uno de los algoritmos admitidos para R o Python, proporcionados por SQL Server Machine Learning Services (R o Python), SQL Server 2016 R Services, SQL Server Machine Learning Server (independiente) (R o Python) o SQL Server 2016 R Server (independiente).

R: Modelos de RevoScaleR

1 Los modelos también admiten la puntuación nativa con la PREDICT función .

R: Modelos de MicrosoftML

R: Transformaciones proporcionadas por MicrosoftML

Python: modelos de revoscalepy

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

1 Los modelos también admiten la puntuación nativa con la PREDICT función .

Python: modelos microsoftml

Python: Transformaciones proporcionadas por microsoftml

Tipos de modelos no admitidos

No se admiten los siguientes tipos de modelo:

  • Modelos que usan los rxGlm algoritmos o rxNaiveBayes en RevoScaleR.

  • Modelos PMML en R.

  • Modelos creados con otras bibliotecas que no son de Microsoft.

  • Los modelos que usan una función de transformación o una fórmula que contiene una transformación, como A ~ log(B) , por ejemplo, no se admiten en la puntuación en tiempo real. Para usar un modelo de este tipo, se recomienda realizar la transformación en los datos de entrada antes de pasar los datos a la puntuación en tiempo real.

La puntuación en tiempo real no usa un intérprete, por lo que no se admite ninguna funcionalidad que pueda requerir un intérprete durante el paso de puntuación.

Ejemplos

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

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

Además de ser una consulta SQL válida, los datos de entrada de @inputData deben incluir columnas compatibles con las columnas del modelo almacenado.

sp_rxPredictsolo admite los siguientes tipos de columna de .NET: double, float, shortushort, long, , ulongy string. Es posible que tenga que filtrar los tipos no admitidos en los datos de entrada antes de usarlos para la puntuación en tiempo real.

Para obtener información sobre los tipos SQL correspondientes, consulte Asignación de tipos de SQL-CLR o Asignación de datos de parámetros CLR.