Yöntem · Açık model dökümantasyonu
Nasıl tahmin ediyoruz?
Gusion'un motoru gizli kara kutu değil. Hangi modeli kullandığımızı, hangi veriyi nasıl beslediğimizi, hangi sınırları olduğunu burada açıkça yazıyoruz.
1 · Model
Dixon-Coles + Poisson, üzerine ML ensemble
Temel motor Mark Dixon ve Stuart Coles 1997 makalesi: Premier League skorlarının dağılımını modelleyen Poisson varyantı; düşük skorlu maçlardaki bağımlılığı ρ parametresi ile düzeltir. — her takım için hücum (α) ve savunma (β) gücü, ev avantajı (γ) ve düşük skor düzeltmesi (ρ). Maximum likelihood ile fit edilir, time-decay ile yakın geçmişe daha çok ağırlık verir.
Üzerine Expected Goals — bir şutun pozisyon, mesafe, açı ve baskı verisi ile gol olma olasılığı. 0 ile 1 arasında bir değer; toplamı maçtaki "hak edilen gol" sayısını verir. , Mark Glickman 2012 — satranç için geliştirilen, takımın gücünü puanın yanı sıra "belirsizlik" (rating deviation) ve "volatilite" ile takip eden rating sistemi. Az maç oynayan takımda belirsizlik artar. rating ve son 5 form, hava durumu, kadro değişiklikleri gibi 12 faktörlü ML modeli (GBM/RF/LR ensemble) ekleniyor. Ensemble blend strategy: piyasa-no-vig + model log-opinion-pool.
Kaynaklar: Dixon & Coles 1997, Goddard 2005, Spearman 2018, Anderson 2018.
2 · Veri
21.255 maç, 0 oran kaydı · son refit 07 May 2026
- ▸Maç verisi: Top 5 lig (Premier League, La Liga, Serie A, Bundesliga, Ligue 1) + EFL Championship + Süper Lig + Eredivisie + Primeira Liga + UEFA kupaları.
- ▸İstatistik: Understat (xG, shot-level), FBref (lineup, possession, defensive metrics), wikidata (stadyum, takım meta).
- ▸Oran: Açık piyasa kapanış oranları (closing odds). 5+ bookmaker median consensus, no-vig (Shin) ile düzeltilmiş.
- ▸Refit cadence: Her Pazartesi 11:00 TR — son hafta sonuçları motor parametrelerine entegre.
3 · Kalibrasyon
%70 dediğimizde, gerçekten yaklaşık %70
Söylenen olasılık ile gerçekleşen oran arasındaki sapmayı ( Expected Calibration Error — modelin söylediği olasılık ile gerçekleşme oranı arasındaki ortalama mutlak fark. ECE %5 = "model %70 dediğinde gerçek %65–%75 arası". Düşük iyidir. ) sürekli ölçeriz. Sapma %5'in üzerine çıkarsa otomatik geri çekme tetikleniyor.
Hesap nasıl? Tahminleri 10 eşit-genişlikli (0–10, 10–20, …, 90–100) "olasılık kovasına" bölüyoruz; her kovada söylenen ortalama olasılık ile gerçekleşme oranını karşılaştırıyoruz, mutlak farkın ağırlıklı ortalaması = ECE. Kova başına gerçekleşme oranı için Wilson %95 güven aralığı kullanırız (büyük örneklem normal yaklaşımına göre küçük örneklemde daha sağlam).
Sıralı zaman testi: hafta 1 verisiyle fit, hafta 2 tahmin → hafta 1+2 ile fit, hafta 3 tahmin… Geleceği görmüş gibi train etmenin (data leakage) önüne geçer. Gerçek-zamanlı simülasyon. : her hafta yalnızca o haftadan önceki verilerle fit, sonraki haftanın maçlarına tahmin. Zaman sızması (data leakage) yok. Açık karne sayfasında geçmiş tüm tahminlerin sonucu var.
Detay: Güvenilirlik sözü sayfası.
4 · Sınırlar
Neyi yapamıyoruz?
- ⚠Kadro/sakatlık verisi henüz tam değil: Lineup ve injury entegrasyonu sürüyor — model şu an "11 oyuncu kadar güçlü mü?" sorusunu cevaplayamıyor.
- ⚠Yeni ligler kalibre değil: UEL, UECL, TFK gibi henüz az veri olan turnuvalarda güven aralığı geniş.
- ⚠Cold-start takımlar: Yeni terfi etmiş takımlar için ilk 4-6 hafta tahminler geniş aralıklı.
- ⚠Şans: Futbol şans içerir. Modelin söylediği %72 olasılığın, %28 ihtimalle "hayır" demesi normal.
5 · Bias notu
Modelin yanlılığı
Top 5 ligde daha çok veri olduğu için kalibrasyon orada en sıkı. Süper Lig'de ev avantajı varyansı yüksek (saha koşulları, seyahat yorgunluğu), modelin bilgisi sınırlı.
Bias kontrolü: lig × dönem matrisinde ECE eşit olmalı. Per-league reliability tablosu varyansı görmenizi sağlar.
6 · Tekrarlanabilirlik
Açık kaynaklar
Tüm geçmiş tahminler immutable (geri-yazılamaz) snapshot olarak saklanır — chain-hash audit ile. Her tahminin model versiyonu, parametre seti ve veri snapshot'ı tutulur.
Açık karneye /roi'dan ulaşabilir, geçmiş tahminleri JSON/CSV olarak indirebilirsiniz (Pro tier).