Kursus
Memprediksi sepak bola itu sulit. Ini adalah olahraga dengan skor rendah di mana satu tembakan yang berbelok bisa membalikkan hasil, dan sebagian besar dari setiap pertandingan bergantung pada keberuntungan. Sepak bola internasional bahkan lebih sulit: tim nasional hanya memainkan beberapa pertandingan kompetitif setiap tahun, sehingga jauh lebih sedikit data untuk dipelajari dibandingkan liga klub.
Dan seolah itu belum cukup, FIFA membuat tugas ini semakin sulit untuk Piala Dunia tahun ini. Piala Dunia dengan 48 tim memperkenalkan format baru di mana dua teratas dari masing-masing dari dua belas grup lolos, bersama delapan dari dua belas tim peringkat ketiga terbaik, sehingga nasib fase grup menjadi sulit diprediksi. Karena saya menyukai tantangan (dan sepak bola), itulah yang saya coba prediksi.
Ini adalah kelanjutan dari proyek prediksi EURO 2024 saya, yang hampir dibangun ulang dari nol. Terakhir kali saya bekerja sepenuhnya di notebook Jupyter dan memprediksi satu skor paling mungkin per pertandingan. Kali ini, saya membangun pipeline MLOps end-to-end yang mengambil hasil terbaru, melatih ulang dirinya sendiri, dan menjalankan simulasi Monte Carlo untuk seluruh turnamen sebanyak 10.000 kali, mengubah prediksi level pertandingan menjadi probabilitas seberapa jauh setiap tim melaju.
Dalam artikel ini, saya akan mengajak Anda menelusuri proyek ini secara garis besar: data dan fitur, praktik MLOps yang membuatnya dapat direproduksi, arsitektur pipeline, dan model mana yang ternyata paling baik memprediksi sepak bola tim nasional. Anda dapat menemukan kode lengkapnya di repo proyek. Dan tentu saja, saya akan memberi tahu Anda siapa yang menurut model akan menang. (Bocoran: model menyukai Spanyol dan Argentina sekitar 16% masing-masing, tetapi bagian menariknya adalah bagaimana model sampai pada kesimpulan itu.)
Jika ini membuat Anda bersemangat menantikan turnamen, saya sarankan mengikuti pekan Data & AI World Cup kami, rangkaian sesi tentang bagaimana data dan AI membentuk ulang sepak bola, gratis untuk ditonton langsung atau on demand.
Ringkasnya
- Ini adalah pipeline MLOps end-to-end yang memprediksi Piala Dunia FIFA 2026, menarik hasil internasional terbaru dan melatih ulang secara otomatis di Google Cloud, setiap dua jam selama turnamen.
- Data dari API-Football dan rating Elo diproses melalui arsitektur medali Bronze-Silver-Gold dan diberi versi dengan DVC untuk reproduktabilitas penuh.
- Sepuluh model dari lima keluarga dibandingkan pada 347 pertandingan holdout; XGBoost menang tipis, lima teratas hampir tak terpisahkan, dan perbedaan Elo antartim melakukan sebagian besar kerja prediktif.
- Simulasi Monte Carlo memainkan seluruh turnamen 10.000 kali, mengubah prediksi gol level pertandingan menjadi peluang tiap tim untuk lolos dan menang.
- Per 10 Juni 2026, favorit model adalah Spanyol dan Argentina, sekitar 16% masing-masing. Prediksi langsung dapat diikuti di dasbor Streamlit pendamping yang menyegarkan setiap dua jam.
Data di Balik Prediksi
Sebuah prediksi hanya sebaik bahan bakunya, jadi ada baiknya memulai dari material mentah. Model belajar dari dua sumber data langsung dan mengubahnya menjadi satu tabel fitur yang rapi.
Dari mana data berasal
Semuanya dibangun dari dua tempat. API-Football menyediakan jadwal dan statistik per pertandingan: siapa melawan siapa, kapan, di mana, dan bagaimana hasilnya. eloratings.net menyediakan rating Elo untuk setiap tim nasional.
Rating Elo adalah satu angka yang menangkap seberapa kuat sebuah tim. Setiap tim berada di suatu titik pada skala ini, dan setelah setiap pertandingan, rating diperbarui: kalahkan lawan yang lebih kuat, Anda mendapat banyak; kalah dari yang lebih lemah, Anda turun tajam. Idenya berasal dari catur dan pas untuk sepak bola. Jika Anda ingin intuisi lengkapnya, artikel DataCamp sebelumnya ini menjelaskannya dalam konteks Piala Dunia 2022.
Bersama-sama, kedua sumber menghasilkan dataset Gold sekitar 6.900 pertandingan internasional sejak 2018 untuk dipelajari.
Apa yang diprediksi model
Inilah pilihan desain penting pertama. Alih-alih memprediksi hasil langsung sebagai menang, seri, atau kalah, model memprediksi sesuatu yang lebih granular: jumlah gol yang dicetak masing-masing tim dalam sebuah pertandingan. Jumlah gol dalam sepak bola, secara pendekatan yang baik, mengikuti distribusi Poisson, cara standar untuk memodelkan seberapa sering suatu kejadian langka terjadi dalam jangka waktu tetap.
Memprediksi gol alih-alih hasil adalah yang membuat semuanya selanjutnya menjadi mungkin. Setelah model dapat menghasilkan skor yang masuk akal untuk pasangan mana pun, pertanyaan yang sebenarnya menarik minat semua orang—siapa yang lolos dari grup dan siapa yang mengangkat trofi—dapat dijawab dengan mensimulasikan skor-skor tersebut ribuan kali.
Fitur-fitur yang penting
Setiap pertandingan digambarkan oleh sekumpulan fitur kecil yang dipilih dengan cermat:
- Perbedaan Elo: selisih rating antara dua tim. Ini sejauh ini merupakan fitur tunggal terpenting dalam model, dengan tingkat kepentingan kira-kira dua orde magnitudo di atas yang berikutnya. Ini sesuai intuisi, karena selisih kekuatan antara kedua kubu memberi tahu Anda lebih banyak tentang kemungkinan hasil dibanding hampir apa pun.
- Jumlah Elo: dua rating dijumlahkan, sebagai pengganti kualitas keseluruhan pertandingan. Perbedaan saja tidak bisa membedakan Argentina vs Spanyol dari San Marino vs Andorra, dua laga yang sama kuat di level yang sama sekali berbeda, dan jumlahnya mengembalikan informasi itu.
- Perubahan Elo bergulir (5 laga terakhir): seberapa banyak rating masing-masing tim bergeser baru-baru ini. Ini menangkap performa sambil sudah mempertimbangkan kekuatan lawan yang dihadapi.
- Gol memasukkan dan kebobolan bergulir (5 laga terakhir): keluaran menyerang dan bertahan terbaru dalam istilah absolut, dihitung untuk masing-masing tim.
- Konteks pertandingan: tingkat kompetisi (laga Piala Dunia memiliki bobot berbeda dari kualifikasi atau Nations League), apakah pertandingan sistem gugur, dan apakah dimainkan di tempat netral.
Setiap fitur sepenuhnya aman dari kebocoran, artinya masing-masing hanya menggunakan informasi yang tersedia sebelum kick-off. Kedengarannya jelas, tetapi ini adalah salah satu cara termudah untuk tanpa sengaja membangun model yang tampak brilian saat pengujian dan runtuh di dunia nyata.
Satu ide yang tidak lolos: saya berencana membuat serangkaian fitur "gaya bermain" dengan mengelompokkan tim dari statistik dalam pertandingan, sebuah langkah pembelajaran tanpa pengawasan. Dalam praktiknya, tim-tim tersebut tidak terpisah ke dalam kelompok yang bermakna, jadi daripada memberi makan kebisingan ke model, saya menghapusnya. Hasil negatif tetaplah hasil.
Menjaga data dapat direproduksi
Dengan data datang dari dua sumber secara bergulir, jalur dari berkas mentah ke fitur siap-model harus identik setiap saat. Itulah yang diberikan oleh arsitektur medali. Ia mengatur data ke dalam tiga lapisan:
- Bronze: data mentah, persis seperti yang datang, dibiarkan apa adanya.
- Silver: dibersihkan dan distandardisasi. Di sini saya memetakan nama tim antara dua sumber (mereka jarang sepakat soal ejaan), memvalidasi skema, menggabungkan rating Elo ke catatan pertandingan, dan menangani yang hilang atau rusak.
- Gold: lapisan pemodelan, satu baris rapi per pertandingan dengan setiap fitur dihitung dan siap untuk dilatih.
Setiap lapisan memberi makan lapisan berikutnya, jadi saat ada yang terlihat janggal, saya bisa menelusurinya kembali satu tahap demi tahap alih-alih mengurai semuanya sekaligus. Untuk membuat seluruh jalur dapat direproduksi, saya menggunakan DVC (Data Version Control). Setiap kali hasil baru masuk, satu dvc repro membangun ulang Silver dan Gold dari Bronze, menjalankan ulang sebuah langkah hanya jika inputnya berubah, dan memberi versi dataset yang dihasilkan sehingga kondisi sebelumnya dapat dipulihkan persis.
Memilih Model Terbaik
Memprediksi gol adalah masalah yang banyak diteliti, dan tidak ada satu alat yang jelas lebih unggul. Jadi alih-alih berkomitmen pada satu pendekatan di awal, saya membangun sepuluh dan membiarkan mereka bersaing.
Para penantang
Sepuluh model ini mencakup lima keluarga ditambah baseline sederhana. Anda tidak perlu tahu internal masing-masing; intinya, mereka membuat asumsi yang sangat berbeda tentang bagaimana gol tercipta.
| Keluarga | Model | Gagasan inti |
|---|---|---|
| Baseline | Mean-rate Poisson | Mengasumsikan setiap tim sekadar mencetak rata-rata jangka panjang keseluruhan, mengabaikan semua fitur. Menjadi lantai yang harus dilampaui yang lain. |
| Statistik | Bivariate Poisson, Negative Binomial | Memodelkan dua jumlah gol secara langsung dengan distribusi probabilitas untuk menghitung kejadian. |
| Bayesian | Bayesian Poisson (MCMC) | Gagasan menghitung yang sama, tetapi mengembalikan rentang ketidakpastian penuh di sekitar setiap estimasi. Jauh lebih menuntut komputasi: kira-kira 100 kali lebih lambat untuk fitting dibanding yang lain. |
| Runtun waktu | SARIMAX | Memperlakukan hasil sebuah tim sebagai deret waktu dan memproyeksikannya ke depan. |
| Pembelajaran mesin | Ridge, Random Forest, XGBoost | Belajar pola langsung dari fitur tanpa berkomitmen pada persamaan tetap. |
| Pembelajaran mendalam | LSTM, 1D CNN | Jaringan saraf yang mencari pola berurutan dan lokal dalam data. |
Bagaimana mereka dinilai
Dengan sepuluh kandidat, memilih pemenang dengan pandangan mata jelas tidak akan berhasil. Sebagai gantinya, setiap model melewati tiga tahap, dan kode yang memutuskan apakah ia maju. Inilah yang dimaksud dengan deployment berbasis kode: model dipromosikan dari satu lingkungan ke lingkungan berikutnya oleh pemeriksaan otomatis alih-alih penyetelan manual, sehingga seluruh seleksi tetap dapat direproduksi dan mudah diaudit.
- Eksperimen. Setiap model hanya dilatih pada pertandingan internasional sebelum Piala Dunia 2022. Tidak semua pertandingan itu dihitung sama: pertandingan yang lebih baru dan berisiko lebih tinggi diberi bobot lebih (pembobotan peluruhan waktu dan pentingnya pertandingan), sehingga hasil kompetitif terbaru membentuk model lebih daripada uji coba lama. Pengaturan setiap model kemudian disetel untuk meminimalkan Poisson negative log-likelihood (NLL) menggunakan cross-validation. NLL hanyalah skor untuk seberapa baik laju gol prediksi cocok dengan gol yang akhirnya dicetak tim, di mana lebih rendah lebih baik. Hasilnya adalah versi terbaik dari setiap model.
- Quality assurance. Model yang telah disetel tersebut kemudian diuji pada pertandingan yang belum pernah mereka lihat: Piala Dunia 2022 plus enam turnamen besar setelahnya (EURO, dua Piala Afrika, Copa América, Piala Asia, dan Gold Cup), total 347 pertandingan. Di sini, metrik berganti ke ranked probability score (RPS), yang mengukur seberapa baik peramalan probabilistik ketika hasil memiliki urutan alami, seperti kalah, seri, menang, dan memberi penghargaan pada keyakinan yang kira-kira ke arah yang benar. Lebih rendah lebih baik lagi. Model terkuat di sini menjadi penantang. RPS adalah tolok ukur yang tepat karena tujuan sebenarnya adalah memprediksi seberapa jauh tim melaju, bukan hanya total gol.
- Deploy. Penantang dibandingkan dengan juara bertahan. Jika menang, ia dipromosikan dan difit ulang pada setiap pertandingan yang tersedia, sehingga memasuki turnamen dengan belajar dari semua data.
Apa yang menang
Jadi pendekatan mana yang keluar sebagai pemenang? Berikut papan peringkat holdout lengkap, dinilai dengan RPS (lebih rendah lebih baik):
| Model | RPS Holdout |
|---|---|
| XGBoost | 0.18289 |
| Bayesian Poisson | 0.18316 |
| Negative Binomial | 0.18373 |
| Bivariate Poisson | 0.18389 |
| Random Forest | 0.18392 |
| SARIMAX | 0.18583 |
| Ridge | 0.18813 |
| LSTM | 0.19299 |
| 1D CNN | 0.20916 |
| Mean-rate Poisson (baseline) | 0.22872 |
Empat hal menonjol dari hasil ini:
- XGBoost menang, tapi tipis. Lima model teratas (XGBoost, Bayesian Poisson, Negative Binomial, Bivariate Poisson, dan Random Forest) finis dalam selisih sekitar 0.0011 RPS satu sama lain. Ketika lima pendekatan yang sangat berbeda berakhir sedekat ini, biasanya artinya plafon ditentukan oleh data dan fitur, bukan model. Di sini, perbedaan Elo melakukan begitu banyak pekerjaan sehingga pilihan model nyaris tidak menggerakkan jarum.
- Satu fitur mendominasi. Perbedaan Elo adalah prediktor paling penting dengan selisih besar, kira-kira seratus kali lebih berpengaruh daripada fitur berikutnya. Itu menenangkan, bukan mengejutkan: dalam satu pertandingan, selisih kekuatan antara dua tim memang sebagian besar ceritanya.
- Pembelajaran mendalam finis terakhir, kecuali baseline. 1D CNN dan LSTM adalah model terlemah selain baseline naif. Dengan hanya sekitar 7.000 pertandingan untuk dipelajari, tidak cukup data untuk memberi makan jaringan dengan begitu banyak parameter; metode klasik jauh lebih mampu menghadapi dataset kecil dan terstruktur.
- Tidak ada tanda overfitting pada model klasik. Biasanya, model tampil sedikit lebih buruk pada data yang tak terlihat dibanding saat pelatihan. Di sini, hampir setiap model (kecuali LSTM) mencetak skor lebih baik pada turnamen holdout daripada pada cross-validation. Alasan yang mungkin adalah sepak bola turnamen lebih dapat diprediksi daripada kalender internasional sehari-hari: taruhannya lebih tinggi, tim lebih kuat dan saling mengenal, dan tempat netral mengurangi sebagian unsur acak.
Untuk turnamen langsung, saya tidak menjalankan semua sepuluh. Saya menjaga daftar lebih kecil: baseline mean-rate sebagai titik referensi, plus tiga performer terbaik. XGBoost dan Bayesian Poisson menempati dua posisi teratas.
Peringkat ketiga pada dasarnya seri: Negative Binomial dan Bivariate Poisson finis dalam selisih 0.0002 RPS dan saling bertukar posisi tergantung seed acak, jadi di antara dua model yang tidak dapat dibedakan secara statistik, saya memilih Bivariate Poisson, yang formulanya memiliki pijakan lebih kuat dalam literatur prediksi sepak bola (Karlis dan Ntzoufras, 2004).
Itu menyisakan daftar XGBoost (pembelajaran mesin), Bivariate Poisson (statistik klasik), dan Bayesian Poisson (inferensi Bayesian). Bagian berikut membahas bagaimana model-model tersebut berjalan, melatih ulang, dan mengubah prediksi satu pertandingan menjadi prakiraan turnamen penuh.
Membawanya ke Produksi
Model yang hidup di notebook hanya berguna saat Anda duduk di depannya. Untuk memprediksi pertandingan sepanjang turnamen sebulan, semuanya harus berjalan sendiri: menarik hasil baru, melatih ulang, mensimulasikan ulang, dan menyegarkan prakiraan tanpa ada yang menyentuhnya. Itulah tugas pipeline.
Pipeline dua jam sekali di GCP
Seluruh proyek berjalan sebagai satu pekerjaan terjadwal di Google Cloud Run. Sebelum turnamen, ia bangun sekali sehari; mulai laga pembuka pada 11 Juni, ia berjalan setiap dua jam. Setiap run mengikuti siklus yang sama:
- Memeriksa data baru. Jika tidak ada pertandingan yang selesai sejak run terakhir, tidak ada yang perlu dilakukan, dan job keluar lebih awal.
- Ingest dan bangun ulang. Saat hasil baru masuk, hasil tersebut diambil dari sumber data, dan satu
dvc repromembangun ulang lapisan Silver dan Gold agar fitur terkini. - Latih ulang, prediksi, simulasi. Model dalam daftar diperbarui (lebih lanjut tentang ini sebentar lagi), setiap pertandingan mendatang diprediksi, dan turnamen penuh disimulasikan.
- Skor. Setelah pertandingan tuntas, prediksi yang dibuat untuknya dinilai, yang memberi makan pemantauan yang dijelaskan di bawah.
Karena setiap langkah dipicu oleh kode sesuai jadwal, tidak ada penekanan tombol manual selama turnamen. Hasil baru masuk, prakiraan segar keluar.
Dua mode: beku vs. per putaran
Di sinilah proyek ini juga berfungsi sebagai eksperimen. Selama turnamen, daftar model berjalan dalam dua mode paralel, dan perbedaan di antara keduanya adalah pertanyaan yang saya harap bisa dijawab dari data: Apakah melatih ulang seiring jalannya turnamen membuat prediksi lebih baik?
- Beku. Model dikunci saat turnamen dimulai dan tidak pernah dilatih ulang. Mereka tetap merespons hasil, karena setiap simulasi dimulai dari bagan yang diperbarui, tetapi parameter modelnya sendiri tidak berubah.
- Per putaran. Hyperparameter (pengaturan tingkat tinggi) tetap, tetapi parameter yang dipelajari model difit ulang pada semua data yang tersedia setelah setiap matchday grup dan setiap babak gugur, sehingga model terus belajar dari turnamen saat berlangsung.
Menjalankan keduanya berdampingan memungkinkan saya membandingkan di dua sisi setelah selesai: akurasi prediktif mentah, dan seberapa cepat ketidakpastian masing-masing menyempit saat kontestan berkurang. Jika per putaran menang, pelatihan ulang reguler terbukti berfaedah; jika beku tetap setara, mesin tambahan itu mungkin tidak sepadan.
Dari prediksi ke turnamen: simulasi Monte Carlo
Memprediksi satu pertandingan adalah satu hal. Mengubahnya menjadi "berapa peluang tiap tim menjuarai turnamen" adalah tugas simulasi Monte Carlo.
Pertama, inferensi. Alih-alih hanya memprediksi jadwal yang sudah kita tahu, model memprediksi setiap kemungkinan pasangan di antara 48 tim. Kedengarannya berlebihan, tetapi dalam turnamen, tim mana pun bisa bertemu tim mana pun di fase gugur, jadi prediksi harus siap untuk tiap pasangan.
Selanjutnya, aturan harus dikodekan, dan format 2026 membuatnya sangat rumit. Di 12 grup, dua teratas lolos otomatis, tapi delapan tim peringkat ketiga terbaik juga lolos, dan slot fase gugur yang didapat masing-masing dari delapan tim itu bergantung pada asal grup mereka.
Ada 495 cara memilih delapan grup yang meloloskan tim peringkat ketiga dari dua belas (dua belas pilih delapan), dan masing-masing menghasilkan pasangan babak 32 besar yang berbeda. Tidak ada rumus bersih; FIFA hanya menerbitkan tabelnya. Jadi saya (atau lebih tepatnya rekan saya yang sangat mumpuni, Cursor) meng-hardcode semua 495 kombinasi ke dalam pemetaan, menggunakan tabel resmi sebagai sumber.
"best_third_mappings": {
"EFGHIJKL": {
"74": "3F",
"77": "3G",
"79": "3E",
"80": "3K",
"81": "3I",
"82": "3H",
"85": "3J",
"87": "3L"
},
"DFGHIJKL": ...
Setiap key, seperti EFGHIJKL, mencantumkan delapan grup mana yang memasok tim peringkat ketiga yang lolos, dan nilainya menempatkan masing-masing tim tersebut (3E, 3F, dan seterusnya) ke nomor pertandingan babak 32 besar tertentu. Itu satu entri; pemetaan lengkap mengulanginya 495 kali, sekali per kombinasi.
Tiga negara tuan rumah (Amerika Serikat, Kanada, dan Meksiko) mendapat penanganan tambahan. Ketika tuan rumah memainkan pertandingan yang digelar di negaranya sendiri, simulasi menerapkan penyesuaian keuntungan kandang untuk laga tersebut, sementara sisa turnamen diperlakukan sebagai tempat netral.
Dengan prediksi dan aturan siap, simulasi menjalankan seluruh turnamen 10.000 kali. Di setiap run, prosedurnya sebagai berikut:
- Mengundi skor untuk setiap pertandingan dengan menyampling gol kandang dan tandang dari distribusi yang diprediksi model
- Memainkan fase grup mengikuti aturan poin dan tiebreak yang sebenarnya
- Menetapkan tabel peringkat ketiga terbaik
- Mengisi bagan gugur dari pemetaan di atas
- Memainkan hingga tersisa satu juara.
Di sepanjang 10.000 turnamen tersimulasi, porsi run di mana sebuah tim mencapai final, atau mengangkat trofi, menjadi probabilitas tim tersebut. Satu run adalah tebakan; sepuluh ribu run adalah prakiraan.
Melacak semuanya dengan MLflow
Setiap run yang dijelaskan sejauh ini, di kedua mode, dicatat ke MLflow (di-host di DagsHub). Pelacakan eksperimen berarti mencatat secara sistematis input, pengaturan, hasil, dan keluaran dari setiap run, sehingga semuanya dapat dibandingkan satu sama lain atau direproduksi persis. Beberapa hal yang ditangkap layak disoroti:
- Reproduksibilitas. Simulasi menggunakan seed acak tetap yang diturunkan dari babak turnamen, dan seed yang sama dibagikan oleh mode beku dan per putaran. Artinya perbedaan apa pun di antara keduanya berasal dari model itu sendiri, bukan dari keberuntungan undian di dalam simulasi. Setiap run juga mencatat snapshot data persis yang dilihatnya (jumlah baris Gold dan stempel waktu), sehingga hasil selalu bisa ditelusuri kembali ke inputnya.
- Eksperimen. Setiap run diberi tag dengan modenya (beku atau per putaran) dan tahapannya dalam siklus hidup, dari eksperimental dan QA hingga inferensi langsung dan refit, mencerminkan alur promosi dari bagian sebelumnya.
- Perbandingan. RPS holdout dicatat sebagai metrik seleksi, beserta referensi ke run juara saat ini untuk garis keturunan. Waktu fitting juga direkam, di sinilah pelatihan model Bayesian yang sekitar 100 kali lebih lambat terlihat hitam di atas putih.
Model yang dilatih dan berkas prediksi itu sendiri (probabilitas turnamen, klasemen grup, dan prakiraan pertandingan) disimpan sebagai artefak run, dan berkas-berkas itulah yang dibaca oleh dasbor langsung. Ini menutup loop: dari hasil mentah, melalui pelatihan dan simulasi, hingga angka yang dapat Anda lihat secara online.
Memantau drift
Bagian terakhir berjalan setelah pertandingan tuntas. Saat hasil nyata masuk, prediksi yang dibuat untuknya dinilai dan dibandingkan dengan baseline mean-rate sederhana. Jika model penuh mulai kalah dari model yang tidak tahu apa-apa tentang tim, itu adalah tanda peringatan drift: pola yang dipelajari sebelum turnamen mungkin tidak lagi cocok dengan yang terjadi di lapangan.
Mengawasi hal ini adalah praktik standar untuk sistem apa pun yang membuat prediksi langsung, dan Anda dapat membaca lebih lanjut tentang bagaimana hal itu dideteksi dalam panduan ini tentang data drift dan model drift.
Jadi, Siapa yang Menjuarai Piala Dunia?
Setelah semua mesin itu, inilah tujuannya.
Para favorit
Per 10 Juni 2026, sehari sebelum laga pembuka, putusan model jelas di puncak dan ramai tepat di belakangnya. Spanyol dan Argentina memimpin, masing-masing sekitar 16% peluang mengangkat trofi. Fakta bahwa juara dunia bertahan (Argentina) dan juara Eropa bertahan (Spanyol) berada di puncak adalah pemeriksaan kewarasan yang menenangkan bahwa model berpijak pada realitas.
Di belakang mereka ada pengejar ketat: Prancis, Inggris, Brasil, dan Kolombia melengkapi para kandidat juara paling mungkin. Angka-angka ini bersifat live, dan akan bergerak begitu hasil nyata mulai berdatangan, jadi perlakukan sebagai cuplikan 10 Juni, bukan ramalan tetap. Dasbor selalu menampilkan angka terkini, dengan jeda maksimal dua jam.
Dasbor langsung
Ngomong-ngomong: Setiap angka dalam artikel ini berasal dari aplikasi Streamlit live yang memperbarui otomatis saat pipeline berjalan. Anda dapat membukanya di wc2026-predictions.streamlit.app dan mengikuti sepanjang turnamen. Ada empat tampilan utama:
- Gambaran turnamen: seberapa jauh setiap tim diperkirakan melaju, sekilas.
- Klasemen grup: untuk setiap grup, probabilitas setiap tim finis pertama, kedua, ketiga (terbagi antara peringkat ketiga-lolos versus ketiga-gagal, berkat aturan peringkat ketiga terbaik), atau keempat.
- Prediksi pertandingan: untuk setiap laga grup, peluang kemenangan kandang, seri, atau kemenangan tandang, beserta bagan gugur paling mungkin.
- Pasangan gugur paling umum: pasangan yang paling sering dihasilkan simulasi.
Satu hal unik yang perlu dicatat di tampilan pertandingan: beberapa tim muncul pada dua kemungkinan slot babak 32 besar sekaligus. Itu bukan bug. Ini terjadi ketika sebuah grup begitu seimbang sehingga model tidak dapat dengan percaya diri menentukan posisi kualifikasi tim. Dikombinasikan dengan ketidakpastian peringkat ketiga terbaik, dua hasil tersebut mengarah ke slot gugur yang berbeda. Dalam kasus Turki, ini bahkan menyebabkan mereka muncul dua kali di babak 16 besar.
Gambar berikut menunjukkan babak akhir (perempat final hingga final) yang diproyeksikan model XGBoost sebelum kick-off turnamen:

Tim lempar koin: Amerika Serikat
Asyiknya model seperti ini terletak pada tim-tim yang menentang penilaian kasat mata, dan contoh paling jelas adalah Amerika Serikat. Jika Anda membuka gambaran turnamen di dasbor, Anda akan langsung melihat AS menonjol dalam warna.
Sebagai tuan rumah bersama yang bermain di depan pendukungnya, Anda mungkin berharap awal yang nyaman, tetapi model jauh lebih berhati-hati: model hanya memberi mereka sekitar 54,6% peluang lolos dari grup, ke-13 terendah di seluruh peserta (ingat bahwa dua pertiga tim lolos!), karena grup mereka dengan Australia, Paraguay, dan Turki sangat seimbang.
Bagian menariknya adalah apa yang terjadi setelahnya. Setelah lolos susah payah, AS kemudian berada di sekitar peluang lempar koin di setiap babak berikutnya. Menumpuk lempar koin itu menghasilkan sekitar 2% peluang menjuarai seluruh turnamen, yang merupakan ke-13 tertinggi dari 48 tim.
Tim yang berada di peringkat ke-13 dari bawah untuk lolos grup dan ke-13 dari atas untuk menjuarai turnamen adalah definisi sempurna dari tim lempar koin: tak pernah jadi favorit, tak pernah benar-benar tersisih.
Penutup
Proyek ini memerlukan banyak kerja, dan cakupannya jauh lebih luas daripada yang bisa ditampung satu artikel. Repo berisi banyak hal yang tidak masuk di sini: seluruh set model kandidat, rekayasa fitur, dan orkestrasi yang menjaga semuanya tetap berjalan adalah beberapa contohnya.
Untuk saat ini, model sudah membuat pilihannya, dan turnamenlah yang akan menilai. Baik Anda datang untuk MLOps atau sepak bolanya, saya harap Anda menikmati menontonnya seperti saya. Anda dapat mengikuti prakiraan langsung saat pertandingan bergulir dan melihat seberapa baik prediksinya bertahan.
Jika Anda ingin melihat lebih dekat beberapa konsep yang saya sebutkan, saya sarankan mengambil kursus MLOps Concepts kami.
Tom adalah seorang ilmuwan data dan pendidik teknis. Ia menulis dan mengelola tutorial serta artikel blog ilmu data DataCamp. Sebelumnya, Tom bekerja di bidang ilmu data di Deutsche Telekom.

