Paket ve Blog
Futbol analitiği alanındaki çalışmalarımı bir adım ileriye taşımak adına geliştirdiğim datafc
paketinin ilk sürümünü geçtiğimiz hafta yayınladım.
Kullanıma başlamak için terminalde aşağıdaki komutu çalıştırabilirsiniz:
pip install datafc
Paketle ilgili daha fazla bilgiye ulaşmak için PyPI veya GitHub sayfasını ziyaret edebilirsiniz.
Bununla birlikte, datafc
çatısı altında ve veri, kod ve futbol üçgeninde içerikler üretmek amacıyla blog sayfası oluşturdum.
İlk Sürümün Amacı
Futbol analitiğinde veriye dayalı kararlar almak için doğru, temiz ve erişilebilir veri kritik bir öneme sahiptir. datafc
, bu ihtiyacı karşılamak amacıyla veri çekme, işleme ve dışa aktarma süreçlerini optimize eden bir Python paketi olarak geliştirildi.
Temel Süreçler
- Veri Çekme: Futbol verilerinin çeşitli kaynaklardan otomatik olarak toplanmasını kapsar.
- Veri İşleme: Toplanan ham verilerin analize uygun hale getirilmesi için çeşitli işlemler uygulanır.
- Veri Dışa Aktarma: İşlenmiş veriler, kullanıcıların kendi analiz süreçlerinde veya farklı platformlarda kullanabilmesi için çeşitli formatlarda dışa aktarılabilir.
Bu üç aşamalı yapı sayesinde datafc
, futbol verisiyle çalışan herkes için hızlı, pratik ve güvenilir bir çözüm sunmayı hedefliyor.
Selenium Kullanımı
Futbol verilerini güvenilir ve tutarlı bir şekilde çekebilmek, analitik süreçlerin sağlıklı işlemesi için kritik bir gerekliliktir. Ancak, doğrudan API veya HTTP istekleriyle veri çekme girişimlerimde aynı maç verileri için yapılan farklı taleplerin tutarsız sonuçlar ürettiğini gözlemledim.
Bu sorunu aşmak ve daha güvenilir bir veri çekme süreci oluşturmak için datafc
, Selenium WebDriver kullanmaktadır. Bu sayede datafc
, Sofascore gibi platformlardan veriyi doğrudan tarayıcı üzerinden yüklenen sayfa içeriğinden alarak eksiksiz ve tutarlı bir şekilde futbol analitiği çalışmalarında sağlam bir temel oluşturur.
match_data
ve lineups_data
Bağımlılıkları
datafc
, veri çekme sürecinin verimliliğini artırmak ve gereksiz istekleri önlemek amacıyla, belirli fonksiyonları doğrudan veri kaynağına erişmek yerine merkezi veri yapılarına bağımlı olarak çalışacak şekilde tasarlandı.
Bu yapı sayesinde:
- Her fonksiyonun ayrı ayrı veri çekme isteği göndermesi engellenir.
- Gereksiz ağ trafiği önlenerek performans optimizasyonu sağlanır.
match_data
Maçlara ilişkin temel bilgileri içerdiğinden, aşağıdaki altı fonksiyon, veriyi yeniden çekmek yerine mevcut match_data
çıktısını kullanır:
match_odds_data
match_stats_data
momentum_data
lineups_data
substitutions_data
goal_networks_data
shots_data
lineups_data
Oyuncu kadrolarını içerdiğinden, coordinates_data
fonksiyonu doğrudan bu veriyi kullanarak gereksiz veri çekimlerini önler. Ancak, lineups_data
fonksiyonunun çalışabilmesi için match_data
gereklidir.
standings_data
Tamamen bağımsızdır ve herhangi bir veri kaynağına bağımlı olmadan doğrudan çalıştırılabilir.
Bu bağımlılık yönetimi, veri çekme sürecini hızlandırarak gereksiz tekrarları ortadan kaldırmak ve analiz süreçlerini daha verimli hale getirmek için geliştirilmiştir.
Uygulama
Bir örnek senaryo üzerinden datafc
kullanımını inceleyelim.
Süper Lig 2024/25 sezonunun 22. haftasındaki 10 farklı veriyi çekmek istediğimizi düşünelim.
Süper Lig ve 2024/25 sezonuna ait ID bilgileri sırasıyla 52 ve 63814 olarak belirlenmiştir. Bu bilgileri doğrudan Sofascore’un web sitesi üzerinden temin edebilirsiniz.
Paketin İçe Aktarılması
from datafc.sofascore import (
match_data,
match_odds_data,
match_stats_data,
momentum_data,
lineups_data,
coordinates_data,
substitutions_data,
goal_networks_data,
shots_data,
standings_data )
match_data
Bağımlı Çalışan Fonksiyonlar
= match_data(
match_df =52,
tournament_id=63814,
season_id=22
week_number )
match_odds_data
= match_odds_data(
match_odds_df =match_df
match_df )
match_stats_data
= match_stats_data(
match_stats_df =match_df
match_df )
momentum_data
= momentum_data(
momentum_df =match_df
match_df )
lineups_data
= lineups_data(
lineups_df =match_df
match_df )
substitutions_data
= substitutions_data(
substitutions_df =match_df
match_df )
goal_networks_data
= goal_networks_data(
goal_networks_df =match_df
match_df )
shots_data
= shots_data(
shots_df =match_df
match_df )
lineups_data
Bağımlı Çalışan Fonksiyonlar
lineups_data
da match_data
bağımlı çalıştığı için aslında öncesinde çekmiş olduk.
coordinates_data
= coordinates_data(
coordinates_df =lineups_df
lineups_df )
Bağımlı Çalışmayan Fonksiyon
standings_data
, herhangi bir bağımlılık olmadan çalışmaktadır.
standings_data
= standings_data(
standings_df =52,
tournament_id=63814
season_id )
Sonuç
datafc
, uzun süredir lokal ortamda geliştirdiğim ve özellikle web uygulamamda aktif olarak kullandığım kodların paket haline getirilmiş versiyonudur. Futbol verilerini daha erişilebilir, düzenli ve verimli bir şekilde yönetmek için oluşturulan bu paket, veri çekme, işleme ve dışa aktarma süreçlerini otomatikleştirerek analitik çalışmaların hızını ve doğruluğunu artırmayı amaçlamaktadır.
Henüz v1.0.0 sürümünde olmasına rağmen, zamanla gelecek yeni özellikler, performans iyileştirmeleri ve genişletilmiş veri kaynaklarıyla futbol analitiği dünyasında önemli bir yer edinmeyi hedeflemektedir. Gelecekteki sürümlerde, farklı veri sağlayıcılarıyla entegrasyon, analiz ve görselleştirme araçları, gelişmiş istatistiksel modelleme gibi pek çok yeni özellik planlanmaktadır.
Bu yolculukta, geri bildirimleriniz ve katkılarınız, paketin gelişimine büyük değer katacaktır. datafc
’nin sunduğu altyapıyı daha da ileriye taşımak ve futbol verisiyle çalışan herkes için güçlü bir kaynak haline getirmek en büyük hedefimdir.
Futbol analitiğine ilgi duyan herkesin bu ekosisteme dahil olması ve datafc
’yi kendi projelerinde kullanarak katkı sağlaması dileğiyle.
Sevgiler.