Partilhar via


sp_rxPredict

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores no 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 do 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 invólucro para:

Função Invólucro
rxPredict Função R - RevoScaleR
- MicrosoftML
rx_predict Função Python - Revoscalepy
- MicrosoftML

O modelo deve ser criado usando R ou Python. No entanto, uma vez serializado e armazenado em um formato binário em uma instância do mecanismo de banco de dados de destino, ele pode ser consumido a partir dessa instância do mecanismo de banco de dados, mesmo quando a integração R ou 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 suportado.

@input

Uma consulta SQL válida.

Valor de retorno

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

Colunas de pontuação extra, como intervalo de confiança, podem ser retornadas se o algoritmo suportar a geração de tais valores.

Observações

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 , se o SQLCLR não puder ser habilitado no servidor.

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

Algoritmos suportados

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 (Standalone) (R ou Python) ou SQL Server 2016 R Server (Standalone).

R: Modelos RevoScaleR

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

R: Modelos MicrosoftML

R: Transformações fornecidas pelo MicrosoftML

Python: modelos revoscalepy

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

Python: modelos microsoftml

Python: Transformações fornecidas por microsoftml

Tipos de modelo não suportados

Os seguintes tipos de modelo não são suportados:

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

  • Modelos de 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 suportados na 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 intérprete, portanto, qualquer funcionalidade que possa exigir um intérprete não é suportada durante a etapa de pontuação.

Exemplos

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

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

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

sp_rxPredict suporta apenas os seguintes tipos de coluna .NET: double, float, short, ushort, long, ulonge string. Talvez seja necessário filtrar tipos não suportados 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 SQL-CLR Type Mapping ou Map CLR parameter data.