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
  • 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:

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ı.