
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Write a query to determine available seasons and games
/ 10
Create a labeled machine learning dataset
/ 10
Create a machine learning model
/ 20
Evaluate model performance and create table
/ 10
Using skillful ML model features
/ 10
Train the new model and make evaluation
/ 10
Run a query to create a table ncaa_2018_predictions
/ 10
Run queries to create tables ncaa_2019_tournament and ncaa_2019_tournament_predictions
/ 20
BigQuery adalah database analisis berbiaya rendah dan NoOps yang dikelola sepenuhnya oleh Google. 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 memungkinkan analis data menggunakan pengetahuan SQL mereka untuk membangun model machine learning dengan cepat di lokasi data mereka berada di BigQuery.
Di BigQuery, terdapat set data yang tersedia bagi publik untuk pertandingan, tim, dan pemain basket NCAA. Data pertandingan ini mencakup data setiap pertandingan dan detail skor sejak tahun 2009, serta skor final sejak tahun 1996. Untuk beberapa tim, bahkan terdapat data tambahan terkait kemenangan dan kekalahan sejak musim 1894-1895.
Di lab ini, Anda akan menggunakan BigQuery ML untuk membuat prototipe, melatih, mengevaluasi, dan memprediksi tim yang 'menang' dan 'kalah' antara dua tim dalam turnamen basket NCAA.
Di lab ini, Anda akan mempelajari cara:
Ini adalah lab tingkat menengah. Sebelum mengikutinya, Anda harus memiliki pengalaman dengan SQL dan kata kunci bahasa. Sebaiknya Anda juga memahami BigQuery. Jika Anda perlu mendapatkan informasi tentang bidang ini, setidaknya Anda harus mengikuti salah satu lab berikut sebelum mencoba lab ini:
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:
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:
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.
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
Anda juga dapat menemukan Username di panel Lab Details.
Klik Next.
Salin Password di bawah dan tempel ke dialog Welcome.
Anda juga dapat menemukan Password di panel Lab Details.
Klik Next.
Klik halaman berikutnya:
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Kotak pesan Welcome to BigQuery in the Cloud Console akan terbuka. Kotak pesan ini menyediakan link ke panduan memulai dan catatan rilis.
Konsol BigQuery terbuka.
Dari Konsol Cloud, buka Navigation menu dan pilih BigQuery.
Klik DONE untuk membuka UI versi beta. Pastikan Project ID Anda telah tercantum di tab Explorer, yang akan terlihat seperti ini:
Jika Anda mengklik panah Expand node di samping project, Anda tidak akan melihat database atau tabel apa pun di sana. Hal ini karena Anda belum menambahkan apa pun ke dalam project tersebut.
Untungnya, ada banyak set data publik terbuka yang tersedia di BigQuery yang dapat Anda gunakan. Sekarang Anda akan mempelajari lebih lanjut set data NCAA dan mengetahui cara menambahkan set data tersebut ke project BigQuery Anda.
National Collegiate Athletic Association (NCAA) menyelenggarakan dua turnamen basket besar tingkat perguruan tinggi setiap tahun di Amerika Serikat, yang dapat diikuti oleh pebasket putra dan putri di perguruan tinggi. Untuk turnamen basket putra NCAA yang diadakan pada bulan Maret, ada 68 tim yang ikut pertandingan eliminasi tunggal dan satu tim akan menjadi pemenang turnamen March Madness ini.
NCAA menawarkan set data publik yang berisi statistik data pertandingan dan pemain putra dan putri untuk musim tersebut dan turnamen final. Data pertandingan ini mencakup data setiap pertandingan dan detail skor sejak tahun 2009, serta skor final sejak tahun 1996. Untuk beberapa tim, bahkan terdapat data tambahan terkait kemenangan dan kekalahan sejak musim 1894-1895.
Untuk langkah ini, pastikan Anda masih berada di Konsol BigQuery. Pada tab Explorer, klik tombol + ADD, lalu pilih Public datasets.
Di kotak penelusuran, ketik NCAA Basketball dan tekan Enter. Satu hasil akan muncul. Pilih hasil tersebut, lalu klik VIEW DATASET:
Tindakan ini akan membuka tab BigQuery baru dan set data akan ditampilkan. Anda dapat terus bekerja di tab ini, atau menutupnya dan memuat ulang Konsol BigQuery di tab lain untuk menampilkan set data publik Anda.
Anda akan melihat 10 tabel di set data ini.
Klik mbb_historical_tournament_games
, lalu klik PREVIEW untuk melihat contoh baris data.
Setelah itu, klik DETAILS untuk memperoleh metadata terkait tabel tersebut.
Halaman Anda akan terlihat seperti berikut:
Anda akan menulis kueri SQL sederhana untuk menentukan seberapa banyak musim dan pertandingan yang tersedia untuk dipelajari di tabel mbb_historical_tournament_games
kita.
Klik Check my progress untuk memverifikasi tujuan.
Pertanyaan pilihan ganda berikut akan memperkuat pemahaman Anda mengenai konsep yang telah dibahas sejauh ini. Jawab pertanyaan tersebut sebaik mungkin.
Tujuan akhir lab ini adalah untuk memprediksi pemenang pertandingan basket putra NCAA dengan menggunakan data historis pertandingan sebelumnya. Di machine learning, setiap kolom data yang membantu menentukan hasil akhir (menang atau kalah dalam pertandingan turnamen) disebut feature (fitur).
Kolom data yang Anda coba prediksi disebut label. Model machine learning "mempelajari" hubungan antara sejumlah fitur untuk memprediksi hasil akhir dari sebuah label.
Contoh fitur untuk set data historis Anda antara lain:
Label yang Anda akan coba prediksi untuk pertandingan berikutnya adalah game outcome (hasil akhir pertandingan) — yaitu apakah tim tersebut kalah atau menang.
Pertanyaan pilihan ganda berikut akan memperkuat pemahaman Anda mengenai konsep yang telah dibahas sejauh ini. Jawab pertanyaan tersebut sebaik mungkin.
Membangun model machine learning memerlukan banyak data pelatihan berkualitas tinggi. Untungnya, set data NCAA kita cukup kredibel sehingga kita dapat mengandalkannya untuk membangun model yang efektif.
Kembali ke Konsol BigQuery—Anda akan melihat hasil kueri yang tadi Anda jalankan.
Dari menu di sebelah kiri, buka tabel mbb_historical_tournament_games
dengan mengklik nama tabel. Setelah tabel terbuka, klik PREVIEW. Halaman Anda akan terlihat seperti berikut:
Pertanyaan pilihan ganda berikut akan memperkuat pemahaman Anda mengenai konsep yang telah dibahas sejauh ini. Jawab pertanyaan tersebut sebaik mungkin.
Setelah memeriksa set data, Anda akan melihat bahwa satu baris di set data tersebut memiliki kolom untuk win_market
dan lose_market
. Anda harus membagi data pertandingan tunggal menjadi data untuk masing-masing tim, sehingga Anda dapat melabeli setiap baris sebagai "menang" atau "kalah".
Di EDITOR kueri, salin dan tempel kueri berikut, lalu klikRUN:
Anda akan menerima output berikut:
Klik Check my progress untuk memverifikasi tujuan.
Setelah Anda mengetahui fitur apa saja yang tersedia dari hasil kueri, jawab pertanyaan berikut untuk memperkuat pemahaman Anda mengenai set data.
Setelah mempelajari data, kini saatnya untuk melatih model machine learning.
Untuk masalah ini, Anda akan membangun model klasifikasi. Karena kita memiliki dua kelas, yaitu kalah atau menang, model ini juga disebut sebagai model klasifikasi biner. Sebuah tim bisa menang atau kalah dalam pertandingan.
Jika mau, setelah lab ini selesai, Anda dapat memperkirakan jumlah total poin yang akan dicetak oleh sebuah tim dengan menggunakan model perkiraan, tetapi hal itu tidak menjadi fokus kita di sini.
Cara mudah untuk mengetahui apakah Anda sedang membuat perkiraan atau klasifikasi adalah dengan melihat jenis label (kolom) data yang Anda prediksi:
Model klasifikasi ini akan menjalankan machine learning dengan model statistik yang banyak digunakan yang disebut Regresi Logistik.
Kita memerlukan model yang menghasilkan probabilitas untuk setiap kemungkinan nilai label terpisah, dalam kasus ini adalah 'menang' atau 'kalah'. Untuk tujuan ini, regresi logistik adalah jenis model yang baik untuk memulai. Kabar baik untuk Anda adalah bahwa model ML akan melakukan semua perhitungan dan pengoptimalan selama pelatihan model -- inilah keahlian komputer yang sesungguhnya.
Untuk membuat model klasifikasi di BigQuery, kita hanya perlu menulis pernyataan SQL CREATE MODEL
dan memberikan beberapa opsi.
Namun, sebelum membuat model, kita perlu tempat untuk menyimpannya di project kita.
bracketology
, lalu klik CREATE DATASET.Dalam kode tersebut, Anda akan melihat bahwa membuat model hanya memerlukan beberapa baris SQL. Salah satu opsi terpenting adalah memilih jenis model logistic_reg untuk tugas klasifikasi ini.
Proses untuk melatih model akan memakan waktu 3 sampai 5 menit. Anda akan menerima output berikut saat tugas selesai dijalankan:
Klik Check my progress untuk memverifikasi tujuan.
Jika Anda familier dengan machine learning, Anda juga dapat menyesuaikan semua hyperparameter ini (opsi yang ditetapkan sebelum model berjalan) dengan menentukan nilainya di pernyataan OPTIONS
.
Jika Anda pengguna baru machine learning, BigQuery ML akan menetapkan nilai default secara cerdas untuk setiap opsi yang tidak ditetapkan.
Lihat daftar opsi model BigQuery ML untuk mempelajari lebih lanjut.
Model machine learning "mempelajari" hubungan antara fitur yang diketahui dan label yang belum diketahui. Anda mungkin menebak, beberapa fitur seperti "peringkat" atau "nama universitas" dapat lebih menentukan menang atau kalah daripada kolom data (fitur) lainnya, seperti tanggal pertandingan.
Model machine learning memulai proses pelatihan tanpa intuisi semacam itu dan umumnya akan mengacak pembobotan setiap fitur.
Selama proses pelatihan, model akan mengoptimalkan jalur menuju pembobotan terbaiknya untuk setiap fitur. Setiap kali dijalankan, model mencoba untuk meminimalkan Training Data Loss dan Evaluation Data Loss.
Jika Anda mendapati bahwa kehilangan data akhir untuk evaluasi jauh lebih tinggi daripada untuk pelatihan, berarti model Anda overfitting atau menghafal data pelatihan, bukan mempelajari hubungan yang dapat digeneralisasi.
Anda dapat melihat berapa banyak sesi pelatihan yang dilakukan model dengan mengklik tab TRAINING dan memilih opsi Table di bagian View as.
Pada sesi ini, model menyelesaikan 3 iterasi pelatihan dalam waktu 20 detik. Model Anda kemungkinan akan berbeda.
Setelah pelatihan, Anda dapat melihat fitur mana yang memberikan nilai terbanyak untuk model dengan memeriksa bobotnya.
Output Anda akan terlihat seperti ini:
Seperti yang Anda lihat, jika peringkat sebuah tim sangat rendah (1,2,3) atau sangat tinggi (14,15,16), model memberikan bobot signifikan (maksimal 1,0) dalam menentukan hasil akhir menang atau kalah. Secara intuitif, hal ini masuk akal karena kita mengharapkan tim dengan peringkat terendah dapat bermain dengan baik dalam turnamen.
Kecanggihan machine learning sesungguhnya adalah kita tidak perlu membuat banyak pernyataan IF THEN
yang di-hardcode di SQL untuk memberi tahu model IF
(JIKA) peringkatnya adalah 1, THEN
(MAKA) berikan tim tersebut peluang 80% lebih tinggi untuk menang. Machine learning tidak menerapkan aturan dan logika yang di-hardcode, namun mempelajari hubungan ini untuknya sendiri. Lihat dokumentasi bobot sintaksis BQML untuk mempelajari lebih lanjut.
Untuk mengevaluasi performa model, Anda dapat menjalankan perintah sederhana ML.EVALUATE
terhadap model terlatih.
Anda akan melihat output seperti ini:
Akurasi nilainya adalah sekitar 69%. Meskipun nilai ini lebih baik daripada melempar koin, ada banyak hal yang dapat ditingkatkan.
Setelah melatih model dengan data historis sampai dan termasuk musim 2017 (ini adalah semua data yang Anda punya), kini saatnya membuat prediksi untuk musim 2018. Tim data science Anda telah menyediakan hasil turnamen tahun 2018 di tabel terpisah yang tidak ada di set data asli Anda.
Membuat prediksi semudah memanggil ML.PREDICT
pada model terlatih dan meneruskan set data yang ingin Anda gunakan sebagai acuan untuk membuat prediksi.
Dalam waktu singkat, Anda akan melihat output seperti ini:
Klik Check my progress untuk memverifikasi tujuan.
Sekarang Anda akan melihat set data asli dan juga tambahan tiga kolom baru:
Karena Anda telah mengetahui hasil turnamen March Madness tahun 2018, mari kita lihat hasil prediksi model. (Tips: Jika Anda memprediksi untuk turnamen March Madness tahun ini, Anda hanya perlu meneruskan set data yang berisi peringkat tahun 2019 dan nama tim yang bertanding. Tentunya kolom label akan kosong karena pertandingan belum terjadi -- itulah yang Anda prediksi!).
Anda akan melihat output seperti ini:
Dari 134 prediksi (67 pertandingan pada turnamen March Madness), model salah sebanyak 38 kali. Artinya, prediksi model yang benar untuk pertandingan pada turnamen tahun 2018 secara keseluruhan adalah 70%.
Ada banyak faktor dan fitur lain yang berperan dalam penentuan kemenangan tipis dan kejutan luar biasa pada turnamen March Madness yang sangat sulit diprediksi oleh model.
Mari kita lihat kejutan terbesar yang terjadi pada turnamen tahun 2017 menurut model. Kita akan melihat ketika model memprediksi dengan keyakinan 80%+ dan ternyata SALAH.
Hasilnya akan terlihat seperti ini:
Setelah pertandingan, Pelatih Odom (UMBC) mengatakan, "Sulit dipercaya — hanya itu yang bisa saya katakan." Baca selengkapnya tentang hal ini di artikel 2018 UMBC vs. Virginia men's basketball game.
Tantangan selanjutnya adalah membangun model yang lebih baik TANPA menggunakan fitur peringkat dan nama tim.
Di bagian kedua lab ini, Anda akan membangun model ML kedua menggunakan fitur yang baru disediakan dan mendetail.
Setelah Anda memahami cara membangun model ML menggunakan BigQuery ML, tim data science Anda telah menyediakan set data setiap pertandingan baru di mana mereka telah membuat metrik tim baru untuk dipelajari oleh model Anda. Metrik tersebut meliputi:
Dalam waktu singkat, Anda akan melihat output seperti ini:
Klik Check my progress untuk memverifikasi tujuan.
Tabel Anda akan terlihat seperti ini:
Jangan khawatir jika output Anda tidak sama dengan screenshot di atas.
Peringkat Efisiensi Lawan: Peringkat tim lawan dari semua tim dalam mencetak angka secara efisien dari waktu ke waktu (poin per 100 penguasaan bola). Semakin rendah nilainya, maka semakin baik.
Peringkat Laju Langkah Lawan: Peringkat tim lawan dari semua tim untuk penguasaan bola (durasi penguasaan dalam 40 menit). Semakin rendah nilainya, maka semakin baik.
Setelah Anda memiliki fitur yang informatif terkait seberapa baik sebuah tim dapat mencetak skor dan menguasai bola, mari kita latih model kedua ini.
Sebagai tindakan tambahan agar model Anda tidak "mengingat tim hebat dari periode sebelumnya", jangan sertakan nama tim dan peringkat tersebut untuk model ini dan berfokuslah hanya pada metrik.
Dalam waktu singkat, output Anda akan terlihat seperti ini:
Output Anda akan terlihat seperti ini:
Wow! Anda baru saja melatih model baru dengan fitur berbeda dan meningkatkan akurasi menjadi sekitar 75% atau naik 5% dari model sebelumnya.
Ini adalah salah satu pelajaran berharga yang diperoleh di machine learning, yaitu bahwa set data fitur berkualitas tinggi dapat membuat perbedaan signifikan dalam akurasi model Anda.
Klik Check my progress untuk memverifikasi tujuan.
Output Anda akan terlihat seperti ini:
Kita menggunakan nilai absolut dari bobot dalam menentukan urutan ini, sehingga fitur yang paling berpengaruh (untuk menang atau kalah) dicantumkan terlebih dahulu.
Seperti yang Anda lihat dalam hasilnya, 3 teratas adalah pace_stat_diff
, eff_stat_diff
, dan eff_rating_diff
. Mari kita pelajari ketiganya lebih lanjut.
Seberapa berbeda statistik sebenarnya untuk (penguasaan bola/40 menit) antartim. Menurut model, ini adalah pendorong terbesar dalam memilih hasil akhir pertandingan.
Seberapa berbeda statistik sebenarnya untuk (poin net/100 penguasaan bola) antartim.
Seberapa berbeda rating yang dinormalisasi untuk efisiensi penskoran antartim.
Fitur apa yang tidak dianggap berbobot tinggi oleh model dalam prediksinya? Musim. Fitur ini berada di urutan terakhir dalam daftar bobot di atas. Yang dimaksud oleh model adalah bahwa musim (tahun 2013, 2014, 2015) tidak terlalu berguna untuk memprediksi hasil akhir pertandingan. Tidak ada hal yang ajaib pada tahun "2014" bagi semua tim.
Insight yang menarik adalah bahwa model lebih mementingkan laju langkah sebuah tim (seberapa baik mereka mengontrol bola) daripada seberapa efisien sebuah tim dapat mencetak skor.
Output Anda akan terlihat seperti ini:
Klik Check my progress untuk memverifikasi tujuan.
Karena Anda mengetahui hasil akhir pertandingan yang benar, Anda dapat melihat di mana model membuat prediksi yang salah menggunakan set data pengujian baru.
Seperti yang Anda lihat dari jumlah data yang ditampilkan dari kueri, model salah memprediksi 48 pertandingan (24 laga) dari total jumlah pertandingan di turnamen tahun 2018 dengan akurasi 64%. 2018 pasti merupakan tahun yang luar biasa, mari kita lihat kejutan yang terjadi.
Hasilnya akan terlihat seperti ini:
Kejutan utamanya adalah sama seperti yang ditemukan oleh model sebelumnya, yaitu UMBC vs. Virginia. Baca selengkapnya tentang bagaimana tahun 2018 secara keseluruhan merupakan tahun yang penuh kejutan di artikel Has This Been the “Maddest” March?. Akankah tahun 2019 juga penuh kejutan?
Bagaimana dengan saat model naif (membandingkan peringkat) salah, tetapi model yang lebih canggih bisa benar?
Hasilnya akan terlihat seperti ini:
Model memprediksi bahwa Florida St. (09) mengalahkan Xavier (01) dan itu terjadi!
Kejutan tersebut diprediksi dengan benar oleh model baru (walaupun peringkat tim mengatakan hal sebaliknya) berdasarkan fitur terampil baru, seperti efisiensi laju langkah dan lemparan bola. Lihat sorotan pertandingan di YouTube.
Setelah mengetahui tim dan peringkatnya untuk turnamen March Madness 2019, mari kita prediksi hasil pertandingan mendatang.
Hasilnya akan terlihat seperti ini:
Karena kita belum mengetahui tim mana yang akan bertanding satu sama lain saat turnamen berlangsung, kita akan membuat mereka semua saling berhadapan.
Di SQL, cara mudah untuk membuat sebuah tim berhadapan dengan semua tim lain dalam tabel adalah dengan CROSS JOIN.
Klik Check my progress untuk memverifikasi tujuan.
Insight: Duke (1) diunggulkan 88,5% untuk mengalahkan North Dakota St. (16) pada 22 Maret 2019.
Bereksperimenlah dengan mengubah filter school_ncaa di atas untuk memprediksi pertandingan di bracket Anda. Tuliskan tingkat keyakinan model dan nikmati pertandingannya.
Anda telah menggunakan BigQuery ML untuk memprediksi tim yang menang untuk turnamen basket putra NCAA.
...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 19 Maret 2024
Lab Terakhir Diuji pada 19 Maret 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.
Konten ini tidak tersedia untuk saat ini
Kami akan memberi tahu Anda melalui email saat konten tersedia
Bagus!
Kami akan menghubungi Anda melalui email saat konten tersedia
One lab at a time
Confirm to end all existing labs and start this one