GSP229

Ringkasan
BigQuery adalah database analisis Google yang terkelola sepenuhnya, tanpa pengoperasian (NoOps), dan hemat biaya. Dengan BigQuery, Anda dapat mengkueri data berskala terabyte tanpa perlu mengelola infrastruktur atau memiliki administrator database. BigQuery menggunakan SQL dan memanfaatkan model bayar sesuai penggunaan. Dengan BigQuery, Anda dapat berfokus pada analisis data untuk menemukan insight yang bermakna.
BigQuery ML adalah fitur dalam BigQuery yang dapat digunakan oleh analis data untuk membuat, melatih, mengevaluasi, dan memprediksi menggunakan model machine learning hanya dengan sedikit coding.
Di lab ini, Anda akan menggunakan set data e-commerce khusus yang memiliki jutaan kumpulan data Google Analytics untuk Google Merchandise Store, yang dimuat ke dalam BigQuery. Anda menggunakan data ini untuk membuat model klasifikasi (regresi logistik) di BigQuery ML yang memprediksi kebiasaan pelanggan melakukan pembelian.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Menggunakan BigQuery untuk menemukan set data publik
- Membuat kueri dan mempelajari set data e-commerce
- Membuat set data pelatihan dan evaluasi yang akan digunakan untuk melakukan prediksi batch
- Membuat model klasifikasi (regresi logistik) di BigQuery ML
- Mengevaluasi dan meningkatkan performa model machine learning Anda
- Memprediksi dan memberi peringkat probabilitas terkait kemungkinan pembelian yang akan dilakukan oleh pengunjung
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Membuka konsol BigQuery
- Di Google Cloud Console, pilih Navigation menu > BigQuery.
Kotak pesan Welcome to BigQuery in the Cloud Console akan terbuka. Kotak pesan ini menyediakan link ke panduan memulai dan catatan rilis.
- Klik Done.
Konsol BigQuery terbuka.
Mengakses set data kursus
- Di Explorer pane, klik + ADD.
Panel Add data
akan terbuka.
-
Klik Star a project by name di bagian Additional sources.
-
Masukkan data-to-insights
, lalu klik Star.

