Udostępnij za pomocą


PREDICT (Transact-SQL)

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje usługi Azure SQL Managed InstanceAzure Synapse Analytics

Generuje przewidywaną wartość lub wyniki na podstawie przechowywanego modelu. Aby uzyskać więcej informacji, zobacz Natywne ocenianie przy użyciu funkcji PREDICT T-SQL.

Wybieranie produktu

W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.

Uwaga / Notatka

PREDICT jest niedostępna w usłudze Azure SQL Database.

* SQL Server *  

* SQL Managed Instance *  

* Azure Synapse
Analiza *
 

Składnia

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

MODEL

Parametr służy do określania MODEL modelu używanego do oceniania lub przewidywania. Model jest określany jako zmienna lub literał lub wyrażenie skalarne.

PREDICT obsługuje modele trenowane przy użyciu pakietów RevoScaleR i revoscalepy .

Parametr służy do określania MODEL modelu używanego do oceniania lub przewidywania. Model jest określany jako zmienna lub literał lub wyrażenie skalarne.

W usłudze Azure SQL Managed Instance PREDICT obsługuje modele trenowane przy użyciu pakietów RevoScaleR i revoscalepy .

Parametr służy do określania MODEL modelu używanego do oceniania lub przewidywania. Model jest określany jako zmienna lub literał albo wyrażenie skalarne lub podzapytywanie skalarne.

W usłudze Azure Synapse Analytics PREDICT obsługuje modele w formacie Open Neural Network Exchange (ONNX). Aby uzyskać więcej informacji, zobacz ONNX.

DANE

Parametr DATA służy do określania danych używanych do oceniania lub przewidywania. Dane są określane w postaci źródła tabeli w zapytaniu. Źródło tabeli może być tabelą, aliasem tabeli, aliasem CTE, widokiem lub funkcją wartości tabeli.

RUNTIME = ONNX

Wskazuje aparat uczenia maszynowego używany do wykonywania modelu. Wartość parametru RUNTIME to zawsze ONNX. Parametr RUNTIME jest wymagany dla usługi Azure Synapse Analytics. Argument RUNTIME = ONNX jest dostępny tylko w usłudze Azure Synapse Analytics.

WITH ( <result_set_definition> )

Klauzula WITH służy do określania schematu danych wyjściowych zwracanych przez PREDICT funkcję.

Oprócz kolumn zwracanych przez PREDICT samą funkcję wszystkie kolumny będące częścią danych wejściowych są dostępne do użycia w zapytaniu.

Wartości zwracane

Nie jest dostępny wstępnie zdefiniowany schemat; zawartość modelu nie jest weryfikowana i zwracane wartości kolumn nie są weryfikowane.

  • Funkcja PREDICT przekazuje kolumny jako dane wejściowe.
  • Funkcja PREDICT generuje również nowe kolumny, ale liczba kolumn i ich typów danych zależy od typu modelu, który został użyty do przewidywania.

Wszelkie komunikaty o błędach związane z danymi, modelem lub formatem kolumny są zwracane przez podstawową funkcję przewidywania skojarzona z modelem.

Uwagi

Funkcja jest obsługiwana PREDICT we wszystkich wersjach programu SQL Server 2017 lub nowszych w systemach Windows i Linux. Usługi Machine Learning Services nie muszą być włączone do korzystania z programu PREDICT.

Obsługiwane algorytmy

Używany model musi zostać utworzony przy użyciu jednego z obsługiwanych algorytmów z pakietów RevoScaleR lub revoscalepy . Aby uzyskać listę aktualnie obsługiwanych modeli, zobacz Natywne ocenianie przy użyciu funkcji PREDICT T-SQL.

Obsługiwane są algorytmy, które można przekonwertować na format modelu ONNX .

Obsługiwane są algorytmy, które można przekonwertować na format modelu ONNX i modele utworzone przy użyciu jednego z obsługiwanych algorytmów z pakietów RevoScaleR lub revoscalepy . Aby uzyskać listę aktualnie obsługiwanych algorytmów w programie RevoScaleR i revoscalepy, zobacz Native scoring using the PREDICT T-SQL function (Ocenianie natywne przy użyciu funkcji PREDICT T-SQL).

Permissions

W przypadku PREDICTbazy danych nie są wymagane żadne uprawnienia. Użytkownik musi EXECUTE mieć uprawnienia do bazy danych i uprawnienia do wykonywania zapytań dotyczących danych używanych jako danych wejściowych. Użytkownik musi również mieć możliwość odczytania modelu z tabeli, jeśli model został zapisany w tabeli.

Przykłady

W poniższych przykładach pokazano składnię wywoływania metody PREDICT.

Używanie funkcji PREDICT w klauzuli FROM

Ten przykład odwołuje się do PREDICT funkcji w FROM klauzuli instrukcji SELECT :

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;

Alias d określony dla źródła tabeli w parametrze DATA służy do odwołowania się do kolumn należących do dbo.mytable. Alias p określony dla PREDICT funkcji służy do odwołowania się do kolumn zwracanych przez PREDICT funkcję.

  • Model jest przechowywany jako kolumna varbinary(max) w tabeli o nazwie Models. Dodatkowe informacje, takie jak ID i description , są zapisywane w tabeli w celu zidentyfikowania modelu.
  • Alias d określony dla źródła tabeli w parametrze DATA służy do odwołowania się do kolumn należących do dbo.mytable. Nazwy kolumn danych wejściowych powinny być zgodne z nazwą danych wejściowych modelu.
  • Alias p określony dla PREDICT funkcji służy do odwołowania się do przewidywanej kolumny zwróconej PREDICT przez funkcję. Nazwa kolumny powinna mieć taką samą nazwę jak nazwa danych wyjściowych modelu.
  • Wszystkie kolumny danych wejściowych i przewidywane kolumny są dostępne do wyświetlenia w instrukcji SELECT .

Poprzednie przykładowe zapytanie można przepisać, aby utworzyć widok, określając MODEL jako podzapytywanie skalarne:

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;

Łączenie instrukcji PREDICT z instrukcją INSERT

Typowym przypadkiem użycia przewidywania jest wygenerowanie wyniku dla danych wejściowych, a następnie wstawienie przewidywanych wartości do tabeli. W poniższym przykładzie przyjęto założenie, że aplikacja wywołująca używa procedury składowanej do wstawiania wiersza zawierającego przewidywaną wartość do tabeli:

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;
  • Wyniki PREDICT są przechowywane w tabeli o nazwie PredictionResults.
  • Model jest przechowywany jako kolumna varbinary(max) w tabeli o nazwie Models. Dodatkowe informacje, takie jak identyfikator i opis, można zapisać w tabeli w celu zidentyfikowania modelu.
  • Alias d określony dla źródła tabeli w parametrze DATA służy do odwołowania się do kolumn w pliku dbo.mytable. Nazwy kolumn danych wejściowych powinny być zgodne z nazwą danych wejściowych modelu.
  • Alias p określony dla PREDICT funkcji służy do odwołowania się do przewidywanej kolumny zwróconej PREDICT przez funkcję. Nazwa kolumny powinna mieć taką samą nazwę jak nazwa danych wyjściowych modelu.
  • Wszystkie kolumny wejściowe i przewidywana kolumna są dostępne do wyświetlenia w instrukcji SELECT .

Dowiedz się więcej o powiązanych pojęciach w następujących artykułach: