course
E greu să prezici fotbalul. Este un sport cu puține goluri, în care un șut deviat poate întoarce rezultatul, iar o bună parte din orice meci ține de noroc. Fotbalul internațional e și mai dificil: echipele naționale joacă doar câteva partide oficiale pe an, așa că există mult mai puține date din care să înveți decât în ligile de club.
Și, dacă nu era destul, FIFA a îngreunat și mai mult sarcina pentru Cupa Mondială din acest an. Turneul extins la 48 de echipe introduce un format nou în care primele două din fiecare dintre cele douăsprezece grupe avansează, împreună cu opt dintre cele mai bune douăsprezece echipe clasate pe locul trei, ceea ce face ca soarta din grupe să fie imprevizibilă. Cum îmi plac provocările (și fotbalul), fix asta mi-am propus să prezic.
Acesta este un follow-up la proiectul meu de predicție pentru EURO 2024, reconstruit aproape de la zero. Data trecută am lucrat exclusiv în notebook-uri Jupyter și am prezis un singur scor cel mai probabil pentru fiecare meci. De data aceasta, am construit o conductă MLOps cap la cap care preia rezultate noi, se reantrenează singură și rulează o simulare Monte Carlo a întregului turneu de 10.000 de ori, transformând predicțiile la nivel de meci în probabilități pentru cât de departe ajunge fiecare echipă.
În acest articol, te voi ghida la nivel înalt prin proiect: datele și caracteristicile, practicile MLOps care îl mențin reproductibil, arhitectura conductei și care model ajunge să prezică cel mai bine fotbalul de echipe naționale. Poți găsi codul complet în repo-ul proiectului. Și, desigur, îți voi spune pe cine crede modelul că va câștiga. (Spoiler: îi plac Spania și Argentina, cam 16% fiecare, dar partea interesantă e cum ajunge acolo.)
Dacă ți-am deschis apetitul pentru turneu, îți recomand să urmărești săptămâna noastră Data & AI World Cup, o serie de sesiuni despre cum datele și AI-ul schimbă fotbalul, gratuit de urmărit live sau la cerere.
Pe scurt
- Aceasta este o conductă MLOps cap la cap care prezice Cupa Mondială FIFA 2026, preluând rezultate internaționale noi și reantrenându-se automat pe Google Cloud, din două în două ore în timpul turneului.
- Datele de la API-Football și ratingurile Elo sunt procesate printr-o arhitectură medallion Bronze-Silver-Gold și versiunate cu DVC pentru reproductibilitate deplină.
- Zece modele din cinci familii au fost comparate pe un set de 347 de meciuri păstrate pentru test; XGBoost a câștigat la limită, primele cinci au fost aproape nedespărțite, iar diferența Elo dintre echipe face cea mai mare parte din munca predictivă.
- O simulare Monte Carlo joacă întregul turneu de 10.000 de ori, transformând predicțiile de goluri la nivel de meci în șansele fiecărei echipe de a avansa și de a câștiga.
- Pe 10 iunie 2026, favoritele modelului sunt Spania și Argentina, la aproximativ 16% fiecare. Predicțiile live pot fi urmărite pe un dashboard Streamlit care se actualizează la fiecare două ore.
Datele din spatele predicțiilor
O predicție e la fel de bună ca ceea ce intră în ea, așa că merită să începem cu materiile prime. Modelul învață din două surse de date live și le transformă într-un singur tabel ordonat de caracteristici.
De unde vin datele
Totul e construit din două locuri. API-Football furnizează programările și statisticile per meci: cine cu cine a jucat, când, unde și cum s-a încheiat. eloratings.net furnizează ratinguri Elo pentru fiecare echipă națională.
Un rating Elo este un număr unic care surprinde cât de puternică este o echipă. Fiecare echipă se află undeva pe scară, iar după fiecare meci ratingul se actualizează: bați o echipă mai tare și câștigi mult; pierzi cu una mai slabă și scazi abrupt. Ideea vine din șah și se potrivește bine la fotbal. Dacă vrei toată intuiția, acest articol DataCamp mai vechi o explică în contextul Cupei Mondiale 2022.
Împreună, cele două surse oferă un set de date Gold de aproximativ 6.900 de meciuri internaționale din 2018 încoace din care să înveți.
Ce prezice modelul
Iată prima alegere de design importantă. În loc să prezică direct rezultatul ca victorie, egal sau înfrângere, modelul prezice ceva mai granular: numărul de goluri marcate de fiecare echipă într-un meci. Numărul de goluri în fotbal urmează, aproximativ, o distribuție Poisson, modul standard de a modela cât de des se întâmplă un eveniment relativ rar într-o fereastră fixă de timp.
Predictia golurilor, nu a rezultatelor, face posibil tot ce urmează. Odată ce modelul poate produce un scor plauzibil pentru orice duel, întrebările care chiar îi interesează pe toți, cine iese din grupe și cine ridică trofeul, pot fi răspunse simulând acele scoruri de mii de ori.
Caracteristicile care contează
Fiecare meci este descris de un set mic, atent ales, de caracteristici:
- Diferența Elo: distanța de rating dintre cele două echipe. Aceasta este, de departe, cea mai importantă caracteristică din model, cu o importanță aproximativ două ordine de mărime peste următoarea. Se potrivește cu intuiția, deoarece diferența de forță dintre cele două echipe îți spune mai multe despre rezultatul probabil decât aproape orice altceva.
- Suma Elo: cele două ratinguri adunate, un substitut pentru calitatea generală a meciului. Diferența singură nu poate deosebi Argentina vs. Spania de San Marino vs. Andorra, două partide echilibrate la niveluri complet diferite, iar suma restabilește acea informație.
- Schimbarea Elo rulantă (ultimele 5 meciuri): cât de mult s-a modificat recent ratingul fiecărei echipe. Aceasta surprinde forma, ținând deja cont de forța adversarilor întâlniți.
- Goluri marcate și primite rulante (ultimele 5 meciuri): producția ofensivă și defensivă recentă în termeni absoluți, calculată pentru fiecare echipă.
- Contextul meciului: nivelul competiției (un meci de Cupă Mondială are altă greutate față de un calificativ sau un meci din Nations League), dacă meciul e eliminatoriu și dacă se joacă pe teren neutru.
Fiecare caracteristică este strict sigură din perspectiva scurgerii de informații, adică folosește doar informații disponibile înainte de fluierul de start. Sună evident, dar este unul dintre cele mai ușoare moduri de a construi din greșeală un model care arată strălucit la testare și se prăbușește în lumea reală.
O idee care nu a trecut de selecție: plănuisem un set de caracteristici de „stil de joc” construite prin clusterizarea echipelor din statisticile lor in-game, un pas de învățare nesupravegheată. În practică, echipele nu s-au separat în grupuri semnificative, așa că, în loc să hrănesc modelul cu zgomot, am renunțat. Rezultatele negative tot rezultate sunt.
Păstrarea datelor reproductibile
Cu date care sosesc din două surse în mod continuu, drumul de la fișiere brute la caracteristici gata de modelare trebuie să fie identic de fiecare dată. Asta oferă o arhitectură medallion. Ea organizează datele în trei straturi:
- Bronze: datele brute, exact cum sosesc, lăsate neatinse.
- Silver: curățate și standardizate. Aici mapez numele echipelor între cele două surse (rareori se pun de acord asupra ortografiei), validez schema, alipesc ratingurile Elo la înregistrările de meci și gestionez orice lipsă sau neconformitate.
- Gold: stratul de modelare, un rând ordonat per meci cu fiecare caracteristică calculată și gata de antrenare.
Fiecare strat îl alimentează pe următorul, astfel încât, când ceva pare în neregulă, pot urmări înapoi, etapă cu etapă, în loc să descurc totul deodată. Pentru a face întregul parcurs reproductibil, folosesc DVC (Data Version Control). Ori de câte ori apar rezultate noi, un singur dvc repro reconstruiește straturile Silver și Gold din Bronze, reluând un pas doar dacă intrările lui s-au schimbat, și versionează seturile de date rezultate, astfel încât orice stare anterioară poate fi refăcută exact.
Alegerea celui mai bun model
Predictia golurilor este o problemă bine studiată și nu există un singur instrument evident pentru ea. Așa că, în loc să mă angajez din start într-o singură abordare, am construit zece și le-am lăsat să concureze.
Concurenții
Cele zece modele acoperă cinci familii plus un reper simplu. Nu trebuie să știi mecanica internă a fiecăruia; ideea e că pornesc de la presupuneri foarte diferite despre cum apar golurile.
| Familie | Modele | Ideea de bază |
|---|---|---|
| Reper | Poisson cu rată medie | Presupune că fiecare echipă marchează pur și simplu o medie pe termen lung, ignorând toate caracteristicile. Un prag pe care celelalte să-l depășească. |
| Statistic | Poisson bivariată, Binomială negativă | Modelează direct cele două numărări de goluri cu distribuții de probabilitate construite pentru evenimente rare. |
| Bayesian | Poisson Bayesian (MCMC) | Aceeași idee de numărare, dar returnează un interval complet de incertitudine în jurul fiecărei estimări. Mult mai solicitant de calculat: de aproximativ 100 de ori mai lent de antrenat decât restul. |
| Serii de timp | SARIMAX | Tratează rezultatele unei echipe ca o secvență în timp și proiectează acea secvență în viitor. |
| Machine learning | Ridge, Random Forest, XGBoost | Învață tipare direct din caracteristici fără a se angaja într-o ecuație fixă. |
| Deep learning | LSTM, CNN 1D | Rețele neuronale care caută tipare secvențiale și locale în date. |
Cum au fost notate
Cu zece candidați, alegerea unui câștigător „după ochi” nu avea cum să meargă. În schimb, fiecare model trece prin trei etape, iar codul decide dacă merge mai departe. Asta înseamnă deployment bazat pe cod: modelele sunt promovate dintr-un mediu în altul prin verificări automate, nu prin reglaje manuale, astfel încât întregul proces de selecție rămâne reproductibil și ușor de auditat.
- Experiment. Fiecare model este antrenat doar pe meciuri internaționale jucate înainte de Cupa Mondială 2022. Nu toate acele meciuri cântăresc la fel: partidele mai recente și cele cu miză mai mare primesc o pondere mai mare (pondere cu decădere în timp și importanța meciului), astfel încât un rezultat competitiv recent influențează modelul mai mult decât un amical vechi. Apoi hiperparametrii fiecărui model sunt reglați pentru a minimiza Poisson negative log-likelihood (NLL) folosind cross-validation. NLL este doar un scor pentru cât de bine se potrivesc ratele de gol prezise cu golurile pe care echipele le-au marcat, unde mai mic e mai bun. Rezultatul este cea mai bine reglată versiune a fiecărui model.
- Asigurarea calității. Modelele reglate sunt apoi testate pe meciuri pe care nu le-au văzut: Cupa Mondială 2022 plus șase turnee majore ținute de atunci (EURO, două Cupe ale Africii pe Națiuni, Copa América, Cupa Asiei și Gold Cup), în total 347 de meciuri. Aici, metrul se schimbă în ranked probability score (RPS), care măsoară cât de bună e o prognoză probabilistică atunci când rezultatele au o ordine naturală, precum înfrângere, egal, victorie, și recompensează încrederea în direcția corectă. Din nou, mai mic e mai bun. Cel mai puternic model aici devine challenger-ul. RPS este unitatea potrivită, deoarece scopul real este să prezici cât de departe merg echipele, nu doar totalurile de goluri.
- Deploy. Challenger-ul este comparat cu campionul en-titre. Dacă învinge, este promovat și reantrenat pe toate meciurile disponibile, astfel încât intră în turneu învățat din toate datele.
Ce a câștigat
Așadar, care abordare a ieșit în top? Iată clasamentul complet pe holdout, punctat prin RPS (mai mic e mai bun):
| Model | RPS holdout |
|---|---|
| XGBoost | 0.18289 |
| Poisson Bayesian | 0.18316 |
| Binomială negativă | 0.18373 |
| Poisson bivariată | 0.18389 |
| Random Forest | 0.18392 |
| SARIMAX | 0.18583 |
| Ridge | 0.18813 |
| LSTM | 0.19299 |
| CNN 1D | 0.20916 |
| Poisson cu rată medie (reper) | 0.22872 |
Patru lucruri ies în evidență din aceste rezultate:
- XGBoost a câștigat, dar la limită. Primele cinci modele (XGBoost, Poisson Bayesian, Binomială negativă, Poisson bivariată și Random Forest) au terminat la o distanță de circa 0,0011 RPS unul de altul. Când cinci abordări foarte diferite ajung atât de aproape, de obicei plafonul este stabilit de date și caracteristici, nu de model. Aici, diferența Elo face atât de mult din treabă încât alegerea modelului abia mișcă acul.
- O caracteristică domină. Diferența Elo a fost cel mai important predictor la mare distanță, de aproximativ o sută de ori mai influentă decât următoarea caracteristică. E mai degrabă liniștitor decât surprinzător: într-un singur meci, diferența de forță dintre două echipe chiar reprezintă cea mai mare parte a poveștii.
- Deep learning a ieșit pe ultimele locuri, în afară de reper. CNN 1D și LSTM au fost cele mai slabe modele în afară de reperul naiv. Cu doar aproximativ 7.000 de meciuri din care să înveți, pur și simplu nu există suficiente date pentru a hrăni rețele cu atât de mulți parametri; metodele clasice se descurcă mult mai bine cu seturi de date mici și structurate.
- Fără semne de overfitting la modelele clasice. În mod normal, un model performează puțin mai slab pe date nevăzute decât în antrenare. Aici, aproape fiecare model (cu excepția LSTM) a punctat mai bine pe turneele păstrate decât în cross-validation. Motivul probabil este că fotbalul de turneu e mai previzibil decât calendarul internațional obișnuit: mize mai mari, echipe mai puternice și mai familiare și terenuri neutre reduc din aleatoriu.
Pentru turneul live, nu rulez toate cele zece. Păstrez un lot mai mic: reperul cu rată medie ca punct de referință, plus cei trei performeri de top. XGBoost și Poisson Bayesian ocupă primele două locuri clar.
Locul trei e practic la egalitate: Binomiala negativă și Poisson bivariată termină la mai puțin de 0,0002 RPS una de alta și își schimbă locurile în funcție de seed-ul aleator, așa că, între două modele statistic nedistincte, am ales Poisson bivariată, a cărei formulare are o bază mai solidă în literatura de predicție în fotbal (Karlis și Ntzoufras, 2004).
Asta lasă un lot cu XGBoost (machine learning), Poisson bivariată (statistică clasică) și Poisson Bayesian (inferință bayesiană). Următoarea secțiune acoperă cum rulează aceste modele, cum se reantrenează și cum transformă predicțiile de meci într-o prognoză completă de turneu.
Punerea în producție
Un model care trăiește într-un notebook e util doar cât timp stai în fața lui. Ca să prezici meciuri de-a lungul unui turneu de o lună, totul trebuie să ruleze de la sine: să preia rezultate noi, să se reantreneze, să resimuleze și să reîmprospăteze prognoza fără intervenție. Asta e treaba conductei.
Conducta bi-orară pe GCP
Întregul proiect rulează ca un job programat pe Google Cloud Run. Înainte de turneu, se trezește o dată pe zi; din meciul de deschidere, pe 11 iunie, rulează din două în două ore. Fiecare rulare urmează același ciclu:
- Verifică date noi. Dacă nu s-au încheiat meciuri de la ultima rulare, nu e nimic de făcut, iar jobul se oprește devreme.
- Ingestie și reconstrucție. Când au apărut rezultate noi, sunt preluate din surse, iar un singur
dvc reproreconstruiește straturile Silver și Gold ca să aducă caracteristicile la zi. - Reantrenare, predicție, simulare. Modelele din lot sunt aduse la zi (mai multe imediat), fiecare meci viitor e prezis, iar turneul complet e simulat.
- Scorare. Odată ce un meci s-a decis, predicțiile făcute pentru el sunt notate, ceea ce alimentează monitorizarea descrisă mai jos.
Pentru că fiecare pas e declanșat de cod pe un program, nu există butoane apăsate manual în timpul turneului. Rezultat nou intră, prognoză reîmprospătată iese.
Două moduri: înghețat vs. per-rundă
Aici proiectul joacă și rolul unui experiment. În timpul turneului, lotul rulează în două moduri paralele, iar diferența dintre ele e întrebarea la care sper să răspund din date: Face reantrenarea pe parcurs predicțiile mai bune?
- Înghețat. Modelele sunt blocate în momentul startului turneului și nu se mai reantrenează. Ele tot răspund la rezultate, deoarece fiecare simulare pornește de la tabloul actualizat, dar parametrii modelului în sine nu se schimbă niciodată.
- Per-rundă. Hiperparametrii (setările de nivel înalt) rămân fixați, dar parametrii pe care modelul îi învață sunt refăcuți pe toate datele disponibile după fiecare etapă completă din grupe și după fiecare rundă eliminatorie, astfel încât modelele continuă să învețe din turneu pe măsură ce acesta se desfășoară.
Rulându-le în paralel, le pot compara pe două fronturi după ce se termină: acuratețe predictivă brută și cât de repede se rezolvă incertitudinea fiecăruia pe măsură ce câmpul se îngustează. Dacă per-rundă câștigă, reantrenarea regulată își justifică existența; dacă înghețatul se ține bine, poate că mecanismul în plus nu merită.
De la predicții la un turneu: simularea Monte Carlo
Predicția unui singur meci e una. Transformarea ei în „care e șansa fiecărei echipe de a câștiga turneul” e treaba simulării Monte Carlo.
Mai întâi, inferența. În loc să prezică doar meciurile pe care le știm deja, modelul prezice fiecare duel posibil între cele 48 de echipe. Sună excesiv, dar într-un turneu, orice echipă poate întâlni pe oricare alta în fazele eliminatorii, așa că o predicție trebuie să fie gata pentru fiecare pereche.
Apoi, regulile trebuie codificate, iar formatul din 2026 face asta deosebit de dificil. În cele 12 grupe, primele două avansează automat, dar la fel și cele mai bune opt echipe de pe locul trei, iar în ce poziție din tabloul eliminatoriu ajunge fiecare dintre aceste opt depinde de grupele din care au venit.
Există 495 de moduri de a alege opt grupe calificate din douăsprezece (douăsprezece luate câte opt), iar fiecare produce un set diferit de meciuri în 16-imi. Nu există o formulă elegantă; FIFA publică pur și simplu un tabel. Așa că eu (sau mai degrabă colegul meu foarte capabil, Cursor) am hardcodat toate cele 495 de combinații într-un mapping, folosind tabelul oficial ca sursă.
"best_third_mappings": {
"EFGHIJKL": {
"74": "3F",
"77": "3G",
"79": "3E",
"80": "3K",
"81": "3I",
"82": "3H",
"85": "3J",
"87": "3L"
},
"DFGHIJKL": ...
Fiecare cheie, precum EFGHIJKL, enumeră grupele din care au venit echipele de pe locul trei care au avansat, iar valorile plasează fiecare dintre acele echipe (3E, 3F etc.) într-un anumit număr de meci din 16-imi. Aceasta e o intrare; mappingul complet repetă asta de 495 de ori, câte o dată pentru fiecare combinație.
Cele trei națiuni gazdă (Statele Unite, Canada și Mexic) primesc un tratament suplimentar. Când o gazdă joacă un meci disputat în propria țară, simularea aplică un ajustaj de avantaj al terenului propriu pentru acea partidă, în timp ce restul turneului e tratat ca teren neutru.
Cu predicțiile și regulile la locul lor, simularea rulează întregul turneu de 10.000 de ori. La fiecare rulare, urmează această procedură:
- Extrage un scor pentru fiecare meci eșantionând golurile gazdelor și oaspeților din distribuțiile prezise de model
- Joacă faza grupelor conform regulilor reale de punctaj și departajare
- Rezolvă tabelul celor mai bune locuri trei
- Completează tabloul eliminatoriu folosind mappingurile de mai sus
- Joacă până la un singur campion.
Pe parcursul a 10.000 de turnee simulate, ponderea rulărilor în care o echipă ajunge în finală sau ridică trofeul devine probabilitatea acelei echipe. O rulare e o ghicire; zece mii de rulări sunt o prognoză.
Urmărirea totul cu MLflow
Fiecare rulare descrisă până acum, în ambele moduri, este jurnalizată în MLflow (găzduit pe DagsHub). Trackingul experimentelor înseamnă înregistrarea sistematică a intrărilor, setărilor, rezultatelor și ieșirilor fiecărei rulări, astfel încât oricare dintre ele să poată fi comparată cu altele sau reprodusă exact. Câteva lucruri pe care le surprinde merită menționate:
- Reproductibilitate. Simularea folosește un seed aleator fix derivat din runda turneului, iar același seed este împărțit de modurile înghețat și per-rundă. Asta înseamnă că orice diferență dintre ele vine din modelele în sine, nu din norocul extragerilor din simulare. Fiecare rulare înregistrează și snapshotul exact de date pe care l-a văzut (numărul de rânduri Gold și un timestamp), astfel încât rezultatele pot fi mereu urmărite până la intrări.
- Experimentul. Fiecare rulare este etichetată cu modul său (înghețat sau per-rundă) și cu etapa din ciclul de viață, de la experimental și QA până la rulările live de inferență și refit, oglindind fluxul de promovare din secțiunea anterioară.
- Comparație. RPS pe holdout este jurnalizat ca metric de selecție, împreună cu o referință la rularea campion curentă pentru filiație. Timpul de antrenare este înregistrat, acolo unde antrenarea modelului bayesian, de circa 100 de ori mai lentă, apare negru pe alb.
Modelele antrenate și chiar fișierele de predicție (probabilitățile pe turneu, clasamentele pe grupe și prognozele pe meci) sunt stocate ca artefacte ale rulărilor, iar aceste fișiere sunt exact ceea ce citește dashboardul live. Asta închide bucla: de la rezultate brute, prin antrenare și simulare, până la cifrele pe care le poți vedea online.
Monitorizare pentru drift
Ultima piesă rulează odată ce meciurile se încheie. Pe măsură ce sosesc rezultate reale, predicțiile făcute pentru ele sunt notate și comparate cu reperul simplu cu rată medie. Dacă modelele complete încep să piardă teren în fața unui model care nu știe nimic despre echipe, asta e un semn de avertizare de drift: tiparele învățate înainte de turneu s-ar putea să nu mai corespundă cu ce se întâmplă pe teren.
Supravegherea acestui lucru este o practică standard pentru orice sistem care face predicții live și poți citi mai multe despre cum este detectat în acest ghid despre data drift și model drift.
Deci, cine câștigă Cupa Mondială?
După toată această mașinărie, iată la ce folosește.
Favoritele
Pe 10 iunie 2026, cu o zi înainte de meciul de deschidere, verdictul modelului este clar în vârf și aglomerat imediat în spate. Spania și Argentina conduc plutonul, fiecare cu aproximativ 16% șanse de a ridica trofeul. Faptul că actuala campioană mondială (Argentina) și actuala campioană europeană (Spania) ies în top este o verificare reconfortantă că modelul e ancorat în realitate.
În spatele lor e un grup strâns de urmăritoare: Franța, Anglia, Brazilia și Columbia completează lista celor mai probabile câștigătoare. Acestea sunt cifre live și se vor mișca din clipa în care încep să apară rezultate reale, așa că tratează-le ca un instantaneu din 10 iunie, nu ca o profeție fixă. Dashboardul arată întotdeauna cifrele curente, cu o întârziere maximă de două ore.
Dashboardul live
Apropo: Fiecare număr din acest articol provine dintr-o aplicație Streamlit live, care se actualizează automat pe măsură ce rulează conducta. O poți deschide la wc2026-predictions.streamlit.app și poți urmări turneul. Are patru vizualizări principale:
- Prezentare generală a turneului: până unde se așteaptă să ajungă fiecare echipă, dintr-o privire.
- Clasamente pe grupe: pentru fiecare grupă, probabilitatea fiecărei echipe de a termina pe primul, al doilea, al treilea (împărțit în locul trei-și-merge-mai-departe versus locul trei-și-afară, datorită regulii celor mai bune locuri trei) sau al patrulea loc.
- Predicții pe meci: pentru fiecare meci din grupe, șansa de victorie acasă, egal sau victorie în deplasare, împreună cu cel mai probabil tablou eliminatoriu.
- Cele mai frecvente dueluri eliminatorii: perechile pe care simularea le produce cel mai des.
Un detaliu de semnalat în vizualizarea de meci: câteva echipe apar simultan în două posibile poziții din 16-imi. Nu e un bug. Se întâmplă când o grupă e atât de echilibrată încât modelul nu poate spune cu încredere ce poziție calificată va lua o echipă. Combinat cu incertitudinea celor mai bune locuri trei, cele două rezultate duc la sloturi eliminatorii diferite. În cazul Turciei, a dus chiar la apariția lor de două ori în optimile de finală.
Graficul următor arată rundele finale (sferturi până la finală) pe care modelul XGBoost le proiectează înainte de startul turneului:

Echipa „aruncarea monedei”: Statele Unite
Distracția unui astfel de model stă în echipele care contrazic testul vizual, iar cel mai clar exemplu sunt Statele Unite. Dacă mergi la prezentarea generală a turneului pe dashboard, vei observa instant că SUA ies în evidență prin culoare.
Fiind co-gazde și jucând în fața propriilor fani, te-ai aștepta la un start confortabil, dar modelul e mult mai prudent: le dă doar cam 54,6% șanse să iasă din grupe, al 13-lea cel mai mic procent din întregul lot (nu uita că două treimi dintre echipe se califică!), pentru că grupa lor cu Australia, Paraguay și Turcia este neobișnuit de echilibrată.
Partea interesantă e ce urmează după. După ce trec cu greu, SUA apoi stau cam la nivel de „aruncare a monedei” în fiecare rundă care urmează. Pune laolaltă acele aruncări și ajung cam la 2% șanse să câștige tot turneul, al 13-lea cel mai mare procent din toate cele 48 de echipe.
O echipă care e pe locul 13 de la coadă ca să iasă din grupe și pe locul 13 de la vârf să câștige totul e cam definiția perfectă a unei echipe „aruncare a monedei”: niciodată favorită, niciodată scoasă din calcule.
Gânduri finale
Acest proiect a însemnat multă muncă și acoperă mult mai mult decât încape într-un singur articol. Repo-ul are multe lucruri care nu au intrat aici: întregul set de modele candidate, ingineria caracteristicilor și orchestrarea care ține totul în funcțiune, ca exemple.
Deocamdată, modelul și-a făcut alegerile, iar turneul va decide. Fie că ai venit pentru MLOps sau pentru fotbal, sper să te bucuri să-l urmărești desfășurându-se la fel de mult ca mine. Poți urmări prognoza live pe măsură ce vin meciurile și să vezi cât de bine rezistă predicțiile.
Dacă vrei să arunci o privire mai atentă la unele concepte menționate, îți recomand cursul nostru MLOps Concepts.