sp_rxPredict

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores – Somente Windows

Gera um valor previsto para uma determinada entrada que consiste em um modelo de aprendizado de máquina armazenado em um formato binário em um banco de dados SQL Server.

Fornece pontuação em modelos de aprendizado de máquina R e Python quase em tempo real. sp_rxPredict é um procedimento armazenado escrito em C++ e é otimizado especificamente para operações de pontuação. sp_rxPredict é um wrapper para:

Função Capa
rxPredict Função R - RevoScaleR
- MicrosoftML
rx_predict função Python - revoscalepy
- microsoftml

O modelo deve ser criado usando R ou Python. No entanto, depois de serializado e armazenado em um formato binário em uma instância do mecanismo de banco de dados de destino, ele pode ser consumido dessa instância do mecanismo de banco de dados, mesmo quando a integração do R ou do Python não está instalada. Para obter mais informações, consulte Pontuação em tempo real com sp_rxPredict no SQL Server.

Sintaxe

sp_rxPredict ( @model , @input )
[ ; ]

Argumentos

@model

Um modelo pré-treinado em um formato com suporte.

@input

Uma consulta SQL válida.

Valores retornados

Uma coluna de pontuação é retornada, bem como todas as colunas de passagem da fonte de dados de entrada.

Colunas de pontuação extras, como intervalo de confiança, podem ser retornadas se o algoritmo der suporte à geração desses valores.

Comentários

Para habilitar o uso do procedimento armazenado, o SQLCLR deve ser habilitado na instância.

Observação

Há implicações de segurança para habilitar essa opção. Use uma implementação alternativa, como a função PREDICT (Transact-SQL), se o SQLCLR não puder ser habilitado em seu servidor.

O usuário precisa de EXECUTE permissão no banco de dados.

Algoritmos compatíveis

Para criar e treinar o modelo, use um dos algoritmos com suporte para R ou Python, fornecidos pelo SQL Server Machine Learning Services (R ou Python), SQL Server 2016 R Services, SQL Server Machine Learning Server (autônomo) (R ou Python) ou SQL Server 2016 R Server (autônomo).

R: Modelos RevoScaleR

1 Os modelos também dão suporte à pontuação nativa com a PREDICT função.

R: Modelos MicrosoftML

R: Transformações fornecidas pelo MicrosoftML

Python: modelos revoscalepy

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

1 Os modelos também dão suporte à pontuação nativa com a PREDICT função.

Python: modelos microsoftml

Python: transformações fornecidas por microsoftml

Tipos de modelos sem suporte

Não há suporte para os seguintes tipos de modelo:

  • Modelos que usam os rxGlm algoritmos or rxNaiveBayes no RevoScaleR.

  • Modelos PMML em R.

  • Modelos criados usando outras bibliotecas que não são da Microsoft.

  • Modelos que usam uma função de transformação ou fórmula que contém uma transformação, como A ~ log(B) não são compatíveis com a pontuação em tempo real. Para usar um modelo desse tipo, recomendamos que você execute a transformação nos dados de entrada antes de passar os dados para a pontuação em tempo real.

A pontuação em tempo real não usa um interpretador, portanto, não há suporte para qualquer funcionalidade que possa exigir um intérprete durante a etapa de pontuação.

Exemplos

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

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

Além de ser uma consulta SQL válida, os dados de entrada em @inputData devem incluir colunas compatíveis com as colunas no modelo armazenado.

sp_rxPredictdá suporte apenas aos seguintes tipos de coluna do .NET: double, float, short, ushortlong, , ulonge string. Talvez seja necessário filtrar tipos sem suporte em seus dados de entrada antes de usá-los para pontuação em tempo real.

Para obter informações sobre os tipos SQL correspondentes, consulte Mapeamento de tipo SQL-CLR ou Mapeamento de dados de parâmetro CLR.