PREDICT (Transact-SQL)
Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru Azure SQL Database Azure SQL Managed Instance Azure 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 yang ditampilkan.
* SQL Database *
* 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
POLA
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.
Di 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 dalam PREDICT
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.
Di 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 sedang 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.
DENGAN ( <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 tergantung 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 dan model model ONNX 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
klausul 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 disebutModels
. Informasi tambahan sepertiID
dandescription
disimpan dalam tabel untuk mengidentifikasi model. - Alias d yang ditentukan untuk sumber tabel dalam
DATA
parameter digunakan untuk mereferensikan kolom milikdbo.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 olehPREDICT
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 disebutPredictionResults
. - Model disimpan sebagai
varbinary(max)
kolom dalam tabel yang disebutModels
. 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 didbo.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 olehPREDICT
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: