arrow_back

Memprediksi Pembelian oleh Pengunjung dengan Model Klasifikasi dalam BigQuery ML

Login Gabung
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Memprediksi Pembelian oleh Pengunjung dengan Model Klasifikasi dalam BigQuery ML

Lab 1 jam 15 menit universal_currency_alt No cost show_chart Menengah
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP229

Lab Mandiri Google Cloud

Ringkasan

BigQuery adalah database analisis NoOps berbiaya rendah yang terkelola sepenuhnya dari Google. Dengan BigQuery, Anda dapat melakukan kueri pada data berukuran terabyte tanpa harus memiliki administrator database atau infrastruktur apa pun yang perlu dikelola. 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 akan menggunakan data ini untuk membuat model klasifikasi (regresi logistik) di BigQuery ML yang memprediksi kebiasaan pembelian pelanggan.

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 prediksi batch
  • Membuat model klasifikasi (regresi logistik) di BigQuery ML
  • Mengevaluasi dan meningkatkan performa model machine learning Anda
  • Memprediksi dan memberi peringkat atas probabilitas pengunjung melakukan pembelian.

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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 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: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan berikut ini:

    • Tombol Open Google Console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Console. Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Login.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username dari panel Lab Details dan tempel ke dialog Sign in. Klik Next.

  4. Salin Password dari panel Lab Details dan tempel ke dialog Welcome. Klik Next.

    Penting: Anda harus menggunakan kredensial dari panel sebelah kiri. Jangan menggunakan kredensial Google Cloud Skills Boost. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  5. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan daftar uji coba gratis.

Setelah beberapa saat, Cloud Console akan terbuka di tab ini.

Catatan: Anda dapat melihat menu dengan daftar Produk dan Layanan Google Cloud dengan mengklik Menu navigasi di kiri atas. Ikon menu navigasi

Membuka konsol BigQuery

  1. 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.

  1. Klik Done.

Konsol BigQuery terbuka.

Mengakses set data kursus

  1. Di Explorer pane, klik + ADD.

Panel Add data akan terbuka.

  1. Klik Star a project by name di bagian bawah Additional sources.

  2. Masukkan data-to-insights lalu klik Star.

Panel project BigQuery

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.

Klik tab Query, lalu pilih In new tab untuk membuka Editor Kueri.

Tugas 1. Mempelajari data e-commerce

Skenario: Tim analis data mengekspor log Google Analytics pada situs e-commerce ke dalam 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 kami, berapa % yang melakukan pembelian?

  1. 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
  1. Klik Run.

Hasilnya: 2,69%

Pertanyaan: Apa saja 5 produk penjualan teratas?

  1. 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;
  1. 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?

  1. 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
  1. 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 melakukan pembelian 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, karena pelanggan perlu 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 pratinjau set data demo untuk menemukan fitur yang berguna 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 ini 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 kualitas data yang digunakan untuk melatihnya. Jika tidak ada informasi yang cukup bagi model untuk menentukan dan mempelajari hubungan antara fitur input dan label (dalam hal ini, apakah pengunjung melakukan pembelian di masa mendatang atau tidak), maka Anda tidak akan memiliki model yang 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 waktu prediksi di masa mendatang, 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, namun 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.

  1. Pada panel kiri, di bagian bawah Explorer, klik ikon View actions di sebelah nama project (diawali dengan qwiklabs-gcp-...), lalu klik Create dataset.

Bagian Explorer

  1. Di dialog Create dataset:
  • Untuk Dataset ID, ketik "ecommerce".
  • Biarkan semua nilai lainnya dalam setelan default.
  1. Klik Create dataset.

Klik Check my progress 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 bisa dipilih:

Model

Jenis Model

Jenis Data Label

Contoh

Perkiraan

linear_reg

Nilai numerik (biasanya berupa bilangan bulat atau floating point)

Perkiraan angka penjualan untuk tahun berikutnya berdasarkan data historis penjualan.

Klasifikasi

logistic_reg

0 atau 1 untuk klasifikasi biner

Klasifikasikan 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.

  1. Jalankan kueri ini untuk melatih model Anda:
CREATE OR REPLACE MODEL `ecommerce.classification_model` OPTIONS ( model_type='logistic_reg', labels = ['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) ;
  1. 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 dari set data 12 bulan Anda.

Klik Check my progress 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".

  1. Klik Go to model.

  2. Lihat ke dalam set data e-commerce dan pastikan classification_model sekarang muncul.

set data e-commerce

Selanjutnya, Anda akan mengevaluasi performa model terhadap data evaluasi baru yang belum pernah dilihat sebelumnya.

Tugas 6. Mengevaluasi performa model klasifikasi

Pilih kriteria performa Anda

Untuk masalah klasifikasi di ML, Anda disarankan untuk meminimalkan Rasio Positif Palsu (memprediksi pengguna akan kembali dan membeli, tetapi ternyata tidak) dan memaksimalkan Rasio Positif Benar (memprediksi pengguna akan kembali dan membeli, dan mereka melakukannya).

Hubungan ini divisualisasikan dengan kurva KOP (Karakteristik Operasi Penerima) seperti yang ditunjukkan di sini, tempat Anda mencoba memaksimalkan area di bawah kurva atau AUC:

Kurva KOP

Di BigQuery ML, roc_auc hanyalah sebuah bidang 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 Check my progress 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.

  1. Tambahkan beberapa fitur baru dan buat model machine learning kedua yang disebut classification_model_2:
  • Seberapa jauh proses checkout telah dilakukan oleh pengunjung pada kunjungan pertama mereka
  • Dari mana pengunjung berasal (sumber traffic: penelusuran organik, situs pengarah, dll.)
  • Kategori perangkat (seluler, tablet, desktop)
  • Informasi geografis (negara)
  1. Buat model kedua ini dengan mengklik ikon "+" (Tulis Kueri Baru):
CREATE OR REPLACE MODEL `ecommerce.classification_model_2` OPTIONS (model_type='logistic_reg', labels = ['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, # labels 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 disebabkan oleh fitur input yang lebih baik pula dan 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.
  1. Tunggu sampai model baru selesai dilatih (5-10 menit).

Klik Check my progress untuk memverifikasi tujuan.

Meningkatkan performa model dengan Rekayasa Fitur (Membuat model kedua)
  1. 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, # labels 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.

Setelah Anda memiliki model terlatih, saatnya untuk membuat beberapa prediksi.

Klik Check my progress untuk memverifikasi tujuan.

Meningkatkan performa model dengan Rekayasa Fitur (Kemampuan prediksi yang lebih baik)

Tugas 8. Memprediksi pengunjung baru 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 pengunjung kali pertama ke 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, # labels 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 Check my progress 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 ditambahkan:

  • predicted_will_buy_on_return_visit: apakah model tersebut beranggapan bahwa pengunjung akan membeli nantinya (1 = ya)
  • predicted_will_buy_on_return_visit_probs.label: pengklasifikasi program biner untuk ya/tidak
  • predicted_will_buy_on_return_visit.probs.prob: keyakinan yang dimiliki model dalam memprediksi (1 = 100%)

Halaman dengan tab Query Results

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.

  1. Untuk membuka set data bigquery-public-data, klik +Add. Klik Star a project by name di bagian bawah Additional sources.
  2. Lalu tuliskan nama bigquery-public-data.
  3. Klik Star.

Project bigquery-public-data akan tercantum di bagian Explorer.

Tugas 10. Menguji pengetahuan Anda

Uji pengetahuan Anda tentang Google Cloud Platform dengan mengikuti kuis dari kami.

Selamat!

Anda telah berhasil membangun model machine learning dengan BigQuery ML untuk mengklasifikasikan pengunjung e-commerce dan memprediksi kebiasaan pembelian mereka.

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 07 Februari 2024

Lab Terakhir Diuji pada 09 Oktober 2023

Hak cipta 2024 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.