Partilhar via


PREVER (Transact-SQL)

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores Azure SQL Managed InstanceAzure Synapse Analytics

Gera um valor previsto ou pontuações com base em um modelo armazenado. Para obter mais informações, consulte Pontuação nativa usando a função PREDICT T-SQL.

Selecione um produto

Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.

Observação

PREDICT não está disponível na Base de Dados SQL do Azure.

* Servidor SQL *  

* Instância gerenciada SQL *  

* Sinapse do Azure
Análise *
 

Sintaxe

PREDICT  
(  
  MODEL = @model | model_literal,  
  DATA = object AS <table_alias>
)  
WITH ( <result_set_definition> )  

<result_set_definition> ::=  
  {  
    { column_name  
      data_type  
      [ COLLATE collation_name ]  
      [ NULL | NOT NULL ]  
    }  
      [,...n ]  
  }  

MODEL = @model | model_literal  
PREDICT  
(  
  MODEL = <model_object>,
  DATA = object AS <table_alias>
  [, RUNTIME = ONNX ]
)  
WITH ( <result_set_definition> )  

<result_set_definition> ::=  
  {  
    { column_name  
      data_type  
      [ COLLATE collation_name ]  
      [ NULL | NOT NULL ]  
    }  
      [,...n ]  
  }  

<model_object> ::=
  {
    model_literal
    | model_variable
    | ( scalar_subquery )
  }

Arguments

MODELO

O MODEL parâmetro é usado para especificar o modelo usado para pontuação ou previsão. O modelo é especificado como uma variável ou uma expressão literal ou escalar.

PREDICT suporta modelos treinados usando os pacotes RevoScaleR e revoscalepy .

O MODEL parâmetro é usado para especificar o modelo usado para pontuação ou previsão. O modelo é especificado como uma variável ou uma expressão literal ou escalar.

Na Instância Gerenciada SQL do Azure, PREDICT dá suporte a modelos treinados usando os pacotes RevoScaleR e revoscalepy .

O MODEL parâmetro é usado para especificar o modelo usado para pontuação ou previsão. O modelo é especificado como uma variável ou uma expressão literal ou escalar ou uma subconsulta escalar.

No Azure Synapse Analytics, PREDICT dá suporte a modelos no formato ONNX (Open Neural Network Exchange ). Para obter mais informações, consulte ONNX.

DADOS

O parâmetro DATA é usado para especificar os dados usados para pontuação ou previsão. Os dados são especificados na forma de uma fonte de tabela na consulta. A origem da tabela pode ser uma tabela, alias de tabela, alias CTE, exibição ou função com valor de tabela.

TEMPO de EXECUÇÃO = ONNX

Indica o mecanismo de aprendizado de máquina usado para a execução do modelo. O valor do RUNTIME parâmetro é sempre ONNX. O RUNTIME parâmetro é necessário para o Azure Synapse Analytics. O RUNTIME = ONNX argumento só está disponível no Azure Synapse Analytics.

COM ( <result_set_definition> )

A cláusula WITH é usada para especificar o esquema da saída retornada PREDICT pela função.

Além das colunas retornadas pela PREDICT própria função, todas as colunas que fazem parte da entrada de dados estão disponíveis para uso na consulta.

Valores de retorno

Nenhum esquema predefinido está disponível; O conteúdo do modelo não é validado e os valores da coluna retornada também não são validados.

  • A PREDICT função passa por colunas como entrada.
  • A PREDICT função também gera novas colunas, mas o número de colunas e seus tipos de dados depende do tipo de modelo que foi usado para previsão.

Quaisquer mensagens de erro relacionadas aos dados, ao modelo ou ao formato de coluna são retornadas pela função de previsão subjacente associada ao modelo.

Observações

A PREDICT função é suportada em todas as edições do SQL Server 2017 ou posterior, no Windows e Linux. Os Serviços de Aprendizado de Máquina não precisam estar habilitados para usar o PREDICT.

Algoritmos suportados

O modelo que você usa deve ter sido criado usando um dos algoritmos suportados dos pacotes RevoScaleR ou revoscalepy . Para obter uma lista de modelos atualmente suportados, consulte Pontuação nativa usando a função PREDICT T-SQL.

Algoritmos que podem ser convertidos para o formato de modelo ONNX são suportados.

Algoritmos que podem ser convertidos para o formato de modelo ONNX e modelos que você criou usando um dos algoritmos suportados dos pacotes RevoScaleR ou revoscalepy são suportados. Para obter uma lista dos algoritmos atualmente suportados no RevoScaleR e no revoscalepy, consulte Pontuação nativa usando a função PREDICT T-SQL.

Permissions

Não são necessárias permissões para PREDICTisso, no entanto, o usuário precisa EXECUTE de permissão no banco de dados e permissão para consultar quaisquer dados que sejam usados como entradas. O usuário também deve ser capaz de ler o modelo de uma tabela, se o modelo tiver sido armazenado em uma tabela.

Examples

Os exemplos a seguir demonstram a sintaxe para chamar PREDICT.

Usando PREDICT em uma cláusula FROM

Este exemplo faz referência à PREDICTFROM função na cláusula de uma SELECT instrução:

SELECT d.*, p.Score
FROM PREDICT(MODEL = @model,
    DATA = dbo.mytable AS d) WITH (Score FLOAT) AS p;
DECLARE @model VARBINARY(max) = (SELECT test_model FROM scoring_model WHERE model_id = 1);

SELECT d.*, p.Score
FROM PREDICT(MODEL = @model,
    DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score FLOAT) AS p;

O alias d especificado para a origem da DATA tabela no parâmetro é usado para fazer referência às colunas pertencentes a dbo.mytable. O alias p especificado para a PREDICT função é usado para fazer referência às colunas retornadas PREDICT pela função.

  • O modelo é armazenado como coluna varbinary(max) na tabela chamada Models. Informações adicionais, como ID e description são salvas na tabela para identificar o modelo.
  • O alias d especificado para a origem da DATA tabela no parâmetro é usado para fazer referência às colunas pertencentes a dbo.mytable. Os nomes das colunas de dados de entrada devem corresponder ao nome das entradas para o modelo.
  • O alias p especificado para a PREDICT função é usado para fazer referência à coluna prevista retornada PREDICT pela função. O nome da coluna deve ter o mesmo nome que o nome de saída do modelo.
  • Todas as colunas de dados de entrada e as colunas previstas estão disponíveis para exibição na SELECT instrução.

A consulta de exemplo anterior pode ser reescrita para criar um modo de exibição especificando MODEL como uma subconsulta escalar:

CREATE VIEW predictions
AS
SELECT d.*, p.Score
FROM PREDICT(MODEL = (SELECT test_model FROM scoring_model WHERE model_id = 1),
             DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score FLOAT) AS p;

Combinando PREDICT com uma instrução INSERT

Um caso de uso comum para previsão é gerar uma pontuação para dados de entrada e, em seguida, inserir os valores previstos em uma tabela. O exemplo a seguir pressupõe que o aplicativo de chamada usa um procedimento armazenado para inserir uma linha contendo o valor previsto em uma tabela:

DECLARE @model VARBINARY(max) = (SELECT model FROM scoring_model WHERE model_name = 'ScoringModelV1');

INSERT INTO loan_applications (c1, c2, c3, c4, score)
SELECT d.c1, d.c2, d.c3, d.c4, p.score
FROM PREDICT(MODEL = @model, DATA = dbo.mytable AS d) WITH(score FLOAT) AS p;
DECLARE @model VARBINARY(max) = (SELECT model FROM scoring_model WHERE model_name = 'ScoringModelV1');

INSERT INTO loan_applications (c1, c2, c3, c4, score)
SELECT d.c1, d.c2, d.c3, d.c4, p.score
FROM PREDICT(MODEL = @model, DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH(score FLOAT) AS p;
  • Os resultados de PREDICT são armazenados em uma tabela chamada PredictionResults.
  • O modelo é armazenado como coluna varbinary(max) na tabela chamada Models. Informações adicionais, como ID e descrição, podem ser salvas na tabela para identificar o modelo.
  • O alias d especificado para a origem da DATA tabela no parâmetro é usado para fazer referência às colunas no dbo.mytable. Os nomes das colunas de dados de entrada devem corresponder ao nome das entradas para o modelo.
  • O alias p especificado para a PREDICT função é usado para fazer referência à coluna prevista retornada PREDICT pela função. O nome da coluna deve ter o mesmo nome que o nome de saída do modelo.
  • Todas as colunas de entrada e a coluna prevista estão disponíveis para exibição na SELECT instrução.

Saiba mais sobre conceitos relacionados nos seguintes artigos: