elliptic-event-aware-splitting / crisp_dm_report.md
MucahitSylmz's picture
CRISP-DM süreç raporu eklendi
26ea25e verified
# CRISP-DM SÜREÇ RAPORU
## Topolojik Kırılma Noktasına Göre Veri Bölme: Bitcoin Kara Para Aklama Tespitinde Data Leakage, Değerlendirme Yanlılığı ve Performans Şişmesi
---
> Bu rapor, projenin tüm yaşam döngüsünü **CRISP-DM (Cross-Industry Standard Process for Data Mining)** çerçevesine göre yapılandırılmış şekilde sunar. Her faz, yapılan işleri, alınan kararları ve elde edilen çıktıları içerir.
---
## CRISP-DM Genel Bakış
```
┌─────────────────────────────────────────────────────────────┐
│ CRISP-DM DÖNGÜSÜ │
│ │
│ 1. İş Anlayışı ──────► 2. Veri Anlayışı │
│ ▲ │ │
│ │ ▼ │
│ 6. Dağıtım ◄──── 3. Veri Hazırlama │
│ ▲ │ │
│ │ ▼ │
│ 5. Değerlendirme ◄── 4. Modelleme │
│ │
└─────────────────────────────────────────────────────────────┘
```
---
# FAZ 1: İŞ ANLAYIŞI (Business Understanding)
## 1.1. İş Problemi
Bitcoin ağında kara para aklama (Anti-Money Laundering — AML) tespiti, finansal düzenleyiciler ve kripto para borsaları için kritik bir problemdir. Yasa dışı işlemlerin ağdaki toplam işlemlere oranı düşüktür (~%10), ancak her bir kaçırılan yasa dışı işlem milyonlarca dolarlık zarara ve yasal yaptırımlara yol açabilir.
## 1.2. Araştırma Problemi
Mevcut çalışmalar, makine öğrenmesi modellerini eğitirken veriyi ya **rastgele** ya da **sabit bir takvim noktasından** (ör. Timestep 34) böler. Bu yaklaşımların ikisi de ciddi sorunlar taşır:
- **Rastgele bölme:** Gelecek bilgisini eğitim setine sızdırır (data leakage) → yapay yüksek performans
- **Sabit kronolojik bölme:** Ağdaki yapısal krizleri (dark market kapanması, düzenleyici baskınlar) görmezden gelir → gerçekçi olmayan değerlendirme
## 1.3. Hipotezler
| # | Hipotez | Ölçüm |
|---|---------|-------|
| H1 | Topolojik kırılma noktasından bölme, kronolojik bölmeden daha iyi sonuç verir | Illicit F1 farkı |
| H2 | Rastgele bölme performansı yapay olarak şişirir | Walk-forward'a göre sapma (%) |
## 1.4. Başarı Kriterleri
| Kriter | Eşik |
|--------|------|
| Topolojik kırılma F1'i kronolojik F1'den yüksek | En az 3/4 modelde |
| Topolojik kırılma walk-forward sapması | <%10 (dürüstlük bandı içinde) |
| Rastgele bölme şişme oranı | >%10 (şişme kanıtı) |
## 1.5. Proje Planı
| Aşama | CRISP-DM Fazı | İçerik |
|-------|--------------|--------|
| 1 | İş Anlayışı | Problem tanımı, hipotezler, literatür taraması |
| 2 | Veri Anlayışı | Elliptic veri seti inceleme, olay tipi keşfi |
| 3 | Veri Hazırlama | Temizleme, özellik mühendisliği, graf yapısı |
| 4 | Modelleme | 4 model × 5 strateji = 20 deney + GraphSAGE |
| 5 | Değerlendirme | Walk-forward, dürüstlük, sızıntı testleri |
| 6 | Dağıtım | HF Hub repo, tekrarlanabilir scriptler, rapor |
---
# FAZ 2: VERİ ANLAYIŞI (Data Understanding)
## 2.1. Veri Kaynağı
**Elliptic Bitcoin Dataset** (Weber et al., KDD 2019)
- **Kaynak:** [Kaggle](https://www.kaggle.com/datasets/ellipticco/elliptic-data-set)
- **Yayın:** "Anti-Money Laundering in Bitcoin: Experimenting with Graph Convolutional Networks for Financial Forensics"
- **Atıf sayısı:** 500+ (2019–2026)
## 2.2. Veri Seti Yapısı
| Dosya | Boyut | İçerik |
|-------|-------|--------|
| `elliptic_txs_features.csv` | 657.7 MB | 203,769 düğüm × 167 sütun (txId + timestep + 165 özellik) |
| `elliptic_txs_classes.csv` | 3.2 MB | 203,769 düğüm × 2 sütun (txId, class: 1/2/unknown) |
| `elliptic_txs_edgelist.csv` | 4.3 MB | 234,355 kenar × 2 sütun (txId1, txId2) |
## 2.3. Temel İstatistikler
| Metrik | Değer |
|--------|-------|
| Toplam düğüm | 203,769 |
| Etiketli düğüm | 46,564 (%22.8) |
| İllicit (kara para) | 4,545 (%9.8 etiketliler içinde) |
| Licit (yasal) | 42,019 (%90.2) |
| Etiketsiz | 157,205 (%77.2) |
| Kenar sayısı | 234,355 (yönlü) |
| Özellik sayısı | 165 (94 local + 71 aggregated) |
| Zaman adımları | 49 (~2 haftalık aralıklar) |
| Ortalama düğüm derecesi | ~2.3 |
## 2.4. Veri Kalitesi Denetimi
| Sorun | Tespit | Etki |
|-------|--------|------|
| Eksik değer (NaN) | 0 | Yok |
| Sonsuz değer (Inf) | 0 | Yok |
| Outlier hücre oranı | %16.74 (IQR yöntemi) | Orta — clipping gerekli |
| Sınıf dengesizliği | %9.8 illicit vs %90.2 licit | Yüksek — SMOTE/class_weight gerekli |
| Etiketsiz veri | %77.2 | Eğitim seti sınırlı |
| Anonim özellikler | 165 özelliğin hiçbirinin ismi yok (PCA uygulanmış) | Özellik yorumlaması sınırlı |
## 2.5. Zamansal Analiz — 5 Olay Tipi Keşfi
Veri setinin zamansal yapısını analiz ettiğimizde, timestep'leri 5 farklı olay tipine ayırdık:
| Olay Tipi | Timestep'ler | İllicit Oranı | İşlem Sayısı | Açıklama |
|-----------|-------------|---------------|-------------|----------|
| 🔴 Dark Market Zirvesi | 9,11,13,15,16,20,25,26,28,29,32 | **%26.5** | 8,223 | Kara para aklamanın zirve yaptığı dönemler |
| ⚫ Kapanma (Shutdown) | 43 | %1.8 | 1,370 | Bilinen dark market kapanması |
| 🔵 Kapanma Sonrası | 44,45,46 | %0.9 | 3,524 | Suçluların sessizleştiği dönem |
| 🟠 Toparlanma | 47,48,49 | %6.4 | 1,793 | Yeni aktörlerin girişi |
| 🟢 Normal Aktivite | Geri kalan 31 TS | %7.0 | 31,654 | Standart ağ davranışı |
**Kritik gözlem:** Dark market zirvesinde illicit oranı **%26.5** iken, kapanma sonrası **%0.9**'a düşüyor — **30 kat fark.** Bu, distribution shift'in somut kanıtıdır.
## 2.6. Topolojik Metrikler
49 timestep için NetworkX ile hesaplanan ağ metrikleri:
| Metrik | Min | Max | Ortalama | Yorum |
|--------|-----|-----|----------|-------|
| Düğüm sayısı | 485 | 7,140 | 4,159 | Ağ boyutu çok değişken |
| Kenar sayısı | 504 | 8,493 | 4,782 | Kenarlar düğümlerle paralel |
| Yoğunluk (density) | 0.00017 | 0.00214 | 0.00047 | Çok seyrek graf |
| Bağlantılılık (CC ratio) | 0.035 | 0.221 | 0.098 | Parçalı yapı |
| Bileşen sayısı | 94 | 2,458 | 830 | Çok sayıda izole küme |
| Ortalama derece | 1.00 | 2.38 | 1.62 | Düşük bağlantılılık |
**Keşif:** Ağ metrikleri zamanla dramatik değişiyor — bu, sabit bölme noktasının yetersizliğinin topolojik kanıtı.
---
# FAZ 3: VERİ HAZIRLAMA (Data Preparation)
## 3.1. Veri Temizleme
| Adım | İşlem | Etki |
|------|-------|------|
| NaN/Inf temizleme | `nan_to_num(X, nan=0.0, posinf=0.0, neginf=0.0)` | 0 hücre etkilendi |
| IQR outlier clipping | `clip(X, Q1-1.5×IQR, Q3+1.5×IQR)` | %16.74 hücre kırpıldı |
| Düşük varyans çıkarma | `var > 1e-6` filtresi | 47 özellik çıkarıldı (165 → 118) |
## 3.2. Ön İşleme Pipeline Karşılaştırması
6 farklı pipeline'ı kronolojik bölme (TS ≤ 39 train, > 39 test) üzerinde LightGBM ile test ettik:
| # | Pipeline | Illicit F1 | Ham'a Göre Fark |
|---|----------|-----------|-----------------|
| 1 | Ham Veri | 0.7511 | — |
| 2 | StandardScaler | 0.7467 | -0.0044 |
| 3 | RobustScaler | 0.7450 | -0.0061 |
| 4 | Clip + RobustScaler | 0.7504 | -0.0007 |
| 5 | **Clip + VarFilter + RobustScaler** | **0.7605** | **+0.0094** |
| 6 | Clip + RobustScaler + SMOTE | 0.7514 | +0.0003 |
**Seçilen pipeline:** Clip + VarFilter + RobustScaler (F1=0.7605)
**Önemli bulgu:** Pipeline etkisi (+0.9 puan) bölme stratejisi etkisinin (~15 puan) yanında ihmal edilebilir. Bu, **veri bölme kararının ön işlemeden çok daha kritik olduğunu** gösterir.
## 3.3. Sınıf Dengesizliği Yönetimi
| Yöntem | Uygulama | Nerede |
|--------|----------|-------|
| SMOTE | Eğitim setinde sentetik azınlık örnekleri | Tabular modeller (Elliptic run_all.py) |
| Class weight | `scale_pos_weight` / `balanced_subsample` | Tüm modellerde |
| Threshold optimizasyonu | 0.1–0.9 aralığında F1 maksimize eden eşik arama | Tüm modellerde |
## 3.4. Graf Verisi Hazırlama (GraphSAGE için)
| İşlem | Detay |
|-------|-------|
| Etiketli düğümler arası kenarlar | 36,624 kenar → 73,248 (undirected) |
| Özellik normalizasyonu | RobustScaler (tüm etiketli düğümler üzerinde) |
| PyG Data nesnesi | `Data(x=X_tensor, edge_index=edge_index, y=y_tensor)` |
| Inductive training | Test kenarları eğitimde kullanılmaz |
## 3.5. Bölme Stratejileri
| # | Strateji | Train | Test | Train İllicit | Test İllicit |
|---|----------|-------|------|---------------|--------------|
| 1 | Rastgele (%80/%20) | 37,251 | 9,313 | 3,636 | 909 |
| 2 | Kronolojik (TS ≤ 39) | 35,380 | 11,184 | 3,909 | 636 |
| 3 | **Topolojik Kırılma (TS < 29)** | **25,207** | **21,357** | **2,542** | **2,003** |
| 4 | Kayan Pencere (son 10 TS test) | 35,380 | 11,184 | 3,909 | 636 |
| 5 | Düşmanca-Kriz | 38,341 | 8,223 | 2,370 | 2,175 |
**Not:** Topolojik kırılma daha az eğitim verisi kullanıyor (25K vs 35K) — buna rağmen daha iyi sonuç veriyor.
---
# FAZ 4: MODELLEME (Modeling)
## 4.1. Topolojik Kırılma Noktası Tespit Algoritması
Ağın "matematiksel sağlığını" her timestep için ölçen etiket-görmez bir algoritma geliştirdik:
```
Sağlık(t) = [norm(yoğunluk) + norm(bağlantılılık) + (1 - norm(bileşen_sayısı))] / 3
Kırılma = argmin_t [Sağlık(t) - Sağlık(t-1)]
```
**Sonuç:** Algoritma hiçbir etikete bakmadan **Timestep 29'u** tespit etti — dark market aktivitesinin zirve yaptığı dönemin (%28-30 illicit oran) tam ortası.
## 4.2. Model Mimarileri
### Tabular Modeller
| Model | Hiperparametreler | Özellik |
|-------|-------------------|---------|
| **LightGBM** | n_estimators=500, max_depth=12, lr=0.05, num_leaves=63, subsample=0.8 | Hız ve performans dengesi |
| **Random Forest** | n_estimators=500, max_depth=20, min_samples_leaf=5, class_weight=balanced_subsample | Elliptic'te en güçlü baseline |
| **XGBoost** | n_estimators=500, max_depth=10, lr=0.05, subsample=0.8, min_child_weight=5 | Tabular SOTA |
### Graf Sinir Ağı
| Parametre | Değer |
|-----------|-------|
| **Model** | GraphSAGE (Hamilton et al., 2017) |
| **Katman** | 3 × SAGEConv (mean aggregation) |
| **Gizli boyut** | 128 |
| **Dropout** | 0.3 |
| **BatchNorm** | Her katmandan sonra |
| **Optimizer** | Adam (lr=0.005, weight_decay=5e-4) |
| **Scheduler** | CosineAnnealingLR |
| **Epoch** | 200 (early stopping patience=30) |
| **Training** | Strict inductive — test kenarları eğitimde yok |
## 4.3. Deney Sonuçları: 5 Strateji × 4 Model = 20 Deney
### Illicit F1 Score
| Model | Rastgele | Kronolojik | **Topolojik Kırılma** | Kayan Pencere | Düşmanca-Kriz |
|-------|---------|-----------|---------------------|--------------|--------------|
| LightGBM | 0.963 | 0.764 | **0.873** | 0.764 | 0.978 |
| Random Forest | 0.945 | 0.730 | **0.884** | 0.730 | 0.970 |
| XGBoost | 0.967 | 0.750 | **0.869** | 0.750 | 0.977 |
| GraphSAGE | 0.932 | 0.702 | 0.676 | 0.718 | 0.958 |
### Precision / Recall / AUROC
| Model | Strateji | F1 | Precision | Recall | AUROC |
|-------|----------|-----|-----------|--------|-------|
| LightGBM | **Topolojik** | **0.873** | 0.947 | **0.809** | 0.970 |
| Random Forest | **Topolojik** | **0.884** | 0.973 | **0.809** | 0.965 |
| XGBoost | **Topolojik** | **0.869** | 0.936 | **0.811** | 0.968 |
| GraphSAGE | **Topolojik** | 0.676 | 0.599 | **0.776** | 0.938 |
### Hipotez 1 Sonucu: ✅ DOĞRULANDI
| Model | Topolojik F1 | Kronolojik F1 | **Fark** |
|-------|-------------|--------------|---------|
| Random Forest | **0.884** | 0.730 | **+15.4 puan** |
| LightGBM | **0.873** | 0.764 | **+10.9 puan** |
| XGBoost | **0.869** | 0.750 | **+11.9 puan** |
| GraphSAGE | 0.676 | 0.702 | -2.6 puan |
3/4 modelde topolojik kırılma bölmesi kronolojik bölmeyi geçti. Başarı kriteri karşılandı.
---
# FAZ 5: DEĞERLENDİRME (Evaluation)
## 5.1. Walk-Forward Validasyon (Gerçek Dünya Simülasyonu)
Her 3 timestep'lik pencereyi sırayla test eden walk-forward validasyon, modelin gerçek dünyada nasıl performans göstereceğinin en güvenilir tahminidir.
| Model | Walk-Forward F1 |
|-------|----------------|
| XGBoost | **0.855** |
| Random Forest | **0.836** |
| LightGBM | **0.829** |
| GraphSAGE | **0.786** |
## 5.2. Dürüstlük Testi (Hipotez 2)
Her stratejinin walk-forward referansına sapması:
| Strateji | Walk-Forward'a Sapma | Durum | Yorum |
|----------|---------------------|-------|-------|
| **Topolojik Kırılma** | **-%0.4** | ✅ DÜRÜST | Gerçek dünyaya neredeyse birebir yakın |
| Kronolojik | -%10.9 | ⚠️ PESİMİST | Gerçeği olduğundan kötü gösteriyor |
| Kayan Pencere | -%10.4 | ⚠️ PESİMİST | Kronolojikle benzer |
| Rastgele | **+%15.2** | 🔴 ŞİŞME | Gerçek dünyada olmayan performans |
| Düşmanca-Kriz | **+%17.5** | 🔴 ŞİŞME | En fazla şişiren strateji |
**Hipotez 2 Sonucu: ✅ DOĞRULANDI** — Rastgele bölme %15.2 şişme gösteriyor. Başarı kriteri karşılandı.
## 5.3. Kanıt Mekanizması (6 Bağımsız Test)
### Test 1: Walk-Forward Performans Şişmesi
| Ölçüm | Değer |
|-------|-------|
| Random split F1 | 0.965 |
| Walk-forward ortalama F1 | 0.796 |
| **Şişme** | **%21.2** |
### Test 2: Kriz Çöküşü
Walk-forward'da dark market kapanması sırasında (TS 43-45):
| Dönem | F1 |
|-------|-----|
| Normal dönem (TS 10-12) | 0.972 |
| Kriz (TS 43-45) | **0.066** |
| Kapanma sonrası (TS 46-48) | 0.033 |
### Test 3: Rastgele Etiket Testi
Etiketler rastgele karıştırıldığında bile random split skor üretiyor:
| Durum | Random Split F1 | Temporal Split F1 | Oran |
|-------|----------------|------------------|------|
| Gerçek etiket | 0.965 | 0.738 | 1.3x |
| **Rastgele etiket** | **0.120** | **0.031** | **3.9x** |
### Test 4: Sızıntı Haritası
| Ölçüm | Random Split | Temporal Split | Fark |
|-------|-------------|----------------|------|
| Komşuluk sızıntı oranı | **0.502** | **0.000** | **502x** |
### Test 5: Yapı Duyarlılığı
| Özellik Seti | Random F1 | Temporal F1 | Fark |
|-------------|----------|------------|------|
| Local (94) | 0.943 | 0.669 | +0.274 |
| Aggregated (71) | 0.902 | 0.627 | +0.275 |
| Tümü (165) | 0.965 | 0.738 | +0.227 |
| **Agg. ek katkısı** | **+0.022** | **+0.069** | **3.1x** |
### Test 6: Dürüstlük — Kendi Yöntemimizi Sorgulama
| Strateji | Sapma | Dürüstlük |
|----------|-------|-----------|
| Rastgele | +%20.9 | 🔴 Şişiriyor |
| **Topolojik Kırılma** | **+%8.0****-%0.4** (güncel) | ✅ Dürüst |
| Kronolojik | -%6.7 | ✅ Dürüst (pesimist) |
## 5.4. Literatür Karşılaştırması
### Elliptic Veri Setinde Yayınlanmış Tüm Sonuçlar
| Çalışma | Model | Illicit F1 | Protokol | Seeds |
|---------|-------|-----------|----------|-------|
| Weber et al., 2019 (KDD) | Random Forest | 0.796 | Transductive | 1 |
| Weber et al., 2019 | GCN | 0.628 | Transductive | 1 |
| Pareja et al., 2020 (AAAI) | EvolveGCN-O | ~0.770 | Transductive | 1 |
| Alarab et al., 2020 | XGBoost | ~0.815 | Transductive | 1 |
| Lo et al., 2023 (Appl. Intell.) | Inspection-L | 0.828 | Transductive | 3 |
| **Luu, 2026** | **Random Forest** | **0.821±0.003** | **Strict Inductive** | **10** |
| Luu, 2026 | GraphSAGE | 0.688±0.016 | Strict Inductive | 10 |
| **Bizim** | **Random Forest** | **0.884** | **Strict Inductive** | 1 |
| **Bizim** | **LightGBM** | **0.873** | **Strict Inductive** | 1 |
| **Bizim** | **XGBoost** | **0.869** | **Strict Inductive** | 1 |
### Karşılaştırma
| Karşılaştırma | Fark | Neden |
|--------------|------|-------|
| Bizim RF vs Weber RF | **+8.8 puan** | Daha akıllı bölme noktası + SMOTE + threshold opt |
| Bizim RF vs Luu RF | **+6.3 puan** | TS29 bölmesi daha temiz sınır, daha az eğitim verisiyle daha iyi |
| Bizim RF vs Inspection-L | **+5.6 puan** | Inspection-L transductive + SSL, biz strict-inductive ham özelliklerle |
## 5.5. Başarı Kriterlerinin Değerlendirmesi
| Kriter | Hedef | Gerçekleşen | Durum |
|--------|-------|-------------|-------|
| Topolojik > Kronolojik (F1) | ≥3/4 modelde | 3/4 modelde (+10.9 ile +15.4 puan) | ✅ Karşılandı |
| Topolojik WF sapması | <%10 | **-%0.4** | ✅ Karşılandı (mükemmel) |
| Rastgele bölme şişmesi | >%10 | **+%15.2** | ✅ Karşılandı |
| Literatürden iyi | RF F1 > 0.821 (Luu) | **RF F1 = 0.884** | ✅ Karşılandı (+6.3 puan) |
---
# FAZ 6: DAĞITIM (Deployment)
## 6.1. Tekrarlanabilirlik
Tüm deneyler tek bir komutla tekrarlanabilir:
```bash
pip install pandas numpy scikit-learn matplotlib seaborn lightgbm xgboost networkx scipy imbalanced-learn torch torch-geometric
python run_all.py --data_dir ./dataset
```
Çalışma süresi: ~40 dakika (CPU).
## 6.2. Depo Yapısı
```
Moco22/elliptic-event-aware-splitting/
├── README.md # Proje açıklaması
├── project_report.md # Önceki rapor
├── crisp_dm_report.md # ★ Bu rapor (CRISP-DM)
├── run_all.py # ★ Tek komutla tüm deneyler (GraphSAGE dahil)
├── data_audit.py # Veri denetimi ve pipeline karşılaştırması
├── dataset/ # Elliptic Bitcoin Dataset (3 CSV)
├── topological_breakpoint.py # Ana deney scripti
├── proof_mechanism.py # Kanıt testleri (walk-forward, sızıntı, vb.)
├── honesty_test.py # Dürüstlük testi
├── leakage_map.py # Sızıntı haritası
├── peak_descent.py # Tepe-düşüş kriz tespit algoritması
├── prepare_for_gephi.py # Gephi görselleştirme verisi
├── elliptic_event_aware.py # Olay-farkında bölme deneyleri
├── output/ # ★ run_all.py çıktıları (sonuçlar + figürler)
├── topo_figures/ # Kırılma noktası figürleri
├── proof_figures/ # Kanıt mekanizması figürleri
├── figures/ # Olay analizi figürleri
├── topo_results/ # Önceki deney sonuçları
├── proof_results/ # Kanıt test sonuçları
└── results/ # Olay analizi sonuçları
```
## 6.3. Çıktılar
### Sayısal Sonuçlar
- `output/results/all_experiment_results.csv` — 20 deney (4 model × 5 strateji)
- `output/results/topological_metrics.csv` — 49 timestep ağ metrikleri
- `output/results/summary.json` — Tam özet (kırılma noktası, walk-forward, dürüstlük)
- `proof_results/` — Kanıt test sonuçları (walk-forward, sızıntı, dürüstlük)
### Figürler
- `output/figures/fig1_breakpoint.png` — Kırılma noktası tespiti (3 panel)
- `output/figures/fig2_f1_comparison.png` — F1 strateji karşılaştırması
- `output/figures/fig3_pipeline_comparison.png` — Pipeline karşılaştırması
- `output/figures/fig4_honesty.png` — Walk-forward dürüstlük ısı haritası
- `output/figures/fig5_inflation.png` — Performans şişmesi haritası
- `proof_figures/` — Kanıt figürleri (7 adet)
- `topo_figures/` — Kırılma noktası figürleri (6 adet)
- `figures/` — Olay analizi figürleri (8 adet)
## 6.4. Literatür
12 referans makalenin tamamı için bkz. README.md "Ön Literatür Taraması" bölümü.
---
# SONUÇ VE KATKILAR
## Ana Bulgular
1. **Rastgele bölme %15.2 performans şişmesi yaratıyor** — walk-forward validasyonla kanıtlandı.
2. **Topolojik kırılma bölmesi kronolojik bölmeyi +10.9 ile +15.4 puan F1 ile geçiyor** — 3/4 modelde tutarlı.
3. **Topolojik kırılma walk-forward'a -%0.4 sapmayla en dürüst strateji** — ne şişiriyor ne pesimist.
4. **Komşuluk sızıntısı 502 kat farkla kanıtlandı** — random split'te %50.2, temporal split'te %0.
5. **RF F1=0.884 literatürdeki en iyi strict-inductive sonucu +6.3 puan geçiyor** (Luu 2026: RF F1=0.821).
6. **Bölme stratejisinin etkisi (~15 puan), model seçiminin etkisinden (~5 puan) ve ön işleme etkisinden (~1 puan) çok daha büyük.**
## Literatüre Katkı
> **Veri bölme noktasını, ağın topolojik sağlığının çöktüğü kriz anına göre belirleyen ilk çalışma.**
## CRISP-DM Döngüsünün Tamamlanması
| Faz | Durum | Anahtar Çıktı |
|-----|-------|---------------|
| 1. İş Anlayışı | ✅ | 2 hipotez, 4 başarı kriteri tanımlandı |
| 2. Veri Anlayışı | ✅ | 5 olay tipi keşfedildi, %16.7 outlier tespit edildi |
| 3. Veri Hazırlama | ✅ | 6 pipeline karşılaştırıldı, graf verisi hazırlandı |
| 4. Modelleme | ✅ | 20 deney (4 model × 5 strateji) koşuldu |
| 5. Değerlendirme | ✅ | 6 kanıt testi, walk-forward, literatür karşılaştırması |
| 6. Dağıtım | ✅ | HF Hub repo, tekrarlanabilir script, CRISP-DM raporu |
**Tüm başarı kriterleri karşılandı. Her iki hipotez de doğrulandı.**