Files
iddaai-be/mds/V21.1_UPDATE_SUMMARY.md
T
fahricansecer 2f0b85a0c7
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s
first (part 2: other directories)
2026-04-16 15:11:25 +03:00

40 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-db` veritabanı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.py` dosyası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:** `ScoreCalculator` motoruna 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_pick`** adı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ık `VALUE` veya `MIRACLE` stratejisiyle kupon talep edildiğinde sistem doğrudan `value_pick` tahminlerini kullanıyor.
* Frontend ekibi için `API_RESPONSE_SCHEMA.md` dokümantasyonu yeni `value_pick` alanı eklenerek güncellendi.
## 6. Özel Backtest Analizleri
* Sadece Top League takımlarını analiz edebilmek için `backtest_top_leagues_recent.py` ve 7-10 Şubat gibi spesifik tarih aralıkları için `backtest_7_10_subat.py` adı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_xi` fonksiyonunun 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.py` iç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).