Klik link langsung di bawah untuk melihat project data-to-insights publik:
Definisi kolom untuk set data e-commerce data-to-insights ada di sini. Biarkan link tetap terbuka di tab yang baru sebagai referensi.
Tugas 1. Mempelajari data e-commerce
Skenario: Tim analis data mengekspor log Google Analytics untuk situs e-commerce ke BigQuery, dan membuat tabel baru yang berisi semua data mentah sesi pengunjung e-commerce untuk Anda pelajari. Dengan menggunakan data ini, Anda akan mencoba menjawab beberapa pertanyaan.
Pertanyaan: Dari total pengunjung yang mengunjungi situs kita, berapa % yang melakukan pembelian?
- Salin dan tempel kueri berikut ke dalam Editor BigQuery:
#standardSQL
WITH visitors AS(
SELECT
COUNT(DISTINCT fullVisitorId) AS total_visitors
FROM `data-to-insights.ecommerce.web_analytics`
),
purchasers AS(
SELECT
COUNT(DISTINCT fullVisitorId) AS total_purchasers
FROM `data-to-insights.ecommerce.web_analytics`
WHERE totals.transactions IS NOT NULL
)
SELECT
total_visitors,
total_purchasers,
total_purchasers / total_visitors AS conversion_rate
FROM visitors, purchasers
- Klik Run.
Hasilnya: 2,69%
Pertanyaan: Apa saja 5 produk penjualan teratas?
- Hapus kueri sebelumnya, lalu tambahkan kueri berikut di Editor:
SELECT
p.v2ProductName,
p.v2ProductCategory,
SUM(p.productQuantity) AS units_sold,
ROUND(SUM(p.localProductRevenue/1000000),2) AS revenue
FROM `data-to-insights.ecommerce.web_analytics`,
UNNEST(hits) AS h,
UNNEST(h.product) AS p
GROUP BY 1, 2
ORDER BY revenue DESC
LIMIT 5;
- Klik RUN
Hasilnya:
Baris
|
v2ProductName
|
v2ProductCategory
|
units_sold
|
revenue
|
1
|
Nest® Learning Thermostat 3rd Gen-USA - Stainless Steel
|
Nest-USA
|
17651
|
870976.95
|
2
|
Nest® Cam Outdoor Security Camera - USA
|
Nest-USA
|
16930
|
684034.55
|
3
|
Nest® Cam Indoor Security Camera - USA
|
Nest-USA
|
14155
|
548104.47
|
4
|
Nest® Protect Smoke + CO White Wired Alarm-USA
|
Nest-USA
|
6394
|
178937.6
|
5
|
Nest® Protect Smoke + CO White Battery Alarm-USA
|
Nest-USA
|
6340
|
178572.4
|
Pertanyaan: Berapa banyak pengunjung yang melakukan pembelian pada kunjungan berikutnya ke situs?
- Hapus kueri sebelumnya, lalu tambahkan kueri berikut di Editor:
# visitors who bought on a return visit (could have bought on first as well
WITH all_visitor_stats AS (
SELECT
fullvisitorid, # 741,721 unique visitors
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM `data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid
)
SELECT
COUNT(DISTINCT fullvisitorid) AS total_visitors,
will_buy_on_return_visit
FROM all_visitor_stats
GROUP BY will_buy_on_return_visit
- Klik Run.
Hasilnya:
Baris
|
total_visitors
|
will_buy_on_return_visit
|
1
|
729848
|
0
|
2
|
11873
|
1
|
Dengan menganalisis hasilnya, Anda dapat melihat bahwa (11.873/741.721) = 1,6% dari total pengunjung akan kembali ke situs dan melakukan pembelian. Hasil ini termasuk sebagian pengunjung yang membeli pada sesi pertama, lalu kembali dan membeli lagi.
Pertanyaan: Apa saja alasan pelanggan e-commerce umum yang hanya melihat-lihat, tetapi tidak melakukan pembelian hingga kunjungan berikutnya?
Jawaban: Meskipun tidak ada jawaban yang benar, salah satu alasan populer adalah mereka melakukan perbandingan belanja antara berbagai situs e-commerce sebelum akhirnya membuat keputusan pembelian. Hal ini sangat umum terjadi pada barang-barang mewah seperti mobil saat pelanggan mencari informasi dan melakukan perbandingan secara mendalam terlebih dahulu sebelum memutuskan untuk melakukan pembelian. Begitu pula halnya untuk merchandise yang dijual di situs ini, seperti kaos, aksesori, dll.
Dalam dunia online marketing, mengidentifikasi dan memasarkan kepada calon pelanggan berdasarkan karakteristik kunjungan pertama akan meningkatkan rasio konversi dan mengurangi kunjungan ke situs-situs pesaing.
Tugas 2. Mengidentifikasi tujuan
Sekarang Anda akan membuat model Machine Learning di BigQuery untuk memprediksi apakah pengguna baru akan melakukan pembelian di masa mendatang atau tidak. Mengidentifikasi pengguna bernilai tinggi ini dapat membantu tim pemasaran menarget calon pelanggan dengan promosi khusus dan kampanye iklan guna memastikan terjadinya konversi saat mereka melakukan perbandingan belanja di antara kunjungan ke situs e-commerce Anda.
Tugas 3. Memilih fitur dan membuat set data pelatihan
Google Analytics menangkap berbagai macam dimensi dan pengukuran terkait kunjungan pengguna di situs e-commerce ini. Jelajahi daftar lengkap kolom dalam dokumentasi skema BigQuery Export [UA], lalu lihat pratinjau set data demo untuk menemukan fitur bermanfaat yang akan membantu model machine learning memahami hubungan antara data terkait pengunjung yang baru pertama kali mengunjungi situs Anda, serta apakah mereka akan kembali lagi dan melakukan pembelian atau tidak.
Tim Anda memutuskan untuk menguji apakah kedua kolom berikut adalah input yang baik untuk model klasifikasi Anda:
-
totals.bounces
(apakah pengunjung langsung meninggalkan situs)
-
totals.timeOnSite
(berapa lama pengunjung berada di situs kita)
Pertanyaan: Apa saja risikonya jika hanya menggunakan dua kolom di atas?
Jawaban: Kualitas machine learning bergantung pada keakuratan data yang digunakan untuk melatihnya. Jika tidak tersedia cukup informasi bagi model untuk menentukan dan mempelajari hubungan antara fitur input dan label (dalam hal ini, apakah pengunjung melakukan pembelian di masa mendatang atau tidak), model yang Anda miliki tidak akan akurat. Meskipun melatih model pada dua kolom ini adalah langkah awal, Anda akan memahami apakah keduanya cukup baik atau tidak untuk menghasilkan model yang akurat.
- Di Editor BigQuery, jalankan kueri berikut:
SELECT
* EXCEPT(fullVisitorId)
FROM
# features
(SELECT
fullVisitorId,
IFNULL(totals.bounces, 0) AS bounces,
IFNULL(totals.timeOnSite, 0) AS time_on_site
FROM
`data-to-insights.ecommerce.web_analytics`
WHERE
totals.newVisits = 1)
JOIN
(SELECT
fullvisitorid,
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM
`data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid)
USING (fullVisitorId)
ORDER BY time_on_site DESC
LIMIT 10;
Hasil:
Baris
|
bounces
|
time_on_site
|
will_buy_on_return_visit
|
1
|
0
|
15047
|
0
|
2
|
0
|
12136
|
0
|
3
|
0
|
11201
|
0
|
4
|
0
|
10046
|
0
|
5
|
0
|
9974
|
0
|
6
|
0
|
9564
|
0
|
7
|
0
|
9520
|
0
|
8
|
0
|
9275
|
1
|
9
|
0
|
9138
|
0
|
10
|
0
|
8872
|
0
|
Pertanyaan: Kolom mana yang merupakan fitur input dan label?
Jawaban: Inputnya adalah bounces dan time_on_site. Labelnya adalah will_buy_on_return_visit.
Pertanyaan: Dua kolom apa saja yang diketahui setelah sesi pertama pengunjung?
Jawaban: bounces dan time_on_site diketahui setelah sesi pertama pengunjung.
Pertanyaan: Kolom mana yang nilainya tidak diketahui hingga nanti di masa mendatang?
Jawaban: will_buy_on_return_visit tidak diketahui setelah kunjungan pertama. Sekali lagi, Anda memprediksi sebagian pengguna yang kembali ke situs dan melakukan pembelian. Karena tidak mengetahui masa mendatang pada saat prediksi, Anda tidak dapat mengatakan dengan pasti apakah pengunjung baru akan kembali dan melakukan pembelian atau tidak. Nilai dari membangun model ML adalah mendapatkan probabilitas pembelian di masa mendatang berdasarkan data yang diperoleh dari sesi kunjungan pertama mereka.
Pertanyaan: Dengan melihat hasil data di awal, apakah time_on_site dan bounces akan menjadi indikator yang baik terkait apakah pengguna akan kembali dan melakukan pembelian atau tidak?
Jawaban: Sering kali terlalu dini untuk menyimpulkan sebelum melatih dan mengevaluasi model, tetapi secara sekilas dari 10 besar time_on_site
, hanya 1 pelanggan yang kembali ke situs dan melakukan pembelian, dan hal ini tidak terlalu menjanjikan. Mari kita lihat seberapa baik model ini bekerja.
Tugas 4. Membuat set data BigQuery untuk menyimpan model
Selanjutnya, buatlah set data BigQuery baru yang juga akan menyimpan model ML Anda.
- Pada panel kiri, di bagian Explorer, klik ikon View actions di samping nama project (diawali dengan
qwiklabs-gcp-...
), lalu klik Create dataset.

