Gunakan pernyataan RDS SQLFlow untuk secara efisien melakukan pelatihan model, prediksi, dan evaluasi. Topik ini menjelaskan spesifikasi sintaksis RDS SQLFlow secara rinci.
Pengenalan
RDS SQLFlow memungkinkan Anda melakukan pelatihan model, prediksi, dan evaluasi tanpa menulis kode Python yang kompleks. RDS SQLFlow secara otomatis mengurai pernyataan tersebut dan mengonversinya menjadi program Python yang setara, sehingga menyederhanakan proses pelatihan model secara signifikan. Sintaksis RDS SQLFlow mencakup berbagai fitur, termasuk:
Sebagai contoh, Anda dapat menggunakan dataset iris untuk melatih algoritma TensorFlow DNNClassifier. Empat kolom pertama dalam dataset mewakili fitur yang menunjukkan bentuk botani dari setiap bunga iris, sedangkan kolom terakhir adalah label yang mewakili subspesies dari setiap bunga iris.
sepal_length | sepal_width | petal_length | petal_width | class |
6.4 | 2.8 | 5.6 | 2.2 | 2 |
5.0 | 2.3 | 3.3 | 1.0 | 1 |
... | ... | ... | ... | ... |
Dengan pernyataan RDS SQLFlow sederhana berikut, Anda dapat dengan mudah melatih model DNNClassifier dengan dua lapisan tersembunyi, masing-masing berisi sepuluh unit tersembunyi. Setelah pelatihan, model akan disimpan ke tabel sqlflow_models.my_dnn_model untuk digunakan dalam prediksi selanjutnya. RDS SQLFlow secara otomatis mengurai pernyataan ini dan mengonversinya menjadi program Python yang setara, sehingga menyederhanakan proses pelatihan model secara signifikan.
SELECT * FROM iris.train
TO TRAIN DNNClassifier
WITH model.hidden_units = [10, 10], model.n_classes = 3, train.epoch= 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;Sintaksis Pelatihan
Pernyataan pelatihan RDS SQLFlow terdiri dari klausa SELECT, TRAIN, COLUMN, LABEL, dan INTO.
SELECT select_expr [, select_expr ...]
FROM table_references
[WHERE kondisi_where]
[LIMIT jumlah_baris]
TO TRAIN model_identifier
[WITH
model_attr_expr [, model_attr_expr ...]
[, train_attr_expr ...]]
COLUMN column_expr [, column_expr ...]
| COLUMN column_expr [, column_expr ...] UNTUK nama_kolom
[COLUMN column_expr [, column_expr ...] UNTUK nama_kolom ...]
[LABEL label_expr]
INTO table_references;Klausa SELECT
Klausa SELECT digunakan untuk mengambil data dari tabel yang ditentukan.
Sintaksis:
SELECT select_expr [, select_expr ...]
FROM table_references
[WHERE kondisi_where]
[LIMIT jumlah_baris]Deskripsi parameter:
Parameter | Deskripsi |
select_expr | Kolom data yang akan diambil. Setidaknya satu kolom harus ditentukan. |
table_references | Tabel tempat data diambil. |
where_condition | Ekspresi yang digunakan untuk memfilter baris. |
row_count | Jumlah maksimum baris yang akan diambil. |
Contoh:
Sebagai contoh, untuk melatih model klasifikasi biner pada dataset sampel (iris.train) dengan cepat:
SELECT * FROM iris.latih
WHERE kelas = 0 OR kelas = 1
LIMIT 1000
TO TRAIN ...Klausa TRAIN
Klausa TRAIN digunakan untuk mendeskripsikan jenis model tertentu dan algoritma pelatihannya.
Sintaksis:
TO TRAIN model_identifier
WITH
model_attr_expr [, model_attr_expr ...]
[, train_attr_expr ...]Deskripsi parameter:
Parameter | Deskripsi |
model_identifier | Jenis model, seperti DNNClassifier. Untuk lebih banyak model, lihat Model dan algoritma. |
model_attr_expr | Atribut model, seperti |
train_attr_expr | Atribut pelatihan, seperti |
Contoh:
Sebagai contoh, untuk melatih model DNNClassifier dengan dua lapisan tersembunyi, masing-masing berisi sepuluh unit tersembunyi, dan dengan 10 epoch pelatihan:
SELECT * FROM iris.train
TO TRAIN DNNClassifier
WITH
model.hidden_units = [10, 10],
model.n_classes = 3,
train.epoch = 10
...Klausa COLUMN
Klausa COLUMN digunakan untuk menentukan nama bidang fitur pelatihan dan metode pra-pemrosesan opsionalnya.
Sintaksis:
COLUMN column_expr [, column_expr ...]
| COLUMN column_expr [, column_expr ...] FOR column_name
[COLUMN column_expr [, column_expr ...] FOR column_name ...]Deskripsi parameter:
Parameter | Deskripsi |
column_expr | Nama bidang dan metode pra-pemrosesan untuk kontennya, seperti |
column_name | Nama kolom fitur untuk input model. |
Contoh:
Sebagai contoh, untuk menggunakan bidang sepal_length, sepal_width, petal_length, dan petal_width sebagai fitur:
SELECT * FROM iris.train
TO TRAIN DNNClassifier WITH
model.hidden_units = [10, 10],
model.n_classes = 3,
train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
...LABEL klausa
Klausa LABEL digunakan untuk menunjukkan nama bidang label pelatihan dan metode pra-pemrosesan opsionalnya.
Sintaksis:
LABEL label_exprDeskripsi parameter:
Parameter | Deskripsi |
label_expr | Nama bidang dan metode pra-pemrosesan untuk kontennya, seperti |
Contoh:
SELECT * FROM iris.train
TO TRAIN DNNClassifier WITH
model.hidden_units = [10, 10],
model.n_classes = 3,
train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
...INTO klausa
Klausa INTO digunakan untuk menentukan nama tabel tempat model yang telah dilatih akan disimpan.
Sintaksis:
Deskripsi parameter:
Parameter | Deskripsi |
table_references | Nama tabel tempat model yang telah dilatih akan disimpan. |
Contoh:
SELECT * FROM iris.train
TO TRAIN DNNClassifier WITH
model.hidden_units = [10, 10],
model.n_classes = 3,
train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;Sintaksis Prediksi
Pernyataan prediksi RDS SQLFlow terdiri dari klausa SELECT, PREDICT, dan USING.
SELECT select_expr [, select_expr ...]
FROM table_references
[WHERE where_condition]
[LIMIT row_count]
TO PREDICT result_table_reference
[WITH
attr_expr [, attr_expr ...]]
USING model_table_reference;Struktur data klausa SELECT sebelum TO PREDICT harus konsisten dengan struktur data yang digunakan dalam operasi TO TRAIN dalam sintaksis pelatihan untuk memastikan bahwa struktur data yang digunakan dalam proses prediksi dan penjelasan sesuai dengan struktur data yang digunakan selama fase pelatihan.
Klausa PREDICT dan USING
PREDICT digunakan untuk mendeskripsikan tabel tempat hasil prediksi akan ditulis, USING digunakan untuk mendeskripsikan tabel tempat model dimuat, dan WITH digunakan untuk mendeskripsikan konfigurasi yang diperlukan untuk prediksi.
Sintaksis:
TO PREDICT result_table_reference
[WITH
attr_expr [, attr_expr ...]]
USING model_table_reference;Deskripsi parameter:
Parameter | Deskripsi |
result_table_reference | Tabel yang menyimpan hasil prediksi. |
attr_expr | Atribut konfigurasi, seperti |
model_table_reference | Tabel tempat model dimuat untuk prediksi. |
Contoh:
Sebagai contoh, untuk menggunakan model yang disimpan dalam tabel sqlflow.my_dnn_model dan menyimpan hasil prediksi ke kolom dalam tabel iris.predict:
SELECT * FROM iris.train
TO PREDICT iris.predict.class
USING sqlflow.my_dnn_model;Sintaksis Penjelasan
Pernyataan penjelasan RDS SQLFlow terdiri dari serangkaian pernyataan SELECT, EXPLAIN, dan USING.
SELECT select_expr [, select_expr ...]
FROM table_references
[WHERE where_condition]
[LIMIT row_count]
TO EXPLAIN model_table_reference
[WITH
attr_expr [, attr_expr ...]]
[USING explainer];Struktur data klausa SELECT yang mendahului TO EXPLAIN harus konsisten dengan struktur data yang digunakan oleh operasi TO TRAIN dalam sintaksis pelatihan.
EXPLAIN dan USING klausa
Klausa EXPLAIN digunakan untuk menentukan tabel tempat model dimuat dan atribut konfigurasi yang diperlukan. Klausa USING digunakan untuk menentukan penjelas.
Sintaksis:
TO EXPLAIN model_table_reference
[WITH
attr_expr [, attr_expr ...]]
USING explainer;Deskripsi parameter:
Parameter | Deskripsi |
model_table_reference | Tabel tempat model dimuat untuk prediksi. |
attr_expr | Atribut konfigurasi, seperti |
explainer | Jenis penjelas, seperti |
Contoh:
Sebagai contoh, untuk menggunakan TreeExplainer untuk menjelaskan model yang disimpan di sqlflow_models.my_xgb_regression_model dan memplot hasil analisis dalam urutan terurut:
SELECT * FROM boston.train
TO EXPLAIN sqlflow_models.my_xgb_regression_model
WITH
summary.sort=True
USING TreeExplainer;Sintaksis Evaluasi
Pernyataan evaluasi RDS SQLFlow terdiri dari pernyataan SELECT, EVALUATE, dan INTO.
SELECT select_expr [, select_expr ...]
FROM table_references
[WHERE where_condition]
[LIMIT row_count]
TO EVALUATE model_table_reference
[WITH
attr_expr [, attr_expr ...]]
LABEL class
INTO evaluate_result_table;Struktur data klausa
SELECTsebelumTO EVALUATEharus konsisten dengan struktur data yang digunakan dalam Sintaksis pelatihanTO TRAINoperasi.Menurut teori pembelajaran mesin, tidak tepat menggunakan dataset pelatihan untuk evaluasi, karena ini mungkin menghasilkan hasil evaluasi yang terlalu ideal.
Klausa EVALUATE dan INTO
Klausa TO EVALUATE digunakan untuk menentukan model yang akan dievaluasi dan metrik mana yang akan digunakan untuk evaluasi. Klausa INTO digunakan untuk menentukan tabel tempat hasil evaluasi akan disimpan.
Sintaksis:
TO EVALUATE model_table_reference
[WITH
attr_expr [, attr_expr ...]]
INTO evaluate_result_table;Deskripsi parameter:
Parameter | Deskripsi |
model_table_reference | Model yang akan dievaluasi, hasil evaluasinya mewakili performa model saat memprediksi data baru. |
attr_expr | Atribut untuk evaluasi. Anda dapat menentukan metrik mana yang akan dikeluarkan ke tabel hasil dengan mengatur |
evaluate_result_table | Tabel yang menyimpan hasil evaluasi. |
Contoh:
SELECT * FROM iris.test
TO EVALUATE sqlflow_models.my_dnn_model
WITH validation.metrics = Accuracy
LABEL class
INTO sqlflow_models.evaluate_result_table;Sintaksis Optimasi
RDS SQLFlow menggunakan klausa TO MAXIMIZE dan TO MINIMIZE untuk mendeskripsikan dan menyelesaikan masalah pemrograman matematika.
Sintaksis:
SELECT select_expr [, select_expr ...]
FROM table_references
[WHERE where_condition]
[LIMIT row_count]
TO MAXIMIZE|MINIMIZE
objective_expr
CONSTRAINT
constraint_expr [GROUP BY column_name]
[, constraint_expr [GROUP BY column_name]...]
WITH
variables="variable_value(column_name, ...)"
var_type="Integers|Reals|Binary|NonNegativeIntegers|..."
[USING solver_name]
INTO result_table_name;Contoh:
SELECT c1, c2, c3 FROM my_db.my_table
TO MAXIMIZE SUM(x * c1)
CONSTRAINT
SUM(x) <= c2 GROUP BY c1
x <= 3
WITH
variables="x(c3)",
var_type="NonNegativeIntegers"
USING glpk
INTO my_db.my_result_table;
Deskripsi parameter:
Parameter | Deskripsi |
TO MAXIMIZE |
|
CONSTRAINT |
|
WITH |
|
USING |
|
INTO |
|