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
- rxLinMod 1
- rxLogit 1
- rxBTrees 1
- rxDtree 1
- rxdFloresta 1
1 Os modelos também dão suporte à pontuação nativa com a PREDICT
função.
R: Modelos MicrosoftML
- rxFastTrees: Árvore Rápida
- rxFastForest: Floresta Rápida
- rxLogisticRegression: Regressão Logística
- rxOneClassSvm: SVM de uma classe
- rxNeuralNet: Rede Neural
- rxFastLinear: Modelo Linear Rápido
R: Transformações fornecidas pelo MicrosoftML
- rxFastTrees: Árvore Rápida
- concat: Transformação Concat de aprendizado de máquina
- categórico: Transformação de dados categóricos de aprendizado de máquina
- categoricalHash: Transformação HashData categórica de aprendizado de máquina
- selectFeatures: Transformação de seleção de recursos de aprendizado de máquina
Python: modelos revoscalepy
1 Os modelos também dão suporte à pontuação nativa com a PREDICT
função.
Python: modelos microsoftml
- microsoftml.rx_fast_trees: árvores aumentadas
- microsoftml.rx_fast_forest: floresta aleatória
- microsoftml.rx_logistic_regression: regressão logística
- microsoftml.rx_oneclass_svm: detecção de anomalias
- microsoftml.rx_neural_network: rede neural
- microsoftml.rx_fast_linear: modelo linear com ascendente de coordenada dupla estocástica
Python: transformações fornecidas por microsoftml
- microsoftml.rx_fast_trees: árvores aumentadas
- microsoftml.concat: concatena várias colunas em apenas um vetor
- microsoftml.categorical: converte uma coluna de texto em categorias
- microsoftml.categorical_hash: realiza hash de uma coluna de texto e a converte em categorias
Tipos de modelos sem suporte
Não há suporte para os seguintes tipos de modelo:
Modelos que usam os
rxGlm
algoritmos orrxNaiveBayes
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_rxPredict
dá suporte apenas aos seguintes tipos de coluna do .NET: double
, float
, short
, ushort
long
, , ulong
e 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.