Tutorial ini menunjukkan cara menggunakan penyesuaian hyperparameter pada BigQuery ML dengan menentukan opsi pelatihan NUM_TRIALS
untuk mengaktifkan sekumpulan uji coba pelatihan model.
Dalam tutorial ini, Anda menggunakan tabel contoh tlc_yellow_trips_2018
untuk membuat model yang memprediksi tip perjalanan dengan taksi. Dengan penyesuaian hyperparameter, model ini menunjukkan peningkatan performa sebesar ~40% dalam tujuan penyesuaian hyperparameter R2_SCORE
.
Tujuan
Dalam tutorial ini, Anda akan menggunakan:
- BigQuery ML untuk membuat model regresi linear menggunakan pernyataan
CREATE MODEL
denganNUM_TRIALS
yang disetel ke 20. - Fungsi
ML.TRIAL_INFO
untuk memeriksa ringkasan 20 uji coba - Fungsi
ML.EVALUATE
untuk mengevaluasi model ML - Fungsi
ML.PREDICT
untuk membuat prediksi menggunakan model ML
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
- BigQuery
- BigQuery ML
Untuk mengetahui informasi selengkapnya tentang biaya BigQuery, lihat halaman harga BigQuery.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
- BigQuery secara otomatis diaktifkan dalam project baru.
Untuk mengaktifkan BigQuery dalam project yang sudah ada, buka
Aktifkan API BigQuery.
Langkah pertama: Buat set data pelatihan Anda
Buat set data BigQuery untuk menyimpan model ML Anda:
Di konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, klik nama project Anda.
Klik
View actions > Create dataset.Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
bqml_tutorial
.Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States).
Set data publik disimpan di
US
multi-region. Untuk mempermudah, simpan set data Anda di lokasi yang sama.Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
Langkah kedua: Buat tabel input pelatihan Anda
Pada langkah ini, Anda akan merealisasikan tabel input pelatihan dengan 100 ribu baris.
Lihat skema tabel sumber
tlc_yellow_trips_2018
.Membuat tabel data input pelatihan.
CREATE TABLE `bqml_tutorial.taxi_tip_input` AS SELECT * EXCEPT(tip_amount), tip_amount AS label FROM `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018` WHERE tip_amount IS NOT NULL LIMIT 100000
Langkah ketiga: Buat model Anda
Selanjutnya, buat model regresi linear dengan penyesuaian hyperparameter menggunakan tabel sampel tlc_yellow_trips_2018
di BigQuery. Kueri GoogleSQL berikut digunakan untuk membuat model dengan penyesuaian hyperparameter.
CREATE MODEL `bqml_tutorial.hp_taxi_tip_model` OPTIONS (MODEL_TYPE='LINEAR_REG', NUM_TRIALS=20, MAX_PARALLEL_TRIALS=2) AS SELECT * FROM `bqml_tutorial.taxi_tip_input`
Detail kueri
Model LINEAR_REG
memiliki dua hyperparameter yang dapat disesuaikan: l1_reg
dan l2_reg
.
Kueri di atas menggunakan ruang penelusuran default. Anda juga dapat menentukan ruang penelusuran secara eksplisit:
OPTIONS (... L1_REG=HPARAM_RANGE(0, 20), L2_REG=HPARAM_CANDIDATES([0, 0.1, 1, 10]))
Selain itu, opsi pelatihan penyesuaian hyperparameter lain juga menggunakan nilai defaultnya:
- HPARAM_TUNING_ALGORITHM:
"VIZIER_DEFAULT"
- HPARAM_TUNING_OBJECTIVES:
["r2_score"]
MAX_PARALLEL_TRIALS
disetel ke 2 untuk mempercepat proses penyesuaian. Dengan 2 uji coba yang berjalan kapan saja, seluruh penyesuaian akan memerlukan waktu sekitar 10 tugas pelatihan serial, bukan 20. Namun, perlu diperhatikan bahwa kedua uji coba serentak tidak dapat memberikan manfaat dari hasil pelatihan satu sama lain.
Menjalankan kueri CREATE MODEL
Untuk menjalankan kueri CREATE MODEL
guna membuat dan melatih model Anda:
Di konsol Google Cloud, klik tombol Compose new query.
Masukkan kueri GoogleSQL di atas di area teks Query editor.
Klik Run.
Kueri membutuhkan waktu sekitar 17 menit untuk menyelesaikannya. Anda dapat melacak progres penyesuaian pada detail eksekusi di bagian Stages:
Langkah keempat: Dapatkan informasi uji coba
Untuk melihat ringkasan semua uji coba termasuk hyperparameter, tujuan, status, dan uji coba yang optimal, Anda dapat menggunakan fungsi ML.TRIAL_INFO
, dan Anda dapat melihat hasilnya di konsol Google Cloud setelah menjalankan SQL.
SELECT * FROM ML.TRIAL_INFO(MODEL `bqml_tutorial.hp_taxi_tip_model`)
Anda dapat menjalankan kueri SQL ini segera setelah satu uji coba selesai. Jika penyesuaian dihentikan di tengah, semua uji coba yang telah selesai akan tetap dapat digunakan.
Langkah kelima: Evaluasi model Anda
Setelah membuat model, Anda bisa mendapatkan metrik evaluasi dari semua uji coba dengan menggunakan fungsi ML.EVALUATE
atau melalui konsol Google Cloud.
Jalankan ML.EVALUATE
SELECT * FROM ML.EVALUATE(MODEL `bqml_tutorial.hp_taxi_tip_model`)
SQL ini mengambil metrik evaluasi untuk semua uji coba yang dihitung dari data TEST. Lihat bagian Pembagian Data untuk melihat perbedaan antara tujuan ML.TRIAL_INFO
dan metrik evaluasi ML.EVALUATE
.
Anda juga dapat mengevaluasi uji coba tertentu dengan menyediakan data Anda sendiri. Harap periksa ML.EVALUATE
untuk mengetahui detail selengkapnya.
Memeriksa metrik evaluasi melalui konsol Google Cloud
Anda juga dapat memeriksa metrik evaluasi dengan memilih tab EVALUATION
.
Langkah keenam: Gunakan model Anda untuk memprediksi tip taksi
Setelah mengevaluasi model, langkah berikutnya adalah menggunakannya untuk memprediksi tip taksi.
Kueri yang digunakan untuk memprediksi tip adalah sebagai berikut:
SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`, ( SELECT * FROM `bqml_tutorial.taxi_tip_input` LIMIT 10))
Detail kueri
Pernyataan SELECT
paling atas mengambil semua kolom termasuk kolom predicted_label
. Kolom ini dihasilkan oleh fungsi ML.PREDICT
.
Saat Anda menggunakan fungsi ML.PREDICT
, nama kolom output untuk model adalah predicted_label_column_name
.
Prediksi dibuat terhadap uji coba optimal secara default. Anda dapat memilih uji coba lainnya dengan menentukan parameter trial_id
.
SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`, ( SELECT * FROM `bqml_tutorial.taxi_tip_input` LIMIT 10), STRUCT(3 AS trial_id))
Lihat ML.PREDICT
untuk mengetahui detail selengkapnya tentang cara menggunakan fungsi inferensi model.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus resource satu per satu.
- Anda dapat menghapus project yang dibuat.
- Atau, Anda dapat menyimpan project dan menghapus set data.
Menghapus set data
Jika project Anda dihapus, semua set data dan semua tabel dalam project akan dihapus. Jika ingin menggunakan kembali project tersebut, Anda dapat menghapus set data yang dibuat dalam tutorial ini:
Jika perlu, buka halaman BigQuery di konsol Google Cloud.
Di panel navigasi, klik set data bqml_tutorial yang telah Anda buat.
Di sisi kanan jendela, klik Delete dataset. Tindakan ini akan menghapus set data, tabel, dan semua data.
Di kotak dialog Delete dataset, konfirmasi perintah hapus dengan mengetikkan nama set data Anda (
bqml_tutorial
), lalu klik Delete.
Menghapus project Anda
Untuk menghapus project:
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
- Untuk mempelajari machine learning lebih lanjut, lihat Kursus singkat machine learning.
- Untuk ringkasan BigQuery ML, lihat Pengantar BigQuery ML.
- Untuk mempelajari konsol Google Cloud lebih lanjut, lihat Menggunakan konsol Google Cloud.