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 datafcPaketle 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_datamatch_stats_datamomentum_datalineups_datasubstitutions_datagoal_networks_datashots_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_df = match_data(
tournament_id=52,
season_id=63814,
week_number=22
)match_odds_data
match_odds_df = match_odds_data(
match_df=match_df
)match_stats_data
match_stats_df = match_stats_data(
match_df=match_df
)momentum_data
momentum_df = momentum_data(
match_df=match_df
)lineups_data
lineups_df = lineups_data(
match_df=match_df
)substitutions_data
substitutions_df = substitutions_data(
match_df=match_df
)goal_networks_data
goal_networks_df = goal_networks_data(
match_df=match_df
)shots_data
shots_df = shots_data(
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_df = coordinates_data(
lineups_df=lineups_df
)Bağımlı Çalışmayan Fonksiyon
standings_data, herhangi bir bağımlılık olmadan çalışmaktadır.
standings_data
standings_df = standings_data(
tournament_id=52,
season_id=63814
)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.