4.7 KiB
4.7 KiB
Suggest-Bet AI Engine V21.1 Güncelleme Özeti (Mart 2026)
Bu doküman, sistemin performansını artırmak, veri tutarsızlıklarını gidermek ve yeni bahis stratejileri eklemek amacıyla yapılan kapsamlı "Check-up" ve geliştirme sürecinin özetidir.
1. Sistem ve Veritabanı Analizi
- Docker üzerindeki
suggest-bet-dbveritabanına bağlanılarak tablolar (leagues, matches, teams, players vb.) ve canlı veriler incelendi. - V21 Yapay Zeka Motoru'nun (Isotonic Calibration, Upset Detection) çalışma prensibi analiz edildi. Modelin özellikle Top League maçlarında taraf bahsinden (MS) ziyade neden defansif/garantici ("1.5 Üst" ağırlıklı) bir filtreleme kullandığı tespit edildi.
2. Python Testlerinin Onarılması
test_single_match_orchestrator.pydosyasında, basketbol tahmin sınıfında (BasketballMatchPrediction) yaşanan parametre uyuşmazlığı (mock object kwargs hatası) tespit edildi.- İlgili test objeleri güncellenerek Python test skoru tekrar %100 başarılı (26/26) hale getirildi.
3. Yapay Zeka Skor Modeli Güncellemesi (Kritik Düzeltme)
- Sorun: Sistemin Skor Modeli (XGBoost), V21 ile gelen 12 yeni özelliği (hakem istatistikleri, takım momentumu, sürpriz ihtimali vb.) tanımadığı için çökmeye ve basit bir xG (Poisson Dağılımı) hesabına (fallback) düşmeye başlamıştı.
- Çözüm: Veritabanındaki 19.819 adet bitmiş maç yeni V21 özellikleriyle baştan çıkarıldı (
extract_training_data.py). Skor (Score) ve Market (MS, OU) XGBoost modelleri yeniden eğitildi. Artık İlk Yarı (HT) ve Maç Sonucu (FT) skor tahminleri xG'ye değil, tam teşekküllü ve güncel makine öğrenmesine dayanmaktadır.
4. Mantıksal Tutarlılık Kilidi (Consistency Check)
- Sorun: Model bazen "Deplasman kazanır (MS2)" demesine rağmen skor tahmininde istatistiksel ortalamalara aldanıp "2-1 biter" gibi çelişkili skorlar üretebiliyordu.
- Çözüm:
ScoreCalculatormotoruna bir kilit ekledik. Artık skor algoritması, ana MS tahminine sadık kalarak, MS ihtimaline zıt düşen (Örn: MS2 ise 1-0, 2-1) tüm olasılıkları elliyor ve kendi içinde en mantıklı olan tutarlı skoru (Örn: 0-1, 1-2) seçip API'ye gönderiyor.
5. Yeni Özellik: Sürpriz ve Değerli Tahmin (value_pick)
- Sistemin aşırı garantici (Main Pick) yapısını bozmadan, yüksek oran arayan kullanıcılar için API'ye
value_pickadında yeni bir obje eklendi. - Model artık her maç için oranları 1.60 ve üzeri olan, risk-ödül dengesi en yüksek (Confidence * Odds) "Sürpriz/Değerli" bahsi de ayrıca hesaplayıp sunuyor.
- Bu özellik hem NestJS (Backend) DTO'larına hem de çoklu maç üreten Akıllı Kupon Motoruna (
build_coupon) entegre edildi. ArtıkVALUEveyaMIRACLEstratejisiyle kupon talep edildiğinde sistem doğrudanvalue_picktahminlerini kullanıyor. - Frontend ekibi için
API_RESPONSE_SCHEMA.mddokümantasyonu yenivalue_pickalanı eklenerek güncellendi.
6. Özel Backtest Analizleri
- Sadece Top League takımlarını analiz edebilmek için
backtest_top_leagues_recent.pyve 7-10 Şubat gibi spesifik tarih aralıkları içinbacktest_7_10_subat.pyadında test araçları geliştirildi. - Backtest sonuçlarına göre modelin Top League maçlarında taraf bahsi (MS) verdiği spesifik durumlardaki %83.3 başarısı ve İlk Yarı gol (HT_OU05) pazarındaki %80.0 başarısı verilerle kanıtlandı.
7. Muhtemel 11 (Probable XI) Algoritması Optimizasyonu
- Sorun: Sistem, devre arası transfer olan oyuncuları (Örn: T. Abraham) muhtemel 11'de göstermeye devam ediyordu çünkü istatistiksel geçmişi son 180 gün (6 ay) üzerinden hesaplıyordu.
- Çözüm:
_build_probable_xifonksiyonunun veri tarama penceresi son 180 günden son 30 güne (yaklaşık 4-5 maç) düşürüldü. - Bu sayede sistem artık transfer dönemlerine ve uzun süreli sakatlıklara anında tepki vererek Beşiktaş, Galatasaray gibi takımların en güncel rotasyonlarını (Örn: Galatasaray'da N. Lang, G. Sara) kusursuz bir şekilde yakalayabiliyor.
8. Playable (Oynanabilirlik) Kalite Duvarı
- Sorun: Modelin bazen "Garantici" (Playable=True) listesine aldığı tahminler, ihtimali yüksek olsa bile yeterli kalite puanına sahip değildi (C sınıfı maçlar listeye sızabiliyordu).
- Çözüm:
single_match_orchestrator.pyiçindeki oynanabilirlik sınavına katı bir kilit eklendi:if play_score < 60.0: playable = False. - Etki: Model artık 119 maçlık zorlu bir fikstürde önüne gelen 48 maçı oynamak yerine sadece en çok güvendiği A ve B kalitesindeki 10 maçı seçiyor. Bu sayede "Playable=True" olan ana tahminlerin isabet oranı %70.8'den %90.0'a çıkarıldı (10 maçta 9 isabet).