- Di dalam dialog Create dataset:
- Untuk Dataset ID, ketik "ecommerce".
- Biarkan semua nilai lainnya dalam setelan default.
- Klik Create dataset.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat set data baru
Tugas 5. Memilih jenis model BigQuery ML dan menentukan opsi
Setelah memilih fitur awal, sekarang Anda siap untuk membuat model ML pertama Anda di BigQuery.
Ada dua jenis model yang dapat dipilih:
Model
|
Jenis Model
|
Jenis Data Label
|
Contoh
|
Forecasting
|
linear_reg
|
Nilai numerik (biasanya berupa bilangan bulat atau floating point)
|
Memperkirakan angka penjualan untuk tahun berikutnya berdasarkan data historis penjualan.
|
Classification
|
logistic_reg
|
0 atau 1 untuk klasifikasi biner
|
Mengklasifikasikan email sebagai spam atau bukan spam berdasarkan konteksnya.
|
Catatan: Ada banyak jenis model tambahan yang digunakan dalam Machine Learning (seperti Jaringan Neural dan pohon keputusan) dan tersedia dengan library seperti TensorFlow. Pada saat tulisan ini dibuat, BigQuery ML mendukung dua model seperti yang tercantum di atas.
Jenis model mana yang sebaiknya Anda pilih?
Karena Anda membagi pengunjung menjadi “akan membeli di masa mendatang” atau “tidak akan membeli di masa mendatang”, gunakan logistic_reg
dalam model klasifikasi.
Kueri berikut membuat model dan menentukan opsi model.
- Jalankan kueri ini untuk melatih model Anda:
CREATE OR REPLACE MODEL `ecommerce.classification_model`
OPTIONS
(
model_type='logistic_reg',
input_label_cols = ['will_buy_on_return_visit']
)
AS
#standardSQL
SELECT
* EXCEPT(fullVisitorId)
FROM
# features
(SELECT
fullVisitorId,
IFNULL(totals.bounces, 0) AS bounces,
IFNULL(totals.timeOnSite, 0) AS time_on_site
FROM
`data-to-insights.ecommerce.web_analytics`
WHERE
totals.newVisits = 1
AND date BETWEEN '20160801' AND '20170430') # train on first 9 months
JOIN
(SELECT
fullvisitorid,
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM
`data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid)
USING (fullVisitorId)
;
- Tunggu sampai model tersebut selesai dilatih (5-10 menit).
Catatan: Anda tidak dapat memasukkan semua data yang tersedia ke dalam model selama pelatihan karena Anda perlu menyimpan beberapa titik data yang tidak terlihat untuk evaluasi dan pengujian model. Untuk melakukannya, tambahkan kondisi klausa WHERE yang digunakan untuk memfilter dan melatih data sesi hanya pada 9 bulan pertama dalam set data 12 bulan Anda.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat model dan menentukan opsi model
Setelah model dilatih, Anda akan melihat pesan yang bertuliskan “This statement created a new model named qwiklabs-gcp-xxxxxxxxx:ecommerce.classification_model".
-
Klik Go to model.
-
Lihat ke dalam set data e-commerce dan pastikan classification_model sekarang muncul.

Selanjutnya, Anda akan mengevaluasi performa model terhadap data evaluasi baru yang belum pernah dilihat sebelumnya.
Tugas 6. Mengevaluasi performa model klasifikasi
Memilih kriteria performa
Untuk masalah klasifikasi di ML, Anda disarankan untuk meminimalkan Rasio Positif Palsu (memprediksi pengguna akan kembali dan melakukan pembelian, tetapi ternyata tidak) dan memaksimalkan Rasio Positif Benar (memprediksi pengguna akan kembali dan melakukan pembelian, dan mereka memang melakukannya).
Hubungan ini divisualisasikan dengan kurva KOP (Karakteristik Operasi Penerima) seperti yang ditunjukkan di sini, tempat Anda mencoba memaksimalkan area di bawah kurva atau ABK:

Di BigQuery ML, roc_auc hanyalah sebuah kolom yang dapat dikueri ketika mengevaluasi model ML terlatih.
- Setelah pelatihan selesai, jalankan kueri ini untuk mengevaluasi seberapa baik performa model dengan menggunakan
ML.EVALUATE
:
SELECT
roc_auc,
CASE
WHEN roc_auc > .9 THEN 'good'
WHEN roc_auc > .8 THEN 'fair'
WHEN roc_auc > .7 THEN 'decent'
WHEN roc_auc > .6 THEN 'not great'
ELSE 'poor' END AS model_quality
FROM
ML.EVALUATE(MODEL ecommerce.classification_model, (
SELECT
* EXCEPT(fullVisitorId)
FROM
# features
(SELECT
fullVisitorId,
IFNULL(totals.bounces, 0) AS bounces,
IFNULL(totals.timeOnSite, 0) AS time_on_site
FROM
`data-to-insights.ecommerce.web_analytics`
WHERE
totals.newVisits = 1
AND date BETWEEN '20170501' AND '20170630') # eval on 2 months
JOIN
(SELECT
fullvisitorid,
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM
`data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid)
USING (fullVisitorId)
));
Anda akan melihat hasil berikut:
Baris
|
roc_auc
|
model_quality
|
1
|
0.7238561438561438
|
decent
|
Setelah mengevaluasi model, Anda akan mendapatkan roc_auc sebesar 0,72, yang menunjukkan bahwa model ini memiliki kemampuan prediksi yang cukup baik, tetapi tidak terlalu baik. Karena tujuannya adalah mendapatkan area di bawah kurva sedekat mungkin dengan 1,0, masih ada ruang untuk perbaikan.
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengevaluasi performa model klasifikasi
Tugas 7. Meningkatkan performa model dengan Rekayasa Fitur
Seperti yang telah dibahas sebelumnya, ada lebih banyak fitur dalam set data yang dapat membantu model lebih memahami hubungan antara sesi pertama pengunjung dan kemungkinan mereka akan melakukan pembelian pada kunjungan berikutnya.
- Tambahkan beberapa fitur baru, dan buat model machine learning kedua yang disebut
classification_model_2
:
- Seberapa banyak pengunjung yang melakukan proses checkout pada kunjungan pertama mereka
- Dari mana pengunjung berasal (sumber traffic: penelusuran organik, situs perujuk, dll.)
- Kategori perangkat (seluler, tablet, desktop)
- Informasi geografis (negara)
- Buat model kedua ini dengan mengklik ikon "+" (kueri SQL):
CREATE OR REPLACE MODEL `ecommerce.classification_model_2`
OPTIONS
(model_type='logistic_reg', input_label_cols = ['will_buy_on_return_visit']) AS
WITH all_visitor_stats AS (
SELECT
fullvisitorid,
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM `data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid
)
# add in new features
SELECT * EXCEPT(unique_session_id) FROM (
SELECT
CONCAT(fullvisitorid, CAST(visitId AS STRING)) AS unique_session_id,
# input_label_cols
will_buy_on_return_visit,
MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress,
# behavior on the site
IFNULL(totals.bounces, 0) AS bounces,
IFNULL(totals.timeOnSite, 0) AS time_on_site,
IFNULL(totals.pageviews, 0) AS pageviews,
# where the visitor came from
trafficSource.source,
trafficSource.medium,
channelGrouping,
# mobile or desktop
device.deviceCategory,
# geographic
IFNULL(geoNetwork.country, "") AS country
FROM `data-to-insights.ecommerce.web_analytics`,
UNNEST(hits) AS h
JOIN all_visitor_stats USING(fullvisitorid)
WHERE 1=1
# only predict for new visits
AND totals.newVisits = 1
AND date BETWEEN '20160801' AND '20170430' # train 9 months
GROUP BY
unique_session_id,
will_buy_on_return_visit,
bounces,
time_on_site,
totals.pageviews,
trafficSource.source,
trafficSource.medium,
channelGrouping,
device.deviceCategory,
country
);
Catatan: Anda masih berlatih dengan data 9 bulan pertama yang sama, bahkan dengan model baru ini. Penting untuk memiliki set data pelatihan yang sama, sehingga Anda dapat memastikan bahwa output model yang lebih baik itu disebabkan oleh fitur input yang lebih baik, bukan oleh data pelatihan yang baru atau berbeda.
Fitur utama baru yang ditambahkan ke kueri set data pelatihan adalah progres checkout maksimum yang dicapai tiap pengunjung dalam sesi mereka, yang dicatat di kolom hits.eCommerceAction.action_type
. Jika Anda mencari kolom tersebut di bagian field definitions, Anda akan menemukan pemetaan kolom 6 = Completed Purchase.
Catatan:
Set data analisis web memiliki kolom susun bertingkat dan berulang seperti ARRAYS yang perlu dipecah menjadi beberapa baris terpisah dalam set data Anda. Hal ini bisa dilakukan dengan menggunakan fungsi UNNEST(), yang dapat Anda lihat pada kueri di atas.
- Tunggu sampai pelatihan model baru selesai (5-10 menit).
Klik Periksa progres saya untuk memverifikasi tujuan.
Meningkatkan performa model dengan Rekayasa Fitur (Membuat model kedua)
- Evaluasi model baru ini untuk melihat apakah ada kemampuan prediksi yang lebih baik atau tidak:
#standardSQL
SELECT
roc_auc,
CASE
WHEN roc_auc > .9 THEN 'good'
WHEN roc_auc > .8 THEN 'fair'
WHEN roc_auc > .7 THEN 'decent'
WHEN roc_auc > .6 THEN 'not great'
ELSE 'poor' END AS model_quality
FROM
ML.EVALUATE(MODEL ecommerce.classification_model_2, (
WITH all_visitor_stats AS (
SELECT
fullvisitorid,
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM `data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid
)
# add in new features
SELECT * EXCEPT(unique_session_id) FROM (
SELECT
CONCAT(fullvisitorid, CAST(visitId AS STRING)) AS unique_session_id,
# input_label_cols
will_buy_on_return_visit,
MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress,
# behavior on the site
IFNULL(totals.bounces, 0) AS bounces,
IFNULL(totals.timeOnSite, 0) AS time_on_site,
totals.pageviews,
# where the visitor came from
trafficSource.source,
trafficSource.medium,
channelGrouping,
# mobile or desktop
device.deviceCategory,
# geographic
IFNULL(geoNetwork.country, "") AS country
FROM `data-to-insights.ecommerce.web_analytics`,
UNNEST(hits) AS h
JOIN all_visitor_stats USING(fullvisitorid)
WHERE 1=1
# only predict for new visits
AND totals.newVisits = 1
AND date BETWEEN '20170501' AND '20170630' # eval 2 months
GROUP BY
unique_session_id,
will_buy_on_return_visit,
bounces,
time_on_site,
totals.pageviews,
trafficSource.source,
trafficSource.medium,
channelGrouping,
device.deviceCategory,
country
)
));
Output:
Baris
|
roc_auc
|
model_quality
|
1
|
0.9094875124875125
|
good
|
Dengan model baru ini, Anda sekarang mendapatkan roc_auc sebesar 0,91 yang secara signifikan lebih baik daripada model pertama.
Karena Anda sudah memiliki model terlatih, saatnya untuk membuat beberapa prediksi.
Klik Periksa progres saya untuk memverifikasi tujuan.
Meningkatkan performa model dengan Rekayasa Fitur (Kemampuan prediksi yang lebih baik)
Tugas 8. Memprediksi pengunjung baru mana yang akan kembali dan melakukan pembelian
Selanjutnya, Anda akan menulis kueri untuk memprediksi pengunjung baru yang akan kembali dan melakukan pembelian.
- Kueri prediksi di bawah menggunakan model klasifikasi yang telah ditingkatkan untuk memprediksi probabilitas bahwa pengunjung kali pertama Google Merchandise Store akan melakukan pembelian pada kunjungan berikutnya:
SELECT
*
FROM
ml.PREDICT(MODEL `ecommerce.classification_model_2`,
(
WITH all_visitor_stats AS (
SELECT
fullvisitorid,
IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
FROM `data-to-insights.ecommerce.web_analytics`
GROUP BY fullvisitorid
)
SELECT
CONCAT(fullvisitorid, '-',CAST(visitId AS STRING)) AS unique_session_id,
# input_label_cols
will_buy_on_return_visit,
MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress,
# behavior on the site
IFNULL(totals.bounces, 0) AS bounces,
IFNULL(totals.timeOnSite, 0) AS time_on_site,
totals.pageviews,
# where the visitor came from
trafficSource.source,
trafficSource.medium,
channelGrouping,
# mobile or desktop
device.deviceCategory,
# geographic
IFNULL(geoNetwork.country, "") AS country
FROM `data-to-insights.ecommerce.web_analytics`,
UNNEST(hits) AS h
JOIN all_visitor_stats USING(fullvisitorid)
WHERE
# only predict for new visits
totals.newVisits = 1
AND date BETWEEN '20170701' AND '20170801' # test 1 month
GROUP BY
unique_session_id,
will_buy_on_return_visit,
bounces,
time_on_site,
totals.pageviews,
trafficSource.source,
trafficSource.medium,
channelGrouping,
device.deviceCategory,
country
)
)
ORDER BY
predicted_will_buy_on_return_visit DESC;
Prediksi dibuat dalam 1 bulan terakhir (dari 12 bulan) pada set data.
Klik Periksa progres saya untuk memverifikasi tujuan.
Memprediksi pengunjung baru yang akan kembali dan melakukan pembelian
Model Anda sekarang mengeluarkan prediksinya untuk sesi e-commerce pada bulan Juli 2017. Anda dapat melihat tiga kolom yang baru saja ditambahkan:
- predicted_will_buy_on_return_visit: apakah model tersebut berpikir bahwa pengunjung akan melakukan pembelian nantinya (1=ya)
- predicted_will_buy_on_return_visit_probs.label: pengklasifikasi biner untuk ya/tidak
- predicted_will_buy_on_return_visit.probs.prob: keyakinan yang dimiliki model dalam memprediksi (1=100%)

