PREDICT (Transact-SQL)

Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Menghasilkan nilai atau skor yang diprediksi berdasarkan model yang disimpan. Untuk informasi selengkapnya, lihat Penilaian asli menggunakan fungsi PREDICT T-SQL.

Pilih produk

Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk tersebut yang ditampilkan.

* SQL Managed Instance *  

* Azure Synapse
Analytics*
 

Sintaks

PREDICT  
(  
  MODEL = @model | model_literal,  
  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 = @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 )
  }

Argumen

MODEL

Parameter MODEL digunakan untuk menentukan model yang digunakan untuk penilaian atau prediksi. Model ditentukan sebagai variabel atau harfiah atau ekspresi skalar.

PREDICT mendukung model yang dilatih menggunakan paket RevoScaleR dan revoscalepy .

Parameter MODEL digunakan untuk menentukan model yang digunakan untuk penilaian atau prediksi. Model ditentukan sebagai variabel atau harfiah atau ekspresi skalar.

Dalam Azure SQL Managed Instance, PREDICT mendukung model dalam format atau model Open Neural Network Exchange (ONNX) yang dilatih menggunakan paket RevoScaleR dan revoscalepy.

Penting

Dukungan untuk ONNX masuk PREDICT dalam pratinjau di Azure SQL Managed Instance.

Parameter MODEL digunakan untuk menentukan model yang digunakan untuk penilaian atau prediksi. Model ditentukan sebagai variabel atau harfiah atau ekspresi skalar atau subkueri skalar.

Dalam Azure Synapse Analytics, PREDICT mendukung model dalam format Open Neural Network Exchange (ONNX).

DATA

Parameter DATA digunakan untuk menentukan data yang digunakan untuk penilaian atau prediksi. Data ditentukan dalam bentuk sumber tabel dalam kueri. Sumber tabel bisa berupa tabel, alias tabel, alias CTE, tampilan, atau fungsi bernilai tabel.

RUNTIME = ONNX

Penting

Argumen RUNTIME = ONNX hanya tersedia di Azure SQL Edge, Azure Synapse Analytics, dan dalam pratinjau di Azure SQL Managed Instance.

Menunjukkan mesin pembelajaran mesin yang digunakan untuk eksekusi model. Nilai RUNTIME parameter selalu ONNX. Parameter diperlukan untuk Azure SQL Edge dan Azure Synapse Analytics. Pada Azure SQL Managed Instance (dalam Pratinjau), parameter bersifat opsional dan hanya digunakan saat menggunakan model ONNX.

WITH ( <result_set_definition> )

Klausa WITH digunakan untuk menentukan skema output yang dikembalikan oleh PREDICT fungsi.

Selain kolom yang dikembalikan oleh fungsi itu PREDICT sendiri, semua kolom yang merupakan bagian dari input data tersedia untuk digunakan dalam kueri.

Mengembalikan nilai

Tidak ada skema yang telah ditentukan sebelumnya yang tersedia; konten model tidak divalidasi dan nilai kolom yang dikembalikan juga tidak divalidasi.

  • Fungsi PREDICT melewati kolom sebagai input.
  • Fungsi ini PREDICT juga menghasilkan kolom baru, tetapi jumlah kolom dan jenis datanya bergantung pada jenis model yang digunakan untuk prediksi.

Setiap pesan kesalahan yang terkait dengan data, model, atau format kolom dikembalikan oleh fungsi prediksi yang mendasar yang terkait dengan model.

Keterangan

Fungsi PREDICT ini didukung di semua edisi SQL Server 2017 atau yang lebih baru, di Windows dan Linux. Layanan Pembelajaran Mesin tidak perlu diaktifkan untuk menggunakan PREDICT.

Algoritme yang didukung

Model yang Anda gunakan harus dibuat menggunakan salah satu algoritma yang didukung dari paket RevoScaleR atau revoscalepy . Untuk daftar model yang saat ini didukung, lihat Penilaian asli menggunakan fungsi PREDICT T-SQL.

Algoritma yang dapat dikonversi ke format model ONNX didukung.

Algoritma yang dapat dikonversi ke format model ONNX dan model yang telah Anda buat menggunakan salah satu algoritma yang didukung dari paket RevoScaleR atau revoscalepy didukung. Untuk daftar algoritma yang saat ini didukung di RevoScaleR dan revoscalepy, lihat Penilaian asli menggunakan fungsi PREDICT T-SQL.

Izin

Tidak ada izin yang diperlukan untuk PREDICT; namun, pengguna memerlukan EXECUTE izin pada database, dan izin untuk mengkueri data apa pun yang digunakan sebagai input. Pengguna juga harus dapat membaca model dari tabel, jika model telah disimpan dalam tabel.

Contoh

Contoh berikut menunjukkan sintaks untuk memanggil PREDICT.

Menggunakan PREDICT dalam klausa FROM

Contoh ini mereferensikan PREDICT fungsi dalam FROM klausa SELECT pernyataan:

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 yang ditentukan untuk sumber tabel dalam DATA parameter digunakan untuk mereferensikan kolom milik dbo.mytable. Alias p yang ditentukan untuk PREDICT fungsi digunakan untuk mereferensikan kolom yang dikembalikan oleh PREDICT fungsi.

  • Model disimpan sebagai varbinary(max) kolom dalam tabel yang disebut Models. Informasi tambahan seperti ID dan description disimpan dalam tabel untuk mengidentifikasi model.
  • Alias d yang ditentukan untuk sumber tabel dalam DATA parameter digunakan untuk mereferensikan kolom milik dbo.mytable. Nama kolom data input harus cocok dengan nama input untuk model.
  • Alias p yang ditentukan untuk PREDICT fungsi digunakan untuk mereferensikan kolom yang diprediksi yang dikembalikan oleh PREDICT fungsi. Nama kolom harus memiliki nama yang sama dengan nama output untuk model.
  • Semua kolom data input dan kolom yang diprediksi tersedia untuk ditampilkan dalam pernyataan SELECT.

Contoh kueri sebelumnya dapat ditulis ulang untuk membuat tampilan dengan menentukan MODEL sebagai subkueri skalar:

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;

Menggabungkan PREDICT dengan pernyataan INSERT

Kasus penggunaan umum untuk prediksi adalah menghasilkan skor untuk data input, lalu menyisipkan nilai yang diprediksi ke dalam tabel. Contoh berikut mengasumsikan aplikasi panggilan menggunakan prosedur tersimpan untuk menyisipkan baris yang berisi nilai yang diprediksi ke dalam tabel:

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;
  • Hasil disimpan PREDICT dalam tabel yang disebut PredictionResults.
  • Model disimpan sebagai varbinary(max) kolom dalam tabel yang disebut Models. Informasi tambahan seperti ID dan deskripsi dapat disimpan dalam tabel untuk mengidentifikasi model.
  • Alias d yang ditentukan untuk sumber tabel dalam DATA parameter digunakan untuk mereferensikan kolom di dbo.mytable. Nama kolom data input harus cocok dengan nama input untuk model.
  • Alias p yang ditentukan untuk PREDICT fungsi digunakan untuk mereferensikan kolom yang diprediksi yang dikembalikan oleh PREDICT fungsi. Nama kolom harus memiliki nama yang sama dengan nama output untuk model.
  • Semua kolom input dan kolom yang diprediksi tersedia untuk ditampilkan dalam pernyataan SELECT.

Langkah berikutnya

Pelajari selengkapnya tentang konsep terkait dalam artikel berikut: