course
फुटबॉल की भविष्यवाणी करना मुश्किल है। यह कम स्कोर वाला खेल है, जहां एक डिफ्लेक्टेड शॉट नतीजा पलट सकता है, और किसी भी मैच का अच्छा-खासा हिस्सा किस्मत पर निर्भर होता है। अंतरराष्ट्रीय फुटबॉल और भी कठिन है: राष्ट्रीय टीमें साल में केवल चंद प्रतिस्पर्धी मैच खेलती हैं, इसलिए क्लब लीगों की तुलना में सीखने के लिए डेटा बहुत कम होता है।
और मानो इतना काफी नहीं था, इस साल के वर्ल्ड कप के लिए FIFA ने काम और कठिन कर दिया। 48 टीमों तक बढ़े वर्ल्ड कप ने एक नए फ़ॉर्मैट को लागू किया है, जिसमें बारह समूहों में से प्रत्येक के शीर्ष दो आगे बढ़ते हैं, साथ ही सर्वश्रेष्ठ तीसरे स्थान पर रहने वाली बारह टीमों में से आठ, जिससे ग्रुप-स्टेज के नतीजे अनिश्चित हो जाते हैं। चूंकि मुझे चुनौतियाँ (और फुटबॉल) पसंद हैं, यही वह चीज़ है जिसकी मैंने भविष्यवाणी करने का बीड़ा उठाया।
यह मेरे EURO 2024 भविष्यवाणी प्रोजेक्ट का फॉलो-अप है, जिसे लगभग पूरी तरह से दोबारा बनाया गया है। पिछली बार मैंने पूरा काम Jupyter नोटबुक्स में किया और प्रति मैच एक सबसे संभावित स्कोरलाइन की भविष्यवाणी की। इस बार, मैंने एक एंड-टू-एंड MLOps पाइपलाइन बनाई है जो नए नतीजों को इनजेस्ट करती है, खुद को फिर से प्रशिक्षित करती है, और पूरे टूर्नामेंट की 10,000 बार मोंटे कार्लो सिमुलेशन चलाती है, जिससे मैच-स्तरीय भविष्यवाणियों को इस बात की संभावनाओं में बदला जाता है कि हर टीम कितनी दूर तक पहुँचती है।
इस लेख में, मैं आपको उच्च-स्तरीय तौर पर पूरे प्रोजेक्ट से गुजारूँगा: डेटा और फीचर्स, वे MLOps प्रथाएँ जो इसे पुनरुत्पादन योग्य बनाए रखती हैं, पाइपलाइन आर्किटेक्चर, और कौन सा मॉडल राष्ट्रीय टीमों के फुटबॉल की सबसे अच्छी भविष्यवाणी करता है। आप पूरा कोड प्रोजेक्ट रिपो में पा सकते हैं। और हाँ, मैं आपको यह भी बताऊँगा कि मॉडल किसे विजेता मानता है। (स्पॉयलर: इसे स्पेन और अर्जेंटीना पसंद हैं, लगभग 16% प्रत्येक पर, लेकिन दिलचस्प बात यह है कि यह वहाँ तक कैसे पहुँचता है।)
यदि इससे आप टूर्नामेंट के मूड में आ गए हैं, तो हमारी Data & AI World Cup वीक को देखें—सेशनों की एक श्रृंखला कि कैसे डेटा और AI फुटबॉल को बदल रहे हैं—जिसे आप लाइव या ऑन-डिमांड मुफ्त में देख सकते हैं।
संक्षेप में
- यह एक एंड-टू-एंड MLOps पाइपलाइन है जो 2026 FIFA वर्ल्ड कप की भविष्यवाणी करती है, ताज़ा अंतरराष्ट्रीय नतीजे खींचती है और टूर्नामेंट के दौरान हर दो घंटे में Google Cloud पर स्वचालित रूप से पुनःप्रशिक्षित होती है।
- API-Football और Elo रेटिंग्स के डेटा को Bronze-Silver-Gold मेडलियन आर्किटेक्चर से प्रोसेस किया जाता है और पूर्ण पुनरुत्पादकता के लिए DVC से वर्ज़न किया जाता है।
- पाँच परिवारों के दस मॉडलों की 347-मैच होल्डआउट पर तुलना की गई; XGBoost मामूली अंतर से जीता, शीर्ष पाँच लगभग अलग न किए जा सकने जितने करीब थे, और टीमों के बीच Elo अंतर अधिकांश भविष्यवाणी का काम करता है।
- एक मोंटे कार्लो सिमुलेशन पूरा टूर्नामेंट 10,000 बार खेलता है, मैच-स्तरीय गोल भविष्यवाणियों को हर टीम के आगे बढ़ने और जीतने की संभावनाओं में बदलता है।
- 10 जून, 2026 तक, मॉडल के पसंदीदा स्पेन और अर्जेंटीना हैं, लगभग 16% प्रत्येक पर। लाइव भविष्यवाणियों को साथ के Streamlit डैशबोर्ड पर फॉलो किया जा सकता है, जो हर दो घंटे में रिफ्रेश होता है।
भविष्यवाणियों के पीछे का डेटा
कोई भी भविष्यवाणी उतनी ही अच्छी होती है जितना अच्छा उसमें डाला गया डेटा, इसलिए कच्चे इनपुट से शुरू करना समझदारी है। मॉडल दो लाइव डेटा स्रोतों से सीखता है और उन्हें एक एकीकृत, सुव्यवस्थित फीचर्स टेबल में बदलता है।
डेटा कहाँ से आता है
सब कुछ दो स्रोतों से बना है। API-Football फिक्स्चर्स और प्रति-मैच आँकड़े देता है: किसने किससे, कब, कहाँ खेला और नतीजा क्या रहा। eloratings.net हर राष्ट्रीय टीम के लिए Elo रेटिंग्स प्रदान करता है।
Elo रेटिंग एक एकल संख्या है जो बताती है कि टीम कितनी मजबूत है। हर टीम इस पैमाने पर कहीं न कहीं होती है, और हर मैच के बाद रेटिंग अपडेट होती है: आपसे अधिक मजबूत टीम को हराएँ तो बहुत अंक मिलते हैं; कमजोर टीम से हारें तो तेज़ी से गिरते हैं। यह विचार शतरंज से आया है और फुटबॉल में साफ़-सुथरे तरीके से ढल जाता है। यदि आप पूरी अंतर्दृष्टि चाहते हैं, तो DataCamp का यह पुराना लेख 2022 वर्ल्ड कप के संदर्भ में इसे समझाता है।
मिलकर, ये दोनों स्रोत 2018 से अब तक के लगभग 6,900 अंतरराष्ट्रीय मैचों का Gold डेटासेट देते हैं, जिनसे मॉडल सीखता है।
मॉडल क्या भविष्यवाणी करता है
यह पहला अहम डिज़ाइन विकल्प है। सीधे नतीजा (जीत, ड्रॉ, हार) भविष्यवाणी करने के बजाय, मॉडल कुछ अधिक सूक्ष्म चीज़ का अनुमान लगाता है: हर टीम कितने गोल करती है। फुटबॉल में गोल काउंट्स, मोटे तौर पर, पॉइसन वितरण का पालन करते हैं—एक मानक तरीका यह मॉडल करने का कि किसी तय समय-खिड़की में कोई अपेक्षाकृत दुर्लभ घटना कितनी बार होती है।
नतीजों के बजाय गोलों की भविष्यवाणी करना ही आगे की सारी चीज़ें संभव बनाता है। जब मॉडल किसी भी मुकाबले के लिए एक संभाव्य स्कोरलाइन दे सकता है, तब वे सवाल जिनकी सबको परवाह है—कौन ग्रुप से निकलेगा और कौन ट्रॉफी उठाएगा—उन स्कोरलाइनों को हज़ारों बार सिमुलेट करके जवाब दिए जा सकते हैं।
कौन से फीचर्स मायने रखते हैं
हर मैच को एक छोटे, सोच-समझकर चुने गए फीचर्स सेट से वर्णित किया जाता है:
- Elo अंतर: दोनों टीमों की रेटिंग में फासला। यह मॉडल में अब तक का सबसे महत्वपूर्ण फीचर है, जिसकी अहमियत अगली सबसे प्रबल विशेषता से लगभग दो क्रम अधिक है। यह सहज बोध के अनुरूप है, क्योंकि दोनों पक्षों के बीच ताकत का अंतर संभावित नतीजे के बारे में लगभग हर चीज़ से अधिक बताता है।
- Elo योग: दोनों रेटिंग्स का जोड़, जो समग्र गुणवत्ता का संकेतक है। केवल अंतर से आप अर्जेंटीना बनाम स्पेन और सैन मारिनो बनाम अंडोरा को अलग नहीं कर सकते—दोनों बराबरी के मैच हैं लेकिन बिल्कुल अलग स्तरों पर—और योग वह जानकारी वापस लाता है।
- रोलिंग Elo बदलाव (पिछले 5 मैच): हाल में प्रत्येक टीम की रेटिंग कितनी बदली है। यह फॉर्म को कैप्चर करता है और पहले से प्रतिद्वंद्वियों की ताकत का हिसाब रखता है।
- रोलिंग गोल्स फॉर और अगेंस्ट (पिछले 5 मैच): हालिया आक्रामक और रक्षात्मक आउटपुट, प्रत्येक टीम के लिए गणना की गई।
- मैच संदर्भ: प्रतियोगिता का स्तर (वर्ल्ड कप मैच की अहमियत क्वालीफ़ायर या नेशंस लीग से अलग होती है), क्या मैच नॉकआउट है, और क्या यह न्यूट्रल वेन्यू पर खेला जा रहा है।
हर फीचर सख्ती से लीकेज-सेफ़ है, यानी हर एक केवल वही जानकारी इस्तेमाल करता है जो किकऑफ़ से पहले उपलब्ध थी। यह सुनने में साधारण लगता है, लेकिन यही वह आसान तरीका है जिससे आप गलती से कोई ऐसा मॉडल बना सकते हैं जो परीक्षण में शानदार लगे और वास्तविक दुनिया में बिखर जाए।
एक विचार जो पास नहीं हुआ: मैंने "खेलने की शैली" वाले फीचर्स का एक सेट योजना बनाया था, जिन्हें इन-गेम आँकड़ों से टीमों को क्लस्टर करके बनाया जाता—एक अननुभवी (unsupervised) लर्निंग चरण। व्यवहार में, टीमें सार्थक समूहों में नहीं बँटीं, तो मॉडल में शोर डालने के बजाय मैंने उसे छोड़ दिया। नकारात्मक परिणाम भी परिणाम ही होते हैं।
डेटा को पुनरुत्पादन योग्य रखना
दो स्रोतों से लगातार आते डेटा के साथ, कच्ची फाइलों से मॉडल-रेडी फीचर्स तक का रास्ता हर एक बार बिल्कुल समान होना चाहिए। यही मेडैलियन आर्किटेक्चर देता है। यह डेटा को तीन लेयर्स में व्यवस्थित करता है:
- Bronze: कच्चा डेटा, जैसा आया, वैसा का वैसा।
- Silver: साफ़-सुथरा और मानकीकृत। यहाँ मैं दोनों स्रोतों के बीच टीम नाम मैप करता हूँ (स्पेलिंग शायद ही कभी मिलती हैं), स्कीमा वैलिडेट करता हूँ, मैच रिकॉर्ड्स पर Elo रेटिंग्स जोड़ता हूँ, और जो भी मिसिंग या मालफॉर्म्ड हो, उससे निपटता हूँ।
- Gold: मॉडलिंग लेयर, प्रति मैच एक सुव्यवस्थित पंक्ति, जिसमें हर फीचर गणना होकर प्रशिक्षण के लिए तैयार होता है।
हर लेयर अगली को फीड करती है, इसलिए जब कुछ गलत दिखता है तो मैं एक-एक चरण पीछे ट्रेस कर सकता हूँ, सब कुछ एक साथ सुलझाने की बजाय। पूरे रास्ते को पुनरुत्पादन योग्य बनाने के लिए, मैं DVC (Data Version Control) इस्तेमाल करता हूँ। जब भी नए नतीजे आते हैं, एक dvc repro Bronze से Silver और Gold को फिर से बनाता है, केवल वही स्टेप दोबारा चलाता है जिसके इनपुट बदले हों, और परिणामी डेटासेट्स का वर्ज़न करता है ताकि किसी भी पुराने स्टेट को हूबहू रिकवर किया जा सके।
सर्वश्रेष्ठ मॉडल चुनना
गोल्स की भविष्यवाणी एक अच्छी-खासी पढ़ी-लिखी समस्या है, और इसके लिए कोई एक स्पष्ट टूल नहीं है। इसलिए एक ही अप्रोच पर पहले से प्रतिबद्ध होने के बजाय, मैंने दस बनाए और उन्हें मुकाबला करने दिया।
दावेदार
ये दस मॉडल पाँच परिवारों और एक सरल बेसलाइन में फैले हैं। आपको हर एक के भीतर की तकनीक जानने की ज़रूरत नहीं; मुद्दा यह है कि वे गोल्स बनने के तरीके के बारे में बहुत अलग मान्यताएँ बनाते हैं।
| परिवार | मॉडल | मुख्य विचार |
|---|---|---|
| बेसलाइन | Mean-rate Poisson | मानता है कि हर टीम बस अपना दीर्घकालिक औसत ही स्कोर करती है, सभी फीचर्स को नज़रअंदाज़ करते हुए। बाकी के लिए न्यूनतम मानक। |
| सांख्यिकीय | बाइवेरिएट पॉइसन, नेगेटिव बायनॉमियल | दोनों गोल काउंट्स को सीधे ऐसे प्रायिकता वितरणों से मॉडल करना जो घटनाओं की गिनती के लिए बने हैं। |
| बेयेसियन | बेयेसियन पॉइसन (MCMC) | वही काउंटिंग विचार, लेकिन यह हर अनुमान के चारों ओर अनिश्चितता की पूरी रेंज लौटाता है। गणनात्मक रूप से कहीं अधिक मांग वाला: बाकी की तुलना में फिट करने में लगभग 100 गुना धीमा। |
| टाइम सीरीज़ | SARIMAX | किसी टीम के नतीजों को समय के साथ एक अनुक्रम की तरह ट्रीट करता है और उस अनुक्रम को आगे प्रोजेक्ट करता है। |
| मशीन लर्निंग | Ridge, Random Forest, XGBoost | किसी फिक्स्ड समीकरण से बाँधे बिना सीधे फीचर्स से पैटर्न सीखना। |
| डीप लर्निंग | LSTM, 1D CNN | न्यूरल नेटवर्क्स जो डेटा में अनुक्रमिक और स्थानीय पैटर्न ढूँढते हैं। |
उन्हें कैसे स्कोर किया गया
दस प्रत्याशियों के साथ, आँख से विजेता चुनना मुमकिन नहीं था। इसके बजाय, हर मॉडल तीन चरणों से गुजरता है, और कोड तय करता है कि वह आगे बढ़े या नहीं। यही कोड-आधारित डिप्लॉयमेंट का मतलब है: मॉडलों को एक वातावरण से अगले में स्वचालित जाँचों से प्रमोट किया जाता है, न कि मैनुअल ट्यूनिंग से, ताकि पूरी चयन-प्रक्रिया पुनरुत्पादन योग्य और ऑडिट करने में आसान रहे।
- प्रयोग। हर मॉडल को केवल 2022 वर्ल्ड कप से पहले खेले गए अंतरराष्ट्रीय मैचों पर प्रशिक्षित किया जाता है। उन सभी मैचों का वज़न बराबर नहीं: हाल के और अधिक- अहमियत वाले मैचों को अधिक वज़न मिलता है (time-decay और match-importance weighting), ताकि हालिया प्रतिस्पर्धी नतीजा किसी पुराने फ़्रेंडली से अधिक मॉडल को आकार दे। फिर हर मॉडल की सेटिंग्स को क्रॉस-वैलिडेशन के साथ पॉइसन नेगेटिव लॉग-लाइकलिहुड (NLL) को न्यूनतम करने के लिए ट्यून किया जाता है। NLL बस एक स्कोर है कि अनुमानित गोल दरें वास्तविक गोलों से कितनी मेल खाती हैं—कम बेहतर। परिणाम है हर मॉडल का सर्वोत्तम-ट्यून किया गया संस्करण।
- क्वालिटी एश्योरेंस। वे ट्यून किए गए मॉडल फिर उन मैचों पर जाँचे जाते हैं जो उन्होंने कभी नहीं देखे: 2022 वर्ल्ड कप प्लस तब से हुए छह बड़े टूर्नामेंट (EURO, दो अफ्रीका कप ऑफ नेशंस, कोपा अमेरिका, एशियन कप, और गोल्ड कप)—कुल 347 मैच। यहाँ मीट्रिक रैंक्ड प्रॉबेबिलिटी स्कोर (RPS) में बदलता है, जो यह मापता है कि जब नतीजों का एक प्राकृतिक क्रम होता है—जैसे हार, ड्रॉ, जीत—तो एक प्रायिकतामूलक पूर्वानुमान कितना अच्छा है, और यह मोटे तौर पर सही दिशा में आत्मविश्वास को पुरस्कृत करता है। फिर से, कम बेहतर। जो सबसे मजबूत होता है, वह चैलेंजर बनता है। RPS सही मीट्रिक है क्योंकि असल लक्ष्य टीमों की प्रगति की भविष्यवाणी करना है, केवल गोल कुल नहीं।
- डिप्लॉय। चैलेंजर की तुलना मौजूदा चैंपियन से की जाती है। यदि वह जीतता है, तो उसे प्रमोट किया जाता है और उपलब्ध हर मैच पर फिर से फिट किया जाता है, ताकि वह टूर्नामेंट में प्रवेश करते समय पूरे डेटा से सीख चुका हो।
क्या जीता
तो कौन सा अप्रोच शीर्ष पर रहा? यहाँ पूरा होल्डआउट लीडरबोर्ड है, RPS से स्कोर किया गया (कम बेहतर):
| मॉडल | होल्डआउट RPS |
|---|---|
| XGBoost | 0.18289 |
| बेयेसियन पॉइसन | 0.18316 |
| नेगेटिव बायनॉमियल | 0.18373 |
| बाइवेरिएट पॉइसन | 0.18389 |
| रैंडम फॉरेस्ट | 0.18392 |
| SARIMAX | 0.18583 |
| Ridge | 0.18813 |
| LSTM | 0.19299 |
| 1D CNN | 0.20916 |
| Mean-rate Poisson (बेसलाइन) | 0.22872 |
इन परिणामों से चार बातें उभरती हैं:
- XGBoost जीता, पर मामूली अंतर से। शीर्ष पाँच मॉडल (XGBoost, बेयेसियन पॉइसन, नेगेटिव बायनॉमियल, बाइवेरिएट पॉइसन, और रैंडम फॉरेस्ट) एक-दूसरे से लगभग 0.0011 RPS के भीतर रहे। जब पाँच बहुत अलग अप्रोच इतने क़रीब आ टिकते हैं, तो आमतौर पर मतलब होता है कि सीमा डेटा और फीचर्स तय कर रहे हैं, मॉडल नहीं। यहाँ Elo अंतर इतना काम कर देता है कि मॉडल की पसंद सुई को मुश्किल से हिलाती है।
- एक फीचर हावी है। Elo अंतर बहुत बड़े अंतर से सबसे महत्वपूर्ण प्रेडिक्टर रहा, अगले फीचर से लगभग सौ गुना अधिक प्रभावी। यह आश्वस्त करने वाला है, चौंकाने वाला नहीं: एक मैच में, दो टीमों की ताकत का फासला ही कहानी का बड़ा हिस्सा है।
- डीप लर्निंग आख़िर में रही, बेसलाइन को छोड़कर। 1D CNN और LSTM, भोले बेसलाइन को छोड़, सबसे कमजोर मॉडल रहे। सीखने के लिए केवल ~7,000 मैच होने पर, इतने पैरामीटर्स वाले नेटवर्क्स को खिलाने के लिए पर्याप्त डेटा नहीं; छोटे, संरचित डेटासेट्स पर परंपरागत तरीके कहीं बेहतर काम करते हैं।
- क्लासिकल मॉडलों में ओवरफिटिंग के संकेत नहीं। आमतौर पर, कोई मॉडल अनदेखे डेटा पर ट्रेनिंग की तुलना में थोड़ा खराब करता है। यहाँ, लगभग हर मॉडल (LSTM अपवाद) ने होल्ड-आउट टूर्नामेंट्स पर क्रॉस-वैलिडेशन से बेहतर स्कोर किया। संभावित वजह यह है कि टूर्नामेंट फुटबॉल रोज़ाना के अंतरराष्ट्रीय कैलेंडर से अधिक पूर्वानुमान योग्य है: ऊँचे दाँव, मजबूत और परिचित टीमें, और न्यूट्रल वेन्यू कुछ रैंडमनेस कम कर देते हैं।
लाइव टूर्नामेंट के लिए, मैं सारे दस नहीं चलाता। मैं छोटा रोस्टर रखता हूँ: संदर्भ बिंदु के रूप में मीन-रेट बेसलाइन, और साथ में तीन सर्वश्रेष्ठ परफ़ॉर्मर। XGBoost और बेयेसियन पॉइसन सीधे शीर्ष दो स्थान लेते हैं।
तीसरा स्थान प्रभावी रूप से टाई है: नेगेटिव बायनॉमियल और बाइवेरिएट पॉइसन एक-दूसरे से 0.0002 RPS के भीतर खत्म हुए और रैंडम सीड के अनुसार जगहें बदल लेते हैं, इसलिए दो सांख्यिकीय रूप से अविभेद्य मॉडलों में, मैंने बाइवेरिएट पॉइसन चुना, जिसकी संरचना फुटबॉल-भविष्यवाणी साहित्य (Karlis और Ntzoufras, 2004) में अधिक मज़बूत मानी जाती है।
इससे XGBoost (मशीन लर्निंग), बाइवेरिएट पॉइसन (क्लासिकल सांख्यिकी), और बेयेसियन पॉइसन (बेयेसियन इनफ़ेरेंस) का रोस्टर बनता है। अगला सेक्शन बताता है कि ये मॉडल कैसे चलते हैं, फिर से प्रशिक्षित होते हैं, और एकल-मैच भविष्यवाणियों को पूरे टूर्नामेंट के पूर्वानुमान में कैसे बदलते हैं।
इसे प्रोडक्शन में डालना
जो मॉडल नोटबुक में रहता है, वह केवल तभी काम का है जब आप उसके सामने बैठे हों। एक महीने लंबे टूर्नामेंट में मैचों की भविष्यवाणी करने के लिए, पूरी व्यवस्था को अपने आप चलना चाहिए: नए नतीजे खींचना, फिर से प्रशिक्षित होना, फिर से सिमुलेट करना, और बिना किसी के छुए पूर्वानुमान ताज़ा करना। यही पाइपलाइन का काम है।
GCP पर दो-दो घंटे वाली पाइपलाइन
पूरा प्रोजेक्ट एक शेड्यूल्ड जॉब के रूप में Google Cloud Run पर चलता है। टूर्नामेंट से पहले यह दिन में एक बार जगता है; 11 जून के ओपनिंग मैच से यह हर दूसरे घंटे चलता है। हर रन एक जैसा चक्र फ़ॉलो करता है:
- नए डेटा की जाँच। यदि पिछले रन के बाद कोई मैच खत्म नहीं हुआ, तो करने को कुछ नहीं, और जॉब जल्दी ही बाहर निकल जाता है।
- इनजेस्ट और रीबिल्ड। जब नए नतीजे आते हैं, तो उन्हें डेटा स्रोतों से खींचा जाता है, और एक
dvc reproSilver और Gold लेयर्स को फिर से बनाता है ताकि फीचर्स करंट रहें। - रीट्रेन, प्रेडिक्ट, सिमुलेट। रोस्टर मॉडल्स को अपडेट किया जाता है (कैसे—यह अभी आगे), हर आने वाला मुकाबला भविष्यवाणी किया जाता है, और पूरा टूर्नामेंट सिमुलेट होता है।
- स्कोर। एक बार मैच निपटने के बाद, उसके लिए की गई भविष्यवाणियों को स्कोर किया जाता है, जो नीचे बताए मॉनिटरिंग में फ़ीड करता है।
क्योंकि हर स्टेप शेड्यूल पर कोड से ट्रिगर होता है, टूर्नामेंट के दौरान कोई मैनुअल बटन-दबाना नहीं होता। नया नतीजा अंदर, ताज़ा पूर्वानुमान बाहर।
दो मोड: फ्रोज़न बनाम प्रति-राउंड
यहीं पर प्रोजेक्ट एक प्रयोग भी बन जाता है। टूर्नामेंट के दौरान, रोस्टर दो समानांतर मोड्स में चलता है, और उनके बीच का अंतर वही सवाल है जिसका जवाब मैं डेटा से चाहता हूँ: क्या टूर्नामेंट के साथ-साथ रीट्रेनिंग करना भविष्यवाणियों को बेहतर बनाता है?
- Frozen. टूर्नामेंट शुरू होते ही मॉडल लॉक हो जाते हैं और दोबारा प्रशिक्षित नहीं होते। वे नतीजों पर फिर भी प्रतिक्रिया देते हैं, क्योंकि हर सिमुलेशन अपडेटेड ब्रैकेट से शुरू होता है, लेकिन मॉडल पैरामीटर्स खुद नहीं बदलते।
- Per-round. हाइपरपैरामीटर्स (उच्च-स्तरीय सेटिंग्स) फिक्स रहते हैं, लेकिन जो पैरामीटर्स मॉडल सीखता है उन्हें हर ग्रुप मैचडे और हर नॉकआउट राउंड के बाद उपलब्ध सभी डेटा पर फिर से फिट किया जाता है, ताकि मॉडल टूर्नामेंट के दौरान सीखते रहें।
दोनों को साथ-साथ चलाने से टूर्नामेंट के बाद मैं दो मोर्चों पर उनकी तुलना कर सकता हूँ: कच्ची पूर्वानुमान सटीकता, और जैसे-जैसे मैदान सिमटता है, किसकी अनिश्चितता कितनी जल्दी घटती है। यदि per-round जीतता है, तो नियमित रीट्रेनिंग अपना औचित्य साबित करती है; यदि frozen टक्कर दे देता है, तो अतिरिक्त मशीनरी शायद उतनी उपयोगी न हो।
भविष्यवाणियों से टूर्नामेंट तक: मोंटे कार्लो सिमुलेशन
एकल मैच की भविष्यवाणी एक बात है। उसे “हर टीम के टूर्नामेंट जीतने की क्या संभावना है” में बदलना वहीं है जहाँ मोंटे कार्लो सिमुलेशन काम आता है।
पहले, इंफ़ेरेंस। केवल वे फिक्स्चर्स भविष्यवाणी करने के बजाय जिन्हें हम जानते हैं, मॉडल 48 टीमों के बीच हर संभावित मुकाबले की भविष्यवाणी करता है। यह अतिशयोक्तिपूर्ण लग सकता है, लेकिन टूर्नामेंट में नॉकआउट में कोई भी टीम किसी भी दूसरी से मिल सकती है, इसलिए हर जोड़ी के लिए भविष्यवाणी तैयार होनी चाहिए।
इसके बाद, नियमों को एन्कोड करना होता है, और 2026 का फ़ॉर्मैट इसे खास तौर पर पेचीदा बनाता है। 12 समूहों में, शीर्ष दो स्वतः आगे बढ़ते हैं, लेकिन सर्वश्रेष्ठ तीसरे स्थान पर रहने वाली आठ टीमें भी, और वे आठ किस नॉकआउट स्लॉट में जाती हैं यह इस पर निर्भर करता है कि वे किन समूहों से आईं।
बारह में से आठ क्वालीफ़ाइंग समूह चुनने के 495 तरीके हैं (बारह में से आठ का चुनाव), और हर एक एक अलग राउंड-ऑफ-32 पेयरिंग्स सेट बनाता है। इसका कोई साफ़ फ़ॉर्मूला नहीं; FIFA बस एक तालिका प्रकाशित करता है। इसलिए मैंने (दरअसल मेरे काबिल सहयोगी Cursor ने) आधिकारिक तालिका को स्रोत मानकर सभी 495 संयोजनों को एक मैपिंग में हार्डकोड कर दिया।
"best_third_mappings": {
"EFGHIJKL": {
"74": "3F",
"77": "3G",
"79": "3E",
"80": "3K",
"81": "3I",
"82": "3H",
"85": "3J",
"87": "3L"
},
"DFGHIJKL": ...
हर कुंजी, जैसे EFGHIJKL, यह सूची देती है कि कौन से आठ समूह तीसरे स्थान की आगे बढ़ी टीमों का स्रोत हैं, और मान उन टीमों (3E, 3F, आदि) को किसी विशेष राउंड-ऑफ-32 मैच नंबर में स्लॉट करते हैं। यह एक एंट्री है; पूरी मैपिंग 495 बार दोहरती है, हर संयोजन के लिए एक बार।
तीनों मेज़बान देशों (संयुक्त राज्य, कनाडा और मेक्सिको) के लिए एक अतिरिक्त हैंडलिंग है। जब कोई होस्ट अपने देश में आयोजित मैच खेलता है, तो सिमुलेशन उस फिक्स्चर के लिए होम-एडवांटेज समायोजन लागू करता है, जबकि टूर्नामेंट का बाकी हिस्सा न्यूट्रल ग्राउंड माना जाता है।
भविष्यवाणियाँ और नियम स्थापित होने के साथ, सिमुलेशन पूरा टूर्नामेंट 10,000 बार चलाता है। हर रन में यह प्रक्रिया अपनाई जाती है:
- हर मैच के लिए स्कोरलाइन ड्रॉ करें—मॉडल की अनुमानित वितरणों से घरेलू और बाहर के गोल सैंपल करके
- वास्तविक अंकों और टाईब्रेक नियमों के तहत ग्रुप स्टेज खेलें
- सर्वश्रेष्ठ-तीसरे की तालिका तय करें
- ऊपर दी गई मैपिंग्स से नॉकआउट ब्रैकेट भरें
- एक एकल चैंपियन तक खेलें।
10,000 सिमुलेटेड टूर्नामेंट्स में, जितने हिस्से में कोई टीम फ़ाइनल तक पहुँचती है या ट्रॉफी उठाती है, वही उसकी संभावना बनती है। एक रन एक अटकल है; दस हज़ार रन एक पूर्वानुमान।
MLflow से सब ट्रैक करना
अब तक वर्णित हर रन, दोनों मोड्स में, MLflow (होस्टेड ऑन DagsHub) में लॉग होता है। एक्सपेरिमेंट ट्रैकिंग का मतलब है हर रन के इनपुट्स, सेटिंग्स, परिणाम और आउटपुट्स का व्यवस्थित रिकॉर्ड रखना, ताकि किसी की भी दूसरे से तुलना की जा सके या हूबहू दोहराया जा सके। कुछ चीज़ें ख़ासतौर पर उल्लेखनीय हैं:
- पुनरुत्पादकता। सिमुलेशन एक फिक्स्ड रैंडम सीड इस्तेमाल करता है जो टूर्नामेंट राउंड से व्युत्पन्न है, और वही सीड फ्रोज़न और प्रति-राउंड मोड्स में साझा होता है। यानी दोनों के बीच कोई फर्क आता है तो वह मॉडलों से आता है, सिमुलेशन के भीतर भाग्य से नहीं। हर रन यह भी लॉग करता है कि उसने कौन सा सटीक डेटा स्नैपशॉट देखा (Gold पंक्तियों की संख्या और टाइमस्टैम्प), ताकि परिणामों को हमेशा उनके इनपुट्स तक ट्रेस किया जा सके।
- प्रयोग। हर रन को उसके मोड (फ्रोज़न या प्रति-राउंड) और लाइफसाइकल के चरण—प्रयोगात्मक और QA से लेकर लाइव इंफ़ेरेंस और रीफ़िट रन तक—से टैग किया जाता है, जो पिछले सेक्शन की प्रमोशन फ़्लो को प्रतिबिंबित करता है।
- तुलना। चयन मीट्रिक के रूप में होल्डआउट RPS लॉग होता है, साथ में वंशावली के लिए मौजूदा चैंपियन रन का संदर्भ। फिटिंग समय भी रिकॉर्ड होता है, जहाँ बेयेसियन मॉडल की लगभग 100-गुना धीमी ट्रेनिंग काले-सफेद में दिख जाती है।
प्रशिक्षित मॉडल और खुद भविष्यवाणी फाइलें (टूर्नामेंट संभावनाएँ, ग्रुप स्टैंडिंग्स, और मैच फ़ोरकास्ट) रन आर्टिफैक्ट्स के रूप में संग्रहीत होते हैं, और यही फाइलें लाइव डैशबोर्ड पढ़ता है। इससे लूप पूरा होता है: कच्चे नतीजों से, प्रशिक्षण और सिमुलेशन के जरिए, उन संख्याओं तक जो आप ऑनलाइन देख सकते हैं।
ड्रिफ्ट की मॉनिटरिंग
आख़िरी हिस्सा मैचों के निपटने के बाद चलता है। जैसे-जैसे वास्तविक नतीजे आते हैं, उनके लिए की गई भविष्यवाणियाँ स्कोर की जाती हैं और सरल मीन-रेट बेसलाइन से तुलना की जाती हैं। यदि पूर्ण मॉडल्स किसी ऐसे मॉडल से पिछड़ने लगते हैं जो टीमों के बारे में कुछ नहीं जानता, तो यह ड्रिफ्ट का चेतावनी संकेत है: टूर्नामेंट से पहले सीखे पैटर्न अब मैदान पर हो रही चीज़ों से मेल नहीं खा रहे होंगे।
लाइव भविष्यवाणियाँ देने वाली किसी भी प्रणाली के लिए यह देखना मानक प्रथा है, और इसके पता लगाने के बारे में आप इस गाइड में पढ़ सकते हैं: डेटा ड्रिफ्ट और मॉडल ड्रिफ्ट।
तो, वर्ल्ड कप कौन जीतता है?
इतनी सारी व्यवस्था के बाद, यही उसका मकसद है।
पसंदीदा टीमें
10 जून, 2026 तक—ओपनिंग मैच से एक दिन पहले—मॉडल का फ़ैसला शीर्ष पर स्पष्ट है और उसके ठीक पीछे भीड़भाड़ है। स्पेन और अर्जेंटीना दोनों के पास ट्रॉफी उठाने की लगभग 16% संभावना है। यह कि मौजूदा विश्व चैंपियन (अर्जेंटीना) और मौजूदा यूरोपीय चैंपियन (स्पेन) शीर्ष पर आते हैं, एक आश्वस्त करने वाली sanity check है कि मॉडल वास्तविकता में जड़ें जमाए है।
उनके पीछे कड़ी दौड़ है: फ्रांस, इंग्लैंड, ब्राज़ील, और कोलंबिया सबसे संभावित विजेताओं को पूरा करते हैं। ये लाइव आँकड़े हैं, और असली नतीजे आते ही बदलेंगे, इसलिए इन्हें 10 जून की झलक की तरह लें, न कि स्थायी भविष्यवाणी की तरह। डैशबोर्ड हमेशा वर्तमान संख्याएँ दिखाता है, अधिकतम दो घंटे की देरी के साथ।
लाइव डैशबोर्ड
बात निकली ही है: इस लेख की हर संख्या एक लाइव Streamlit ऐप से आती है जो पाइपलाइन चलने के साथ स्वतः अपडेट होती है। आप इसे wc2026-predictions.streamlit.app पर खोल सकते हैं और टूर्नामेंट भर फॉलो कर सकते हैं। इसमें चार मुख्य व्यू हैं:
- टूर्नामेंट ओवरव्यू: एक नज़र में, हर टीम कितनी दूर जाने की उम्मीद है।
- ग्रुप स्टैंडिंग्स: हर समूह के लिए, प्रत्येक टीम के पहले, दूसरे, तीसरे (best-third नियम की वजह से तीसरे-पर-आगे बनाम तीसरे-पर-बाहर में विभाजित) या चौथे स्थान पर खत्म करने की संभावना।
- मैच भविष्यवाणियाँ: हर ग्रुप गेम के लिए, होम जीत, ड्रॉ, या अवे जीत की संभावना, साथ ही सबसे संभावित नॉकआउट ब्रैकेट।
- सबसे आम नॉकआउट मुकाबले: वे पेयरिंग्स जो सिमुलेशन सबसे अधिक बार बनाता है।
मैच व्यू में एक बात ध्यान देने योग्य है: कुछ टीमें एक साथ राउंड-ऑफ-32 के दो संभावित स्लॉट्स में दिखती हैं। यह बग नहीं है। ऐसा तब होता है जब कोई समूह इतना संतुलित होता है कि मॉडल भरोसे से नहीं बता पाता कि टीम कौन सी क्वालीफ़ाइंग पोज़िशन लेगी। best-third की अनिश्चितता के साथ मिलकर, ये दो परिणाम अलग-अलग नॉकआउट स्लॉट्स तक ले जाते हैं। तुर्की के मामले में, इससे वे राउंड ऑफ 16 में दो बार तक आ गए।
निम्न ग्राफिक उन अंतिम राउंड्स (क्वार्टरफ़ाइनल से फ़ाइनल तक) को दिखाता है जिनका XGBoost मॉडल, टूर्नामेंट शुरू होने से पहले, प्रोजेक्शन करता है:

कॉइन-फ्लिप टीम: संयुक्त राज्य
इस तरह के मॉडल का मज़ा उन टीमों में है जो आँखों की कसौटी को चुनौती देती हैं, और सबसे साफ़ उदाहरण संयुक्त राज्य है। यदि आप डैशबोर्ड पर टूर्नामेंट ओवरव्यू में जाएँ, तो आप तुरंत नोटिस करेंगे कि US रंग में अलग दिखता है।
सह-मेज़बान के रूप में घरेलू भीड़ के सामने खेलते हुए आप सहज रूप से आसान शुरुआत की उम्मीद कर सकते हैं, पर मॉडल कहीं अधिक सतर्क है: यह उन्हें अपने समूह से निकलने की केवल लगभग 54.6% संभावना देता है—पूरे फील्ड में 13वीं सबसे कम (याद रहे कि टीमों के दो-तिहाई इसके लिए क्वालीफ़ाई करते हैं!)—क्योंकि उनका ऑस्ट्रेलिया, पराग्वे और तुर्की वाला समूह असामान्य रूप से संतुलित है।
दिलचस्प बात आगे आती है। किसी तरह निकलने के बाद, US फिर हर अगले राउंड में लगभग सिक्का उछालने जैसी संभावना पर मंडराता है। उन सिक्का उछालों को जोड़ दें, तो पूरे टूर्नामेंट को जीतने की उनकी संभावना लगभग 2% बनती है, जो 48 टीमों में 13वीं सबसे ऊँची है।
जो टीम अपने समूह से निकलने में नीचे से 13वीं और सब कुछ जीतने में ऊपर से 13वीं रैंक करती है, वह लगभग कॉइन-फ्लिप टीम की परिभाषा पर खरी उतरती है: कभी पक्का फ़ेवरिट नहीं, कभी बाहर नहीं।
अंतिम विचार
यह प्रोजेक्ट बहुत काम का था, और यह एक लेख से कहीं अधिक चीज़ें समेटे हुए है। रिपो में बहुत कुछ है जो यहाँ नहीं समा पाया: पूरे प्रत्याशी मॉडलों का सेट, फीचर इंजीनियरिंग, और वह ऑर्केस्ट्रेशन जो सब कुछ चालू रखता है—कुछ उदाहरण हैं।
फ़िलहाल, मॉडल ने अपनी पसंद बता दी है, और अब फैसला टूर्नामेंट करेगा। आप MLOps के लिए आए हों या फुटबॉल के लिए, उम्मीद है आप इसे unfold होते देखने का उतना ही आनंद लेंगे जितना मैं लूँगा। आप लाइव फ़ोरकास्ट को मैचों के साथ-साथ फॉलो कर सकते हैं और देख सकते हैं कि भविष्यवाणियाँ कितनी सटीक बैठती हैं।
यदि आप बताए गए कुछ कॉन्सेप्ट्स को और करीब से देखना चाहते हैं, तो हमारा MLOps Concepts कोर्स लें।