Tugas 9. Menganalisis hasil dan informasi tambahan
Hasil
- Dari 6% pengunjung kali pertama teratas (diurutkan berdasarkan urutan menurun pada probabilitas yang diprediksi), lebih dari 6% melakukan pembelian pada kunjungan berikutnya.
- Pengguna ini mewakili hampir 50% dari semua pengunjung kali pertama yang melakukan pembelian pada kunjungan berikutnya.
- Secara keseluruhan, hanya 0,7% pengunjung kali pertama yang datang melakukan pembelian pada kunjungan berikutnya.
- Menarget 6% pengunjung kali pertama teratas akan meningkatkan ROI pemasaran sebesar 9 kali lipat dibandingkan dengan menarget semuanya.
Informasi tambahan
Tips: tambahkan warm_start = true
pada opsi model jika Anda melatih ulang data baru pada model yang sudah ada, sehingga waktu pelatihan menjadi lebih cepat. Perlu diperhatikan bahwa Anda tidak dapat mengubah kolom fitur karena Anda akan memerlukan model baru.
roc_auc hanyalah salah satu metrik performa yang tersedia selama evaluasi model. Akurasi, presisi, dan perolehan juga tersedia. Mengetahui metrik performa mana yang dapat diandalkan sangat bergantung pada tujuan atau sasaran Anda secara keseluruhan.
Set data lain untuk dipelajari
Anda dapat menggunakan project bigquery-public-data jika ingin mempelajari pemodelan pada set data lain, seperti memperkirakan tarif perjalanan taksi.
- Untuk membuka set data bigquery-public-data, klik +Add. Klik Star a project by name di bagian Additional sources.
- Lalu tuliskan nama
bigquery-public-data
.
- Klik Star.
Project bigquery-public-data
tercantum di bagian Explorer.
Tugas 10. Menguji pengetahuan Anda
Uji pengetahuan Anda tentang Google Cloud Platform dengan mengikuti kuis kami.
Selamat!
Anda telah berhasil membangun model machine learning dengan BigQuery ML untuk mengklasifikasikan pengunjung e-commerce dan memprediksi kebiasaan mereka melakukan pembelian.
Langkah berikutnya/Pelajari lebih lanjut
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 13 September 2024
Lab Terakhir Diuji pada 13 September 2024
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.