Tutorial ini mengajarkan cara menggunakan model deret waktu univariat untuk memperkirakan nilai mendatang untuk kolom tertentu berdasarkan nilai historis untuk kolom tersebut.
Tutorial ini memperkirakan satu deret waktu. Nilai perkiraan dihitung sekali untuk setiap titik waktu dalam data input.
Tutorial ini menggunakan data dari
tabel contoh bigquery-public-data.google_analytics_sample.ga_sessions
publik. Tabel ini berisi data e-commerce dengan obfuscation dari Google Merchandise Store.
Tujuan
Tutorial ini memandu Anda menyelesaikan tugas-tugas berikut:
- Membuat model deret waktu untuk memperkirakan traffic situs menggunakan
pernyataan
CREATE MODEL
. - Mengevaluasi informasi autoregressive integrated moving average (ARIMA)
dalam model menggunakan
fungsi
ML.ARIMA_EVALUATE
. - Memeriksa koefisien model menggunakan
fungsi
ML.ARIMA_COEFFICIENTS
. - Mengambil informasi perkiraan traffic situs dari model menggunakan
fungsi
ML.FORECAST
. - Mengambil komponen deret waktu, seperti tren musiman dan tren,
menggunakan
fungsi
ML.EXPLAIN_FORECAST
. Anda dapat memeriksa komponen deret waktu ini untuk menjelaskan nilai yang diprediksi.
Biaya
Tutorial ini menggunakan komponen Google Cloudyang dapat ditagih, termasuk:
- BigQuery
- BigQuery ML
Untuk informasi selengkapnya tentang biaya BigQuery, lihat halaman harga BigQuery.
Untuk informasi selengkapnya tentang biaya BigQuery ML, lihat harga BigQuery ML.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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
Enable the BigQuery API.
Izin yang Diperlukan
Untuk membuat set data, Anda memerlukan izin IAM
bigquery.datasets.create
.Untuk membuat model, Anda memerlukan izin berikut:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
Untuk menjalankan inferensi, Anda memerlukan izin berikut:
bigquery.models.getData
bigquery.jobs.create
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Pengantar IAM.
Membuat set data
Buat set data BigQuery untuk menyimpan model ML Anda.
Konsol
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.
bq
Untuk membuat set data baru, gunakan perintah bq mk
dengan flag --location
. Untuk daftar lengkap parameter yang mungkin, lihat
referensi
perintah bq mk --dataset
.
Buat set data bernama
bqml_tutorial
dengan lokasi data ditetapkan keUS
dan deskripsiBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Perintah ini menggunakan pintasan
-d
, bukan flag--dataset
. Jika Anda menghapus-d
dan--dataset
, perintah defaultnya adalah membuat set data.Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Memvisualisasikan data input
Sebelum membuat model, Anda dapat memvisualisasikan data deret waktu input secara opsional untuk mendapatkan gambaran distribusi. Anda dapat melakukannya menggunakan Looker Studio.
Ikuti langkah-langkah berikut untuk memvisualisasikan data deret waktu:
SQL
Dalam kueri GoogleSQL berikut, pernyataan SELECT
mengurai kolom date
dari tabel input menjadi jenis TIMESTAMP
dan mengganti namanya menjadi parsed_date
, serta menggunakan klausa SUM(...)
dan klausa GROUP BY date
untuk membuat nilai totals.visits
harian.
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan klik Jalankan:
SELECT PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date, SUM(totals.visits) AS total_visits FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` GROUP BY date;
Setelah kueri selesai, klik Explore data > Explore with Looker Studio. Looker Studio akan terbuka di tab baru. Selesaikan langkah-langkah berikut di tab baru.
Di Looker Studio, klik Sisipkan > Diagram deret waktu.
Di panel Chart, pilih tab Setup.
Di bagian Metric, tambahkan kolom total_visits, dan hapus metrik Record Count default. Diagram yang dihasilkan akan terlihat seperti berikut:
Dengan melihat diagram, Anda dapat melihat bahwa deret waktu input memiliki pola musiman mingguan.
DataFrame BigQuery
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya mirip dengan berikut ini:
Membuat model deret waktu
Buat model deret waktu untuk memperkirakan total kunjungan situs seperti yang diwakili oleh kolom totals.visits
, dan latih model tersebut pada data Google Analytics 360.
SQL
Dalam kueri berikut, klausa
OPTIONS(model_type='ARIMA_PLUS', time_series_timestamp_col='date', ...)
menunjukkan bahwa Anda membuat
model deret waktu
berbasis ARIMA. Opsi auto_arima
dalam pernyataan CREATE MODEL
secara default ditetapkan ke TRUE
, sehingga algoritma auto.ARIMA
akan otomatis menyesuaikan hyperparameter dalam model. Algoritma ini
cocok dengan beberapa model kandidat dan memilih model terbaik, yaitu model
dengan
kriteria informasi Akaike (AIC) terendah.
Opsi data_frequency
dari pernyataan CREATE MODEL
secara default ditetapkan ke AUTO_FREQUENCY
, sehingga proses pelatihan akan otomatis menyimpulkan frekuensi data dari deret waktu input. Opsi decompose_time_series
dari pernyataan CREATE MODEL
secara default ditetapkan ke TRUE
, sehingga informasi tentang data deret waktu ditampilkan saat Anda mengevaluasi model di langkah berikutnya.
Ikuti langkah-langkah berikut untuk membuat model:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan klik Jalankan:
CREATE OR REPLACE MODEL `bqml_tutorial.ga_arima_model` OPTIONS (model_type = 'ARIMA_PLUS', time_series_timestamp_col = 'parsed_date', time_series_data_col = 'total_visits', auto_arima = TRUE, data_frequency = 'AUTO_FREQUENCY', decompose_time_series = TRUE ) AS SELECT PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date, SUM(totals.visits) AS total_visits FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` GROUP BY date;
Kueri memerlukan waktu sekitar 4 detik untuk diselesaikan, setelah itu model
ga_arima_model
akan muncul di panel Explorer. Karena kueri tersebut menggunakan pernyataanCREATE MODEL
untuk membuat model, Anda tidak akan melihat hasil kueri.
DataFrame BigQuery
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Mengevaluasi model kandidat
SQL
Evaluasi model deret waktu menggunakan fungsi
ML.ARIMA_EVALUATE
. Fungsi ML.ARIMA_EVALUATE
menampilkan metrik evaluasi
semua model kandidat yang dievaluasi selama proses penyesuaian
hyperparameter otomatis.
Ikuti langkah-langkah berikut untuk mengevaluasi model:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan klik Jalankan:
SELECT * FROM ML.ARIMA_EVALUATE(MODEL `bqml_tutorial.ga_arima_model`);
Hasilnya akan terlihat seperti berikut:
DataFrame BigQuery
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Kolom output non_seasonal_p
, non_seasonal_d
, non_seasonal_q
, dan has_drift
menentukan model ARIMA dalam pipeline pelatihan. Kolom
output log_likelihood
, AIC
, dan variance
relevan dengan proses penyesuaian
model ARIMA.
Algoritma auto.ARIMA
menggunakan pengujian KPSS untuk menentukan nilai terbaik untuk non_seasonal_d
, yang dalam hal ini adalah 1
. Jika non_seasonal_d
adalah 1
,
algoritma auto.ARIMA
akan melatih 42 model ARIMA kandidat yang berbeda secara paralel.
Dalam contoh ini, ke-42 model kandidat sudah valid, sehingga output berisi 42
baris, satu untuk setiap model ARIMA kandidat; jika beberapa model
tidak valid, model tersebut akan dikecualikan dari output. Model kandidat ini
ditampilkan dalam urutan menaik oleh AIC. Model di baris pertama memiliki AIC
terendah, dan dianggap sebagai model terbaik. Model terbaik disimpan sebagai model akhir dan digunakan saat Anda memanggil fungsi seperti ML.FORECAST
pada model
Kolom seasonal_periods
berisi informasi tentang pola musiman
yang diidentifikasi dalam data deret waktu. Hal ini tidak ada hubungannya dengan pemodelan ARIMA
karena memiliki nilai yang sama di semua baris output. Model ini melaporkan
pola mingguan, yang sesuai dengan hasil yang Anda lihat jika memilih untuk
memvisualisasikan data input.
Kolom has_holiday_effect
, has_spikes_and_dips
, dan has_step_changes
hanya diisi saat decompose_time_series=TRUE
. Kolom ini juga mencerminkan
informasi tentang data deret waktu input, dan tidak terkait dengan pemodelan
ARIMA. Kolom ini juga memiliki nilai yang sama di semua baris output.
Kolom error_message
menampilkan error yang terjadi selama
proses penyesuaian auto.ARIMA
. Salah satu kemungkinan penyebab error adalah saat kolom non_seasonal_p
, non_seasonal_d
, non_seasonal_q
, dan has_drift
yang dipilih tidak dapat menstabilkan deret waktu. Untuk mengambil pesan error dari semua model kandidat, tetapkan opsi show_all_candidate_models
ke TRUE
saat Anda membuat model.
Untuk mengetahui informasi selengkapnya tentang kolom output, lihat
fungsi ML.ARIMA_EVALUATE
.
Memeriksa koefisien model
SQL
Periksa koefisien model deret waktu menggunakan
fungsi ML.ARIMA_COEFFICIENTS
.
Ikuti langkah-langkah berikut untuk mengambil koefisien model:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan klik Jalankan:
SELECT * FROM ML.ARIMA_COEFFICIENTS(MODEL `bqml_tutorial.ga_arima_model`);
Kolom output ar_coefficients
menunjukkan koefisien model
bagian autoregresif (AR) dari model ARIMA. Demikian pula, kolom output
ma_coefficients
menunjukkan koefisien model bagian rata-rata bergerak (MA) dari
model ARIMA. Kedua kolom ini berisi nilai array, yang panjangnya
sama dengan non_seasonal_p
dan non_seasonal_q
secara berurutan. Anda melihat dalam
output fungsi ML.ARIMA_EVALUATE
bahwa model terbaik memiliki
nilai non_seasonal_p
sebesar 2
dan nilai non_seasonal_q
sebesar 3
. Oleh karena itu, dalam
output ML.ARIMA_COEFFICIENTS
, nilai ar_coefficients
adalah array
2 elemen dan nilai ma_coefficients
adalah array 3 elemen. Nilai
intercept_or_drift
adalah istilah konstan dalam model ARIMA.
Untuk informasi selengkapnya tentang kolom output, lihat
fungsi ML.ARIMA_COEFFICIENTS
.
DataFrame BigQuery
Periksa koefisien model deret waktu menggunakan fungsi coef_
.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Kolom output ar_coefficients
menunjukkan koefisien model
bagian autoregresif (AR) dari model ARIMA. Demikian pula, kolom output
ma_coefficients
menunjukkan koefisien model bagian rata-rata bergerak (MA) dari
model ARIMA. Kedua kolom ini berisi nilai array, yang panjangnya
sama dengan non_seasonal_p
dan non_seasonal_q
secara berurutan.
Menggunakan model untuk memperkirakan data
SQL
Perkiraan nilai deret waktu mendatang menggunakan fungsi
ML.FORECAST
.
Dalam kueri GoogleSQL berikut, klausa STRUCT(30 AS horizon, 0.8 AS confidence_level)
menunjukkan bahwa kueri memperkirakan 30 titik waktu di masa mendatang, dan menghasilkan interval prediksi dengan tingkat keyakinan 80%.
Ikuti langkah-langkah berikut untuk memperkirakan data dengan model:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan klik Jalankan:
SELECT * FROM ML.FORECAST(MODEL `bqml_tutorial.ga_arima_model`, STRUCT(30 AS horizon, 0.8 AS confidence_level));
Hasilnya akan terlihat seperti berikut:
DataFrame BigQuery
Perkiraan nilai deret waktu mendatang menggunakan fungsi predict
.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Baris output diurutkan sesuai dengan kronologi berdasarkan
nilai kolom forecast_timestamp
. Dalam perkiraan deret waktu, interval
prediksi, seperti yang diwakili oleh nilai kolom prediction_interval_lower_bound
dan
prediction_interval_upper_bound
, sama pentingnya dengan
nilai kolom forecast_value
. Nilai forecast_value
adalah titik tengah
interval prediksi. Interval prediksi bergantung pada
nilai kolom standard_error
dan confidence_level
.
Untuk informasi selengkapnya tentang kolom output, lihat
fungsi ML.FORECAST
.
Menjelaskan hasil perkiraan
Anda bisa mendapatkan metrik keterjelasan selain data perkiraan menggunakan
fungsi ML.EXPLAIN_FORECAST
. Fungsi ML.EXPLAIN_FORECAST
memperkirakan
nilai deret waktu mendatang dan juga menampilkan semua komponen terpisah dari
deret waktu.
Serupa dengan fungsi ML.FORECAST
, klausa STRUCT(30 AS horizon, 0.8 AS confidence_level)
yang digunakan dalam fungsi ML.EXPLAIN_FORECAST
menunjukkan bahwa kueri memperkirakan 30 titik waktu di masa mendatang dan menghasilkan interval prediksi dengan keyakinan 80%.
Ikuti langkah-langkah berikut untuk menjelaskan hasil model:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan klik Jalankan:
SELECT * FROM ML.EXPLAIN_FORECAST(MODEL `bqml_tutorial.ga_arima_model`, STRUCT(30 AS horizon, 0.8 AS confidence_level));
Hasilnya akan terlihat seperti berikut:
Baris output diurutkan secara kronologis berdasarkan nilai kolom
time_series_timestamp
.Untuk informasi selengkapnya tentang kolom output, lihat fungsi
ML.EXPLAIN_FORECAST
.Jika ingin memvisualisasikan hasilnya, Anda dapat menggunakan Looker Studio seperti yang dijelaskan di bagian Memvisualisasikan data input untuk membuat diagram, menggunakan kolom berikut sebagai metrik:
time_series_data
prediction_interval_lower_bound
prediction_interval_upper_bound
trend
seasonal_period_weekly
step_changes
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 navigasi, klik set data bqml_tutorial yang telah Anda buat.
Klik Delete dataset di sisi kanan jendela. 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:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Langkah berikutnya
- Pelajari cara membuat perkiraan deret waktu tunggal dengan model multi-variasi
- Pelajari cara membuat perkiraan beberapa deret waktu dengan model univariat
- Pelajari cara menskalakan model univariat saat memperkirakan beberapa deret waktu di banyak baris.
- Pelajari cara membuat perkiraan hierarkis beberapa deret waktu dengan model univariat
- Untuk ringkasan BigQuery ML, lihat Pengantar AI dan ML di BigQuery.