Doğruluk kaydı
Bir tahmin modelinin ne kadar iyi olduğu iddia edilmez, ölçülür. Bu sayfa modelin geçmiş performansını filtrelenmeden gösterir — filtrelenmeden.
Bu veriler geriye dönük testten (backtest) gelmektedir, canlı tahmin takibinden değil. Model, geçmiş maçlar üzerinde her maç için yalnızca o maçtan önce oynanmış maçlarla eğitilerek sınandı. Canlı takip devreye girdiğinde bu sayfa gerçek zamanlı verilerle güncellenecek. Kapsam: 16 lig, 19.425 maç, 326.116 tahmin. Bu sayılar sayfa her açıldığında veritabanından hesaplanır; elle güncellenen bir kopyası yoktur. (Ekim 2022 – Eylül 2026)
Son güncelleme: 16 Eylül 2026 11:00 · Metodoloji sürümü: 10
Model ne zaman bildiğini biliyor
Bir tahmin modelinin asıl sınavı her maça cevap vermesi değil, emin olduğu maçta haklı çıkmasıdır. Aşağıda modelin “en az şu kadar eminim” dediği tahminler ve o tahminlerin gerçekte ne kadarının doğru çıktığı var. Eşikler seçilmedi, kademe kademe hepsi burada.
| Model ne dedi | Kaç tahmin | Doğru |
|---|---|---|
| Maç sonucu “en az %50 eminim” | 8.662 | %63.4 |
| Maç sonucu “en az %60 eminim” | 4.140 | %72.4 |
| Maç sonucu “en az %70 eminim” | 1.810 | %81.5 |
| Çifte şans “en az %75 eminim” | 17.180 | %82.4 |
| Çifte şans “en az %80 eminim” | 8.577 | %87.0 |
| Çifte şans “en az %85 eminim” | 4.087 | %91.2 |
Dikkat edilecek şey şu: söylenen yüzde ile olan yüzde birbirini tutuyor, hatta olan biraz daha yüksek. Model abartmıyor. Bir yerde “%95 isabet” görürseniz sorulacak soru şudur: kaç tahminde, hangi pazarda ve yanlış çıkanlar sayıldı mı.
Her maça cevap vermek zorunda olsaydık
En sert ölçü: modelin her maçta üç şıktan birini işaretlemek zorunda bırakıldığı durum. Kimse böyle oynamıyor ama saklayacak bir şeyimiz de yok — yanına neyle kıyaslandığı ve tavanın nerede olduğu da yazıyor.
%75.0
Bu oyunun tavanı. Maçların %25.0’ı beraberlik bitiyor ve beraberlik neredeyse hiçbir maçta tek başına en olası sonuç olmuyor — üç şıktan birini işaretlemek zorunda olan hiç kimse, ne biz ne başkası, bu sayının belirgin üstüne çıkamaz.
%82.4
Çifte şansta “en az %75” dediğimiz 17.180 tahminin 14.149’u doğru çıktı.
Çifte şans kutusu ana sayfada da gösteriliyor. Ters yönde çıksaydı — yani dediğimizden az tutsaydı — aynı yerde aynı büyüklükte dururdu. Vitrin iyi haberi seçmek için değil, ölçüleni göstermek için var.
Başka liglerde de çalışıyor mu
Bir modelin tek ligde iyi sonuç vermesi, o ligin özelliklerine uymuş olmasıyla da açıklanabilir. Gerçek sınav başka liglerde hiç ayar yapmadan aynı sonucu vermesidir. Parametreler Süper Lig’de seçilmişti; aşağıdaki diğer ligler o seçime hiç katılmadı.
| Lig | Maç | Bizim isabet | Rastgeleye göre |
|---|---|---|---|
| Serie Aİtalya | 1.440 | %53.5 | +20.2 puan |
| EredivisieHollanda | 1.158 | %56.5 | +23.1 puan |
| BundesligaAlmanya | 1.131 | %55.3 | +21.9 puan |
| Premier Leagueİngiltere | 1.440 | %55.0 | +21.7 puan |
| Süper LigTürkiye | 1.266 | %56.3 | +23.0 puan |
| Ligue 1Fransa | 1.213 | %53.3 | +19.9 puan |
| UEFA Europa Conference League | 602 | %53.8 | +20.5 puan |
| PremiershipScotland | 783 | %54.8 | +21.5 puan |
| La Ligaİspanya | 1.454 | %54.9 | +21.5 puan |
| 1. LigTürkiye | 1.327 | %51.0 | +17.7 puan |
| UEFA Champions League | 600 | %56.0 | +22.7 puan |
| UEFA Europa League | 604 | %53.8 | +20.5 puan |
| Ligue 2Fransa | 1.304 | %46.9 | +13.5 puan |
| Championshipİngiltere | 2.171 | %47.7 | +14.3 puan |
| 2. BundesligaAlmanya | 1.149 | %48.6 | +15.2 puan |
| Segunda Divisiónİspanya | 1.783 | %48.1 | +14.7 puan |
16 ligin 16’sında model rastgele işaretlemeyi 13.5 ile 23.1 puan arasında geçiyor — toplam 19.425 maç. Aynı liglerin hepsinde, o ligin kendi geçmiş ortalamasını da geçiyor. Bu, elimizdekinin tek lige özgü bir tesadüf değil, ligden bağımsız çalışan bir yöntem olduğu anlamına geliyor.
Bu tablo neyi kanıtlıyor, neyi kanıtlamıyor
Buradaki isabet oranları, “her maça mecburen üç şıktan birini işaretle” kuralı altındaki sayılardır. Kimse böyle oynamak zorunda değil; yukarıdaki güven tablosu ürünün gerçekte ne yaptığını gösteriyor. Bu tablonun işi ikna etmek değil, YÖNTEMİN HER LİGDE çalıştığını göstermek.
Karşılaştırma noktası, üç şıktan birini rastgele işaretlemek: %33,3. Seçilmiş bir sayı değil, tanımın kendisi — üç seçenek var, biri doğru. Aradaki fark modelin kattığı şeydir ve puan olarak yazılır: iki yüzdenin farkı yüzde değil, puandır.
Daha zor bir kıyas da ölçülüyor: her ligin kendi geçmiş ortalaması — yani ev sahibi avantajını zaten bilen bir tahminci. Model onu da her ligde geçiyor; bu sayfadaki denetim ve karne o ölçüye dayanıyor.
Sayılar bağlamıyla: rastgele işaretlemek %33 verir. Üst sınır ise %75.0 — çünkü maçların %25.0’ı beraberlik ve beraberliği kimse öngöremiyor. Yani hareket alanı sanıldığı kadar geniş değil ve bu, futbolun kendi gerçeği.
Bu yüzden yüksek bir isabet oranı gördüğünüz her yerde aynı soruyu sorun: hangi maçlarda, hangi pazarda, ve yanlış çıkanlar da sayıldı mı. Bu sayfada hepsi sayılıyor.
Bu tablo yalnızca sitede yayınlanan ligleri içeriyor; ölçüm amacıyla çekilip ekrana alınmamış ligler buraya da girmiyor — karnenin kohortu ile ekranın kohortu aynı. İkinci liglerin üstünlüğü birinci liglerin belirgin biçimde altında; bu satır gizlenmiyor, tabloda görünüyor.
Kalibrasyon eğrisi
“%60 dediğimiz maçların gerçekten %60’ı doğru çıktı mı?” sorusunun cevabı. İyi kalibre bir modelde iki sütun birbirine yakındır.
| Güven aralığı | Model dedi | Gerçekte oldu | Maç |
|---|---|---|---|
| %0–%10 | %7.3 | %4.5 | 267 |
| %10–%20 | %15.8 | %15.1 | 1.127 |
| %20–%30 | %25.7 | %24.3 | 2.386 |
| %30–%40 | %35.3 | %34.9 | 4.185 |
| %40–%50 | %44.8 | %45.3 | 4.887 |
| %50–%60 | %54.5 | %54.8 | 3.365 |
| %60–%70 | %64.4 | %65.2 | 1.754 |
| %70–%80 | %74.5 | %78.8 | 991 |
| %80–%90 | %84.1 | %86.6 | 410 |
| %90–%100 | %92.5 | %96.2 | 53 |
İzlemede: az dinlenmiş ev sahipleri
Ev sahibi son maçından bu yana 4 gün veya daha az dinlenmişse, model o takımı bir dönem sistematik olarak hafife alıyordu. Son ölçümde bu sapma yok: dediğimiz %44.4, gerçekleşen %44.6 (3.129 maç).
Kusur uydurulmuş değildi ve gizlenmiş de değil: 8 Ağustos 2026’da 6 ligde 719 maçta gerçekten ölçüldü (z=+3.14) ve o günden beri bu sayfada yazıyordu. Kapsam genişleyip örneklem birkaç katına çıkınca fark istatistiksel olarak eridi — yani ilk bulgu büyük ölçüde küçük örneklem gürültüsüymüş. Bu kutu her denetim koşusundan sonra kendini günceller; sapma geri gelirse yeniden uyarı olarak görünür.
En büyük sapma: %70-80 bandında model ortalama “%74.5” dedi, gerçekte %78.8 oldu. Yani o bantta kendine yeterince güvenmiyor — hata temkinli tarafta. Düzeltilecek bir eksiklik olarak burada duruyor; gizlenmiyor.
Diğer pazarlar
Her pazar kendi baseline’ıyla ayrı ölçülür. “Model zaten iyi, bu pazar da iyidir” demek yerine her biri sınandı. Her satırın kaç maça dayandığı n sütununda — düşük Brier iyi.
Bu tablo hangi pazarın yayınlanacağına tek başına karar vermez. O karar ayrı bir yürüyen doğrulamayla verildi: katsayı ilk %75’te seçilir, son %25’lik holdout’ta sınanır. Tüm veride iyi görünüp holdout’ta çöken bir sonuç, gerçek üstünlük değil veri taramasıdır. İlk yarı gol pazarları bu sınavı geçemedi ve yayınlanmıyor.
| Pazar | n | Model Brier | Taban oran | Üstünlük |
|---|---|---|---|---|
| Çifte şans 12 | 19.425 | 0.3737 | 0.3789 | +%1.4 |
| Çifte şans 1X | 19.425 | 0.3697 | 0.4227 | +%12.5 |
| Çifte şans X2 | 19.425 | 0.4316 | 0.4940 | +%12.6 |
| Beklenen faul — deplasman | 17.577 | 0.4451 | 0.4637 | +%4.0 |
| Beklenen faul — ev sahibi | 17.577 | 0.4573 | 0.4712 | +%3.0 |
| İlk yarı — berabere | 17.618 | 0.4801 | 0.4825 | +%0.5 |
| İlk yarı çifte şans 12 | 17.618 | 0.4801 | 0.4825 | +%0.5 |
| İlk yarı çifte şans 1X | 17.618 | 0.3652 | 0.3770 | +%3.1 |
| İlk yarı çifte şans X2 | 17.618 | 0.4340 | 0.4479 | +%3.1 |
| İlk yarı — deplasman önde | 17.618 | 0.3652 | 0.3770 | +%3.1 |
| İlk yarı — ev sahibi önde | 17.618 | 0.4340 | 0.4479 | +%3.1 |
| Karşılıklı gol var | 17.619 | 0.4885 | 0.4962 | +%1.5 |
| Beklenen korner — deplasman | 16.733 | 0.4207 | 0.4706 | +%10.6 |
| Beklenen korner — ev sahibi | 16.733 | 0.4440 | 0.4749 | +%6.5 |
| Maç sonucu — beraberlik | 19.425 | 0.3737 | 0.3789 | +%1.4 |
| Maç sonucu — deplasman kazanır | 19.425 | 0.3697 | 0.4227 | +%12.5 |
| Maç sonucu — ev sahibi kazanır | 19.425 | 0.4316 | 0.4940 | +%12.6 |
| En az 3 gol | 17.619 | 0.4769 | 0.4934 | +%3.3 |
Çifte şans neden %200 topluyor
1X, 12 ve X2’nin toplamı her zaman tam olarak %200’dür. Bu bir hata değil, tanımın sonucudur: seçenekler birbirini dışlamaz, örtüşür — her sonuç üç seçenekten ikisinde birden sayılır, yani %100’lük 1X2 toplamı ikiye katlanır. Aynı sebeple 1X ile X2’nin toplamı %100’ü tam olarak beraberlik olasılığı kadar aşar. Bu değişmez, birim testiyle her derlemede doğrulanıyor.
İlk yarı hakkında dürüst not: İlk yarı modeli ayrı eğitilmiştir (tam maç tahmininin bir oranı değildir), ama üstünlüğü tam maç modelinden belirgin şekilde küçüktür — ölçülmüş hâli yukarıdaki tabloda. İlk yarı gol pazarları taban oranı yenemediği için hiç yayınlanmıyor.
Gol pazarı (en az 3 gol)
Bu pazarda model simetrik değil. Ölçüm şunu gösterdi:
- ▲Model “en az 3 gol olur” yönünde konuştuğunda gerçek bilgi taşıyor.
- ▼“Daha az gol olur” yönünde taşımıyor — bu tahminler geçmiş ortalamadan daha iyi değil.
Bu yüzden gol pazarı yalnızca modelin “en az 3 gol” yönünde belirgin sinyal verdiği maçlarda gösterilir. Diğer maçlarda bir sayı uydurmak yerine “belirgin sinyal yok” denir. Söyleyecek sözü olmadığında susmak, dolduruş yapmaktan dürüsttür.
Yanlış çıkanlar neden yanlış çıktı
Doğru tahminleri saymak kolay. Asıl öğretici olan, yanıldığımızda ne olduğu. 9.275 yanlış çıkan tahminin tamamı tek tek incelendi.
%82.6
Kaybın tek gol farkıyla belirlenme oranı.
%53.1
Kaybın beraberliğe takılma oranı.
%5.6
3+ gol farkıyla ters sonuç — gerçek şaşkınlık.
Kayıplarımızın baş sorumlusu: beraberlik
Model 19.425 maçın yalnızca %0.1’inde “beraberlik” dedi. Oysa maçların %25.4’ü berabere bitti.
Bu bir hata değil, matematiğin sonucu: beraberlik neredeyse hiçbir zaman en olası tek sonuç olmaz — üç sonuç arasında dağılan olasılıkta genelde bir taraf öne çıkar. Ama beraberlikler gerçekleştiğinde kayıp yazılır ve kayıplarımızın yarısını bunlar oluşturuyor. Çifte şansın 1X2’den bu kadar isabetli olmasının sebebi budur: beraberliği kaybetmek yerine kapsıyor.
Kayıplardan çıkarılabilecek bir parametre var mı
Maçtan ÖNCE bilinebilen faktörler tarandı: dinlenme günü, fikstür sıkışıklığı, eksik oyuncu, sezon aşaması, beklenen gol sayısı. Sonuç: kullanılabilir parametre çıkmadı.
Bir faktör ham taramada anlamlı göründü (“çok gollü beklenen maçlarda isabet +8.6 puan yüksek”). Aynı güven bandı içinde kontrol edildiğinde işaret tersine döndü (−6.9 puan) — çok gollü maçlar zaten yüksek güven bantlarında toplanıyordu, o bantlar da doğal olarak daha isabetli. Ham bulgu faktörün değil, dağılımın eseriymiş. Kontrol yapılmasaydı buradan yanlış bir parametre çıkarır, modeli bozardık.
Tavanımız: kayıpların %83’ü tek golle belirleniyor. Bu, futbolun doğal değişkenliğidir; kovalanırsa model gürültüye uyar. Kırmızı kart ve maç içi olayların payı, olay verisi çekildiğinde ayrıca ölçülecek — o veriler maçtan önce bilinemediği için parametre olamaz, ama tavanımızı gösterir.
Denedik, eklemedik
Bir fikrin kulağa doğru gelmesi yeterli değil. Denenip işe yaramadığı görülen yaklaşımlar da burada duruyor — çünkü neyi EKLEMEDİĞİMİZ, neyi eklediğimiz kadar bilgi verir.
Takımların birbirine karşı geçmişi (“ters takım” etkisi)
“X takımı Y’ye karşı ters” sezgisi test edildi. Sonuç: sinyal yok.
- Geçmiş karşılaşmalardaki sapma ile şimdiki maçın sapması arasındaki korelasyon r = −0.05 — tesadüften ayırt edilemiyor.
- En az 4 maçı olan 165 eşleşmenin 52’si “baskın” görünüyor. Ama eşleşme etkisi hiç olmayan bir dünyada bile simülasyon 46.3 tanesini üretiyor. Fazlalık +5.7, gürültü bandının içinde.
- Beklenen gollere düzeltme uygulandığında en iyi katsayı sıfır çıktı; yani düzeltme uygulamamak. Her pozitif katsayı tahmini kötüleştirdi.
Dürüst sınır: elimizdeki 3 sezonda eşleşme başına en fazla 6 maç var. Bu, “etki yoktur” demek için değil, “bu veriyle gösterilemedi” demek için yeterlidir. Daha çok sezon geldiğinde test tekrarlanacak.
Bilinen sapmayı düzeltme denemesi (keskinleştirme)
Yukarıda yazan “az güvenli olma” kusurunu düzeltmek için olasılık dağılımı, sıralamayı bozmayan bir düzeltmeyle keskinleştirildi. Sonuç: işe yaramadı, uygulanmadı.
- Katsayı ilk %75’te seçildiğinde holdout Brier 0.6020 → 0.6031 (kötüleşti).log loss de bozuldu.
- Altı ligden yalnızca üçünde iyileştirdi, üçünde bozdu. Her yerde çalışmayan bir düzeltme, düzeltme değil aşırı uyumdur.
- Kalibrasyon hatası (ECE) düzeltmek istediğimiz şeyi daha da bozdu.
Sapmanın kendisi de kırılgan çıktı: tüm veride deplasmandaki çok güçlü takımlarda +3.2 puan görünen fark, en yeni %25’lik dilimde −0.8’e dönüyor. Yani düzeltilecek kadar kararlı bir kusur değil. Başka bir yöntem denenecek; o da tutmazsa kusur olduğu gibi burada durmaya devam edecek.
Beraberlik olasılığını taban orana çekmek
Kayıplarımızın yarısı beraberliğe takıldığı için şu denendi: her maçın beraberlik olasılığını, ligin uzun vadeli beraberlik oranına doğru çekmek. Sonuç: kazandırmıyor, kötüleştiriyor.
Sebebi ölçümde ortaya çıktı: modelin ortalama beraberlik olasılığı %25.6, gerçekte beraberlik oranı %23.3. Yani model beraberliği az değil, hafifçe FAZLA söylüyor. “Model beraberliği görmüyor” izlenimi yanlış — her maça doğru olasılığı veriyor, ama beraberlik üç sonuç arasında neredeyse hiçbir zaman en yüksek olmuyor (943 maçın 3’ünde; görülen en yüksek değer %37.8). Bu matematiğin sonucu, düzeltilecek bir kusur değil. Doğru çözüm modeli zorlamak değil, çifte şansı öne çıkarmaktı.
Eksik oyuncu (sakatlık) sayısı
859 maçta, maç bazlı gerçek sakatlık kayıtlarıyla test edildi. Sonuç: ölçülebilir katkı yok.
- Eksik oyuncu farkı ile sonuç sapması arasındaki korelasyon r = −0.04. Yön doğru — eksik takım daha az atıyor — ama büyüklük gürültüden ayrılmıyor (p = 0.28).
- Modele düzeltme olarak eklendiğinde en iyi katsayı yine sıfır çıktı.
Neden şaşırtıcı değil: elimizde oyuncu kalitesi verisi yok, yani eksik yıldız ile eksik yedek aynı sayılıyor. Ayrıca süregelen sakatlıkların etkisi zaten takımın son maç sonuçlarına, dolayısıyla reytingine yansımış oluyor. Bu bir “asla” değil, “bu haliyle değil”.
Takıma özel ev sahibi avantajı
Lig geneli ev avantajı modelde zaten var (ev sahipleri maç başına 1.63 gol atıyor, deplasman 1.28). Test edilen, avantajın takımdan takıma değişmesiydi. Sonuç: katkı yok.
Takım faktörleri anlamlı görünüyordu (en yüksek 1.25, en düşük 0.79) ama modele eklendiğinde tahmin her katsayıda kötüleşti. Sezonda takım başına yalnızca ~17 ev maçı var; bu kadar veriden çıkan “ev canavarı” etiketinin çoğu gürültü.
Bağımsız güç ölçüsü (ClubElo)
Kadro değeri verisi lisansı temiz bir kaynaktan alınamadığı için, bağımsız bir takım gücü ölçüsü denendi. Sonuç: etki gerçek ama küçük (+%0.46).
Bunun gürültü olmadığını gösteren şey: katsayı seçimi ilk %75’te yapıldığında en iyi değer 0.12 çıktı ve holdout’un kendi optimumu da 0.12’de. Aşırı uyumda bu iki nokta ayrışır. Yine de bu büyüklükteki bir kazanç için lisansı belirsiz bir dış kaynağa bağımlı olunmuyor; şartlar netleşir ve daha çok sezonla doğrulanırsa eklenecek.
Teknik detay: Brier skoru ve yöntem
Yukarıdaki karşılaştırmaların arkasındaki ölçü. Brier skoru, söylenen olasılık ile gerçekleşen sonuç arasındaki kare hatanın ortalamasıdır; düşük olan iyidir. İsabet oranı “en olası şıkkı doğru bildin mi” diye sorar, Brier ise “söylediğin yüzde ne kadar doğruydu” diye sorar — ikincisi daha katıdır ve modeli düzeltmek için kullandığımız ölçü budur.
| Yöntem | Brier | Fark |
|---|---|---|
| Model | 0.5875 | — |
| Baseline: geçmiş taban oran | 0.6478 | +%9.3 |
Her maçın tahmini yalnızca o maçtan ÖNCE oynanmış maçlarla hesaplandı (yürüyen doğrulama) ve baseline aynı pencereyi kullandı — yani karşılaştırma adil. Her ligin ilk 120 maçı ısınma dönemidir, tahmin edilmez; yukarıdaki 19.425 maç modelin gerçekten tahmin ürettiği maçlardır.
Nasıl ölçüyoruz
Her tahmin için model yalnızca o maçtan ÖNCE oynanmış maçlarla eğitilir (yürüyen doğrulama). Aynı gün oynanan maçlar da dışlanır — hangisinin önce bittiği bilinmediği için güvenli taraf seçilir. Model, tahmin ettiği maçın sonucunu hiçbir şekilde göremez; aksi halde bu sayfadaki rakamlar sahte biçimde iyi çıkardı.