Megosztás a következőn keresztül:


PREDICT (Transact-SQL)

A következőkre vonatkozik: SQL Server 2017 (14.x) és újabb verziók Azure SQL Managed InstanceAzure Synapse Analytics

Előrejelzett értéket vagy pontszámot hoz létre egy tárolt modell alapján. További információ: Natív pontozás a PREDICT T-SQL függvény használatával.

Termék kiválasztása

A következő sorban válassza ki a kívánt terméknevet, és csak az adott termék adatai jelenjenek meg.

Megjegyzés:

PREDICT nem érhető el az Azure SQL Database-ben.

* SQL Server *  

felügyelt SQL-példány

* felügyelt SQL-példány *  

felügyelt SQL-példány

* Azure Synapse
Elemzés *
 

Szemantika

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

MODELL

A MODEL paraméter a pontozáshoz vagy előrejelzéshez használt modell megadására szolgál. A modell változóként, konstansként vagy skaláris kifejezésként van megadva.

PREDICT Támogatja a RevoScaleR és a revoscalepy csomagok használatával betanított modelleket.

A MODEL paraméter a pontozáshoz vagy előrejelzéshez használt modell megadására szolgál. A modell változóként, konstansként vagy skaláris kifejezésként van megadva.

A felügyelt Azure SQL-példányban PREDICT támogatja a RevoScaleR és a revoscalepy csomagok használatával betanított modelleket.

A MODEL paraméter a pontozáshoz vagy előrejelzéshez használt modell megadására szolgál. A modell változóként, konstansként, skaláris kifejezésként vagy skaláris részqueryként van megadva.

Az Azure Synapse Analyticsben PREDICTnyílt neurális hálózati exchange (ONNX) formátumú modelleket támogat. További információ: ONNX.

ADAT

A DATA paraméter a pontozáshoz vagy előrejelzéshez használt adatok megadására szolgál. Az adatok táblaforrás formájában lesznek megadva a lekérdezésben. A tábla forrása lehet tábla, tábla aliasa, CTE aliasa, nézete vagy táblaértékes függvénye.

FUTTATÓKÖRNYEZET = ONNX

A modell végrehajtásához használt gépi tanulási motort jelzi. A RUNTIME paraméter értéke mindig ONNX. A RUNTIME paraméter szükséges az Azure Synapse Analyticshez. Az RUNTIME = ONNX argumentum csak az Azure Synapse Analyticsben érhető el.

WITH ( <result_set_definition> )

A WITH záradék a függvény által visszaadott kimenet sémájának megadására PREDICT szolgál.

A függvény által PREDICT visszaadott oszlopok mellett az adatbevitel részét képező összes oszlop használható a lekérdezésben.

Visszaadott értékek

Nem érhető el előre definiált séma; a modell tartalma nincs érvényesítve, és a visszaadott oszlopértékek sem lesznek érvényesítve.

  • A PREDICT függvény bemenetként halad át az oszlopokon.
  • A PREDICT függvény új oszlopokat is létrehoz, de az oszlopok száma és adattípusa az előrejelzéshez használt modell típusától függ.

Az adatokkal, a modellel vagy az oszlopformátummal kapcsolatos hibaüzeneteket a modellhez társított mögöttes előrejelzési függvény adja vissza.

Megjegyzések

A PREDICT függvény az SQL Server 2017 vagy újabb verzióiban támogatott Windows és Linux rendszeren. A Machine Learning Services használatához PREDICTnem szükséges engedélyezni.

Támogatott algoritmusok

A használt modellt a RevoScaleR vagy a revoscalepy csomagok egyik támogatott algoritmusával kell létrehozni. Az aktuálisan támogatott modellek listáját a PREDICT T-SQL függvény natív pontozása című témakörben találja.

Az ONNX-modellformátummá konvertálható algoritmusok támogatottak.

Az ONNX-modellformátummá konvertálható algoritmusok és a RevoScaleR- vagy revoscalepy-csomagok egyik támogatott algoritmusával létrehozott modellek támogatottak. A RevoScaleR és a revoscalepy jelenleg támogatott algoritmusainak listáját lásd: Natív pontozás a PREDICT T-SQL függvény használatával.

Permissions

Nincs szükség engedélyre PREDICT; a felhasználónak azonban engedélyre van szüksége az adatbázisban, és engedélyt kell EXECUTE adnia a bemenetként használt adatok lekérdezésére. A felhasználónak képesnek kell lennie a modell táblázatból való olvasására is, ha a modellt egy táblában tárolták.

Példák

Az alábbi példák a hívás PREDICTszintaxisát mutatják be.

A PREDICT használata FROM záradékban

Ez a példa egy PREDICT utasítás záradékában található FROM függvényre SELECT hivatkozik:

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;

A paraméterben a DATA tábla forrásához megadott d alias a hozzá tartozó oszlopokra hivatkozikdbo.mytable. A függvényhez PREDICT megadott p alias a függvény által PREDICT visszaadott oszlopokra hivatkozik.

  • A modell varbinary(max) oszlopként van tárolva a nevű Modelstáblában. A modell azonosításához további információk, például IDdescription a táblába mentve és mentve lesznek.
  • A paraméterben a DATA tábla forrásához megadott d alias a hozzá tartozó oszlopokra hivatkozikdbo.mytable. A bemeneti adatoszlopok nevének meg kell egyeznie a modell bemeneteinek nevével.
  • A függvényhez PREDICT megadott p alias a függvény által PREDICT visszaadott előrejelzett oszlopra hivatkozik. Az oszlop nevének ugyanazzal a névvel kell rendelkeznie, mint a modell kimeneti neve.
  • Az összes bemeneti adatoszlop és az előrejelzett oszlopok megjeleníthetők az SELECT utasításban.

Az előző példa lekérdezés skaláris alkonyatként megadva MODEL újraírható nézet létrehozásához:

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;

A PREDICT és az INSERT utasítás kombinálása

Az előrejelzés gyakori használati esete a bemeneti adatok pontszámának létrehozása, majd az előrejelzett értékek táblázatba való beszúrása. Az alábbi példa feltételezi, hogy a hívó alkalmazás tárolt eljárással szúr be egy előrejelzett értéket tartalmazó sort egy táblába:

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;
  • Az eredmények PREDICT egy úgynevezett táblában PredictionResultsvannak tárolva.
  • A modell varbinary(max) oszlopként van tárolva a nevű Modelstáblában. A modell azonosításához további információkat, például azonosítót és leírást is menthet a táblába.
  • A paraméter táblaforrásához megadott alias d használatával hivatkozhat a paraméter oszlopairadbo.mytable.DATA A bemeneti adatoszlopok nevének meg kell egyeznie a modell bemeneteinek nevével.
  • A függvényhez PREDICT megadott alias p a függvény által PREDICT visszaadott előrejelzett oszlopra hivatkozik. Az oszlop nevének ugyanazzal a névvel kell rendelkeznie, mint a modell kimeneti neve.
  • Az utasításban SELECT minden bemeneti oszlop és az előrejelzett oszlop megjeleníthető.

További információ a kapcsolódó fogalmakról az alábbi cikkekben: