Blog / Analiz / Lig Analisti Olmak: 6 Adımda SQL, ELO İncelemesi ve Dashboard ile Hızlı İçgörü Rehberi
Lig Analisti Olmak: 6 Adımda SQL, ELO İncelemesi ve Dashboard ile Hızlı İçgörü Rehberi
Analiz

Lig Analisti Olmak: 6 Adımda SQL, ELO İncelemesi ve Dashboard ile Hızlı İçgörü Rehberi

Lig analisti rolüne hazırlanıyorsanız veri hazırlama, puanlama (ELO), doğrulama ve görselleştirme becerileri birbirini tamamlayan zorunlu unsurlardır. Bu rehberde sizi 6 somut adımla SQL sorgularından ELO hesaplamasına, etkileşimli dashboard tasarımına kadar götüreceğim. Her adımda pratik örnekler, uygulanabilir SQL yaklaşımları ve karar destek metrikleri bulacaksınız.

Giriş: Neden yapılandırılmış bir süreç?

Lig verisi çoğunlukla ham, dağınık ve eksik olur. Rastgele görünümler ve yüzeysel analizler yanlış içgörülere yol açar. Bir analistin işi sadece rapor üretmek değil; raporun güvenilir, tekrarlanabilir ve aksiyon üretir olmasıdır. Bu nedenle 6 adımlı bir yol haritası sunuyorum:

  1. Hedef ve veri gereksinimi belirleme
  2. Veri modelleme ve temizleme (SQL odaklı)
  3. ELO hesaplama mantığı ve SQL uygulaması
  4. Doğrulama, backtest ve kalite ölçümleri
  5. Dashboard tasarımı ve KPI seçimi
  6. Otomasyon, performans ve ölçekleme

1. Hedef ve veri gereksinimini netleştirme

Analizin amacı net olmalı: oyuncu transfer değerlemesi mi, takım performansını tahmin etmek mi, yoksa maç içi kararları desteklemek mi? Amaç farklıysa veri ve metodoloji de değişir.

  • Kısa vadeli tahmin: Son maçların ağırlıklı etkisi, yüksek K değeri (ELO için)
  • Uzun vadeli performans: Ortalama form, sabit K
  • Operasyonel içgörüler: Maç içi metrikler (xG, topa sahip olma, şut dağılımı)

Başlangıç için gereken temel tablolar: matches (maç kayıtları), teams (takımlar), players (opsiyonel), events (maç içi olaylar). Her tablonun minimum sütunlarını planlayın.

2. Veri modelleme ve temizleme (SQL ile)

Veri kalitesi, modelin doğruluğundan önce gelir. Aşağıda tipik bir maç tablosu ve temel temizleme adımları yer alıyor.

  • Örnek schema: matches(id, date, home_team_id, away_team_id, home_score, away_score, competition)
  • Eksik skor, yanlış tarih formatları, duplicate kayıt kontrolü

SQL örneği — duplicate kontrolü:

SELECT home_team_id, away_team_id, date, COUNT(*) AS cnt FROM matches GROUP BY home_team_id, away_team_id, date HAVING COUNT(*) > 1;

Temizleme ipuçları:

  • NULL skorları ayıkla veya kaynağı düzelt.
  • Tarihleri UTC'ye normalize et.
  • Takım isimlerini ID ile eşleştir; metin bazlı eşleşmeler fuzzy match ile çözülebilir.

Veri hazırlama: Rolling pencereler ve öznitelik mühendisliği

Analiz için geçmiş N maçtan özet istatistikler çıkarın: son 5 maç ortalaması, gol farkı, iç/dış performans. SQL'de window fonksiyonları bu işi kolaylaştırır.

Örnek: Son 5 maçtan gol ortalaması

SELECT team_id, date, AVG(goals) OVER (PARTITION BY team_id ORDER BY date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) AS avg_last5_goals FROM team_matches;

3. ELO hesaplaması: Mantık ve SQL uygulaması

ELO, iki oyuncu/takım arasındaki beklenen sonucu ve gerçekleşen sonucu kullanarak puanları günceller. Temel formül:

R_new = R_old + K * (S - E)

  • S = 1 (kazanma), 0.5 (beraberlik), 0 (mağlubiyet)
  • E = 1 / (1 + 10^((R_opponent - R_player)/400))
  • K = güncelleme sabiti (ör. 20-40 arası, yeni sezon için yüksek)

SQL ile yaklaşım: ELO hesaplaması sıralı (sequential) olduğu için saf set-based SQL ile doğrudan zor olabilir; iki yol sık kullanılır:

  1. Uygulama katmanında (Python/ETL) maçları tarih sırasına göre döngü ile işle ve her maç sonrası rating tablosunu güncelle.
  2. Veritabanı içinde PL/pgSQL veya stored procedure ile benzer iteratif mantık uygulanır.

Basit PL/pgSQL akışı (özet):

1) Maçları tarih sırasına göre al. 2) Her karşılaşma için takım ratinglerini çek. 3) E ve S hesapla. 4) Yeni ratingleri güncelle. 5) Rating geçmişini kaydet.

Pratik ipucu: ELO'yu maç başı puan yerine dönemsel snapshot olarak saklayın; böylece geçmişe dönük analiz ve A/B testleri daha kolay olur.

4. Doğrulama ve backtest

Modelinizi doğrulamadan üretime almayın. ELO modelinin tahmin gücünü ölçmek için:

  • Backtest: Tarihsel dönemde her maç öncesi ELO'ya bakarak tahmin başarısını ölçün.
  • Baselines: Basit modellerle (ör. son maçı kazanan devam eder) karşılaştırın.
  • Metrics: Accuracy, Brier Score, log loss gibi ölçümler kullanın.
Her metriği tek başına kullanmayın; örneğin accuracy yüksek olsa bile kalibrasyon (Brier Score) kötü olabilir.

5. Dashboard tasarımı: Hızlı içgörü için en iyi uygulamalar

Dashboard, analistin ve karar vericinin en sık ihtiyaç duyduğu soruları hızlı cevaplamalıdır. Temel bileşenler:

  • Üst seviye KPI'lar: Ortalama ELO, form endeksi, son 5 maç başarı oranı
  • Zaman serileri: ELO değişimi, gol farkı trendi
  • Karşılaştırmalar: Ev vs deplasman, rakip grubu karşılaştırma
  • Filtreler: Tarih aralığı, lig/turnuva, takım seçimi

Görsel öncelikler: İlk ekranda net bir özet (TL;DR), ikinci katmanda detaylı etkileşimli grafikler. Renkleri tarafsız kullanın; kazanma/yüksek ELO için yeşil, düşüş için kırmızı yeterlidir.

Örnek widget listesi:

  • Team Overview: Current ELO, trend sparkline, last 5 match results
  • Head-to-Head: İki takımın tarihsel ELO karşılaştırması
  • Predictive Score: Bir sonraki maç için ELO tabanlı beklenen sonuç

6. Otomasyon, performans ve ölçekleme

Veri güncellemelerini otomatikleştirmek için ETL boru hattı kurun. Günlük veya maç sonrası tetiklenecek bir pipeline şunları yapmalı:

  • Ham veriyi al, temizle ve matches tablosuna yaz
  • ELO hesaplamasını çalıştır ve snapshot oluştur
  • Feature engineering (rolling metrikler) ve dashboard veri katmanını güncelle

Performans için dikkat edilmesi gerekenler:

  • Index'leme: date, team_id, match_id üzerinde uygun index'ler
  • Snapshotlama: Her hesaplama için tüm geçmişi yeniden hesaplamak yerine sadece son değişiklikleri uygula
  • Partitioning: Çok büyük lig verisi için tarih veya sezon bazlı partition

Sonuç: Nasıl hızlı ve güvenilir içgörü sağlarsınız?

Lig analisti olmak teknik bilgi kadar süreç disiplinini de gerektirir. Özet adımlar:

  1. Amacı netleştir, gerekli veri modelini kur.
  2. SQL ile veriyi güvenilir biçimde hazırla ve rolling özellikler üret.
  3. ELO gibi rating sistemlerini kontrollü K parametresi ile uygula ve sakla.
  4. Backtest ile modelini doğrula; performansı sayısal metriklerle değerlendir.
  5. Dashboard ile karar vericiyi hızlı içgörüyle donat; en önemli KPI'ları ilk ekranda göster.
  6. Otomasyon ve performans optimizasyonu ile süreci ölçeklendir.

Kapanış önerisi: İlk prototipi küçük tutul. Tek bir lig veya sezon üzerinde çalışıp yöntemi oturttuktan sonra ölçeği genişletin. Bu yaklaşım hem hata payını düşürür hem de hızla değer üretmenizi sağlar.

Bu rehberdeki SQL örnekleri ve ELO mantığı, uygulamada kullanılmak üzere yeterli bir iskelet sunar. Sonraki adımınız, gerçek veriyle bir pilot kurmak olmalı: 1 hafta içinde ilk dashboard'u ve ELO backtest raporunu oluşturup sonuçları değerlendirin.