elliptic-event-aware-splitting / project_report.md
MucahitSylmz's picture
Triple Barrier analizi ve kapsamlı proje raporu (Markdown formatında) eklendi"
e5905a5 verified

PROJE 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


1. GİRİŞ

1.1. Araştırma Konusu

KONU: Data Leakage, Değerlendirme Yanlılığı ve Performans Şişmesi

Araştırma Sorusu: Temporal split kullanılmadığında performans ne ölçüde yapay olarak artar?

1.2. Bağlam

Kripto para dünyasını devasa bir sosyal ağ gibi düşünün: cüzdanlar insanları, para transferleri aralarındaki ilişkileri temsil eder. Amacımız, bu ağın içinde kara para aklayan kötü niyetli aktörleri bir makine öğrenmesi modeli kullanarak bulmaktır. Ancak bu ağ statik değildir; zamanla büyür, küçülür ve değişir.

1.3. Literatürdeki Mevcut Yaklaşım

Mevcut bilim insanları yapay zekayı eğitirken takvime veya saate bakarlar. Ellerinde 1 yıllık veri varsa, "ilk 8 ayda eğitelim, son 4 ayda test edelim" derler. Buna kronolojik bölme (chronological split) denir. Zamanı düz bir çizgi olarak kabul edip veriyi belirli tarihlerden keserler.

1.4. Tespit Ettiğimiz Boşluk

Gerçek hayatta olaylar takvime göre düzenli ilerlemez. Bir kripto borsası hacklendiğinde veya bir dark market kapandığında, ağdaki herkes panik içinde parasını kaçırmaya başlar. Siz yapay zekayı sakin aylarda eğitip aniden kaosun ortasında test ederseniz model çöker. Ya da veri sızıntısı (Data Leakage) yaşanır — model gelecekteki ağın yapısını yanlışlıkla ezberler. Literatürdeki en büyük eksiklik, veriyi bölerken takvime bakılması, ağın içindeki kriz anlarına bakılmamasıdır.

1.5. Hipotezler

Hipotez 1: Makine öğrenmesi modellerini eğitirken veriyi tam olarak ağda bir krizin yaşandığı "Topolojik Kırılma Noktasından" bölersek, model gerçek dünyadaki yasa dışı işlemleri yakalamada çok daha başarılı ve kararlı olur.

Hipotez 2: Veri bölme işlemi ağdaki şoklara göre yapılmazsa, model sakin zamanlarda yapay ve abartılı bir başarı (performans şişmesi) gösterir, ancak kriz anında tamamen başarısız olur.


2. VERİ SETİ

Kaynak: Kaggle — Elliptic Data Set

Veri seti 3 dosyadan oluşur (dataset/ klasöründe):

  • elliptic_txs_features.csv — 203,769 düğüm × 167 sütun
  • elliptic_txs_classes.csv — 203,769 düğüm × 2 sütun (txId, class)
  • elliptic_txs_edgelist.csv — 234,355 kenar × 2 sütun (txId1, txId2)
Özellik Değer
Toplam düğüm 203,769 Bitcoin işlemi
Etiketli düğüm 46,564 (%22.8)
İllicit (kara para) 4,545 (%9.8)
Licit (yasal) 42,019 (%90.2)
Kenarlar 234,355 yönlü ödeme akışı
Özellikler 165 (94 local + 71 aggregated)
Zaman adımları 49 (~2 haftalık aralıklar)

2.1. Veri Setindeki Olay Tipleri

Veri setini analiz ettiğimizde 5 farklı olay tipi tespit ettik:

Olay Tipi Timestep'ler İllicit Oranı İşlem Sayısı
Dark Market Zirvesi 9,11,13,15,16,20,25,26,28,29,32 %26.5 8,223
Kapanma (Shutdown) 43 %1.8 1,370
Kapanma Sonrası 44,45,46 %0.9 3,524
Toparlanma 47,48,49 %6.4 1,793
Normal Aktivite Geri kalan 31 TS %7.0 31,654

Dark market zirvesinde illicit oranı %26.5 iken, kapanma sonrası %0.9'a düşüyor — 30 kat fark.


3. METODOLOJİ

3.1. Topolojik Kırılma Noktası Tespit Algoritması

Her timestep için ağın 3 topolojik metriğini ölçtük:

  • Yoğunluk (Density): Düğümler arası bağlantı ne kadar sıkı
  • Bağlantılılık (Largest CC Ratio): En büyük bileşenin ağ içindeki oranı
  • Bütünlük (1 - Component Ratio): Ağın ne kadar az parçaya bölündüğü

Bu üçünü normalize edip birleştirerek "Sağlık Skoru" elde ettik:

health(t) = [norm(density) + norm(cc_ratio) + (1 - norm(n_components))] / 3

Sağlık skorundaki en büyük ani düşüş = Topolojik Kırılma Noktası.

Sonuç: Algoritma otomatik olarak Timestep 29'u tespit etti — dark market aktivitesinin zirvesi.

3.2. Tepe-Düşüş Kriz Tespit Algoritması (Geliştirilmiş)

Kriz dönemleri grafikte tepeye çıkıp sonra düşüşe geçtiği anda oluşur. Bu gözleme dayanarak türev bazlı bir algoritma geliştirdik:

  1. Bileşik kriz sinyali hesapla
  2. Hareketli ortalama ile düzleştir
  3. Birinci türev al (değişim hızı)
  4. Tepe tespiti: birinci türev pozitiften negatife geçtiği an
  5. En büyük düşüş şiddetine sahip tepe = Ana kriz tepesi

3.3. Modeller

Model Tür Neden Seçildi?
GraphSAGE Graf Sinir Ağı (GNN) Komşuluk yapısını öğrenir, strict inductive
Random Forest Topluluk öğrenme Elliptic'te en güçlü baseline
XGBoost Gradyan artırma Tabular veride SOTA
LightGBM Gradyan artırma Hız ve performans dengesi

3.4. Bölme Stratejileri

# Strateji Açıklama
1 Rastgele Standart train_test_split (%80/%20)
2 Kronolojik İlk %80 TS eğitim, son %20 test
3 Topolojik Kırılma Kırılma noktasından önce eğitim, sonra test
4 Kayan Pencere Son 10 TS test
5 Düşmanca Sakin dönemde eğit, kriz döneminde test et

3.5. Metrik

Accuracy yerine Illicit F1 Score kullanıldı. Çünkü ağda yasa dışı işlemler çok az (%9.8) — model "herkes yasal" derse bile %90 doğru bilmiş sayılır ama bu işimize yaramaz.


4. DENEYSEL SONUÇLAR

4.1. Hipotez 1 Sonuçları: Topolojik Kırılma vs Kronolojik

Model Topolojik Kırılma F1 Kronolojik F1 Fark
LightGBM 0.870 0.738 +13.2 puan
Random Forest 0.842 0.723 +11.9 puan
XGBoost 0.837 0.742 +9.5 puan
GraphSAGE 0.421 0.476 -5.5 puan

Yorum: 3/4 modelde topolojik kırılma bölmesi kronolojik bölmeyi açık farkla geçti.

4.2. Hipotez 2 Sonuçları: Performans Şişmesi

Model Rastgele F1 Kronolojik F1 Şişme
GraphSAGE 0.711 0.476 %49.5
Random Forest 0.936 0.723 %29.5
XGBoost 0.958 0.742 %29.0
LightGBM 0.960 0.738 %30.2

Yorum: Tüm modellerde %29-50 arası performans şişmesi tespit edildi.

4.3. Tam Sonuç Tablosu (Illicit F1)

Model Rastgele Kronolojik Topolojik Kırılma Kayan Pencere Düşmanca
GraphSAGE 0.711 0.476 0.421 0.458 0.777
Random Forest 0.936 0.723 0.842 0.723 0.963
XGBoost 0.958 0.742 0.837 0.742 0.978
LightGBM 0.960 0.738 0.870 0.738 0.981

5. PERFORMANS ŞİŞMESİNİN KANITI

"Random split belki doğru sonuç veriyor" itirazını 6 bağımsız testle sorguladık.

5.1. Walk-Forward Validasyon

Gerçek dünya simülasyonu — her adımda geçmişle eğit, geleceği tahmin et:

Eğitim Test F1
TS 1-9 TS 10-12 0.972
TS 1-21 TS 22-24 0.778
TS 1-42 TS 43-45 (kriz) 0.066
TS 1-45 TS 46-48 0.033

Walk-forward ortalama F1 = 0.796, Random split F1 = 0.965 → %21.2 şişme

5.2. Rastgele Etiket Testi

Durum F1
Gerçek etiket + Random split 0.965
Gerçek etiket + Temporal split 0.738
Rastgele etiket + Random split 0.120
Rastgele etiket + Temporal split 0.031

Anlamsız etiketlerde bile random split temporal split'in 4 katı F1 veriyor — yapısal sızıntı kanıtı.

5.3. Dürüstlük Testi (Kendi Yöntemimizi Sorgulama)

Strateji Walk-Forward'a Sapma Durum
Rastgele +%20.9 Şişiriyor
Topolojik Kırılma +%8.0 Dürüst
Kronolojik -%6.7 Pesimist

5.4. Sızıntı Haritası

Ölçüm Random Split Temporal Split Fark
Komşuluk sızıntı oranı 0.502 0.000 502x

5.5. Kanıt Özet Tablosu

# Test Bulgu
1 Walk-Forward %21 şişme
2 Kriz Çöküşü F1=0.07 çöküş
3 Rastgele Etiket Random 4x daha yüksek
4 Yapay Tutarlılık Random yapay düzgün (std=0.18 vs 0.36)
5 Gelecek Bilgisi Geçmiş F1 ≈ Gelecek F1
6 Dürüstlük Testi Bizim yöntem +%8 — dürüst

6. TRIPLE BARRIER YÖNTEMİ ANALİZİ

6.1. Triple Barrier Nedir?

Triple Barrier, Marcos López de Prado'nun "Advances in Financial Machine Learning" (Wiley, 2018) kitabında tanıttığı bir etiketleme yöntemidir. Bir fiyat serisini alıp, her gözleme {-1, 0, +1} etiketi atamak için kullanılır.

Üç bariyer aynı anda konulur:

  • Üst bariyer (kâr alma): Fiyat belirli bir eşiği aşarsa → +1
  • Alt bariyer (zarar durdurma): Fiyat belirli bir eşiğin altına düşerse → -1
  • Dikey bariyer (zaman): Süre dolarsa → 0

6.2. Bizim Çalışmayla İlişkisi

Doğrudan ilişki: YOK. Triple Barrier bir etiketleme aracıdır, bir bölme stratejisi değildir.

Boyut Triple Barrier Bizim Yöntem
Ne yapar Eğitim örneklerine etiket atar Veriyi nerede keseceğini belirler
Pipeline aşaması Özellik mühendisliği / etiketleme Model değerlendirme tasarımı
Çalışma birimi Tek tek gözlemler Tüm veri setinin sınırı
Temel Fiyat yolu geometrisi Ağ topolojisi kırılma noktaları
Domain Alım-satım stratejileri Sahtekarlık tespiti

Dolaylı felsefi bağlantı: VAR. López de Prado'nun kitabındaki daha geniş çerçeve, bizim tezimizle aynı entelektüel gelenek içindedir:

López de Prado Bizim Tezimiz
"Standart CV finansal veride sızıntı yapar çünkü örnekler bağımlıdır" "Sabit kronolojik bölme yetersizdir çünkü ağda yapısal krizler olur"
Çözüm: Purged K-Fold CV + embargo dönemi Çözüm: Topolojik kırılma noktasından böl
Odak: Etiket örtüşme geometrisi Odak: Ağ topoloji geometrisi

6.3. Neden Triple Barrier Burada Uygulanamaz?

  1. Elliptic veri setinde sürekli fiyat serisi yok — düğümler illicit/licit olarak etiketlenmiş
  2. "Kâr/zarar" kavramı yok — sadece yasal/yasa dışı ikili sınıflandırma var
  3. "Pozisyon tutma süresi" kavramı yok — AML'de böyle bir şey anlamsız
  4. Literatürde kimse Triple Barrier'ı fraud detection'a uygulamamış (sıfır yayın)

6.4. Sonuç

Triple Barrier bizim problemimiz için uygun değildir. Ancak López de Prado'nun "finansal veride i.i.d. varsayımı yanlıştır" eleştirisi, bizim "ağ verisinde takvime dayalı sabit bölme yetersizdir" tezimizle aynı düşünce geleneğinden beslenmektedir.


7. GEPHİ İLE AĞ GÖRSELLEŞTİRME

7.1. Veri Hazırlama

prepare_for_gephi.py scripti Kaggle'daki 3 CSV dosyasını Gephi formatına çevirir:

python prepare_for_gephi.py --data_dir ./dataset

7.2. Gephi'de Karşılaştırılacak 3 Kritik Dönem

Dönem Dosyalar Ne Görülmeli?
Kriz öncesi (sakin) gephi_nodes/edges_ts{N} Düzenli ağ, az illicit
Kriz zirvesi (peak) gephi_nodes/edges_ts{N} Yoğun illicit kümelenmesi
Kriz sonrası (kapanma) gephi_nodes/edges_ts{N} İllicit kaybolmuş, yeni yapı

8. LİTERATÜR TARAMASI (SCI / SCI-E İndeksli)

# Makale Yayın Yeri İndeks Bağlantı
1 Rubachev et al. (2024) "TabReD" NeurIPS 2024 SCI-E (Core A*) Link
2 Wang et al. (2024) "Topological Concentration" ICLR 2024 SCI-E (Core A*) Link
3 Huang et al. (2023) "TGB" NeurIPS 2023 SCI-E (Core A*) Link
4 Poursafaei et al. (2022) "Better Eval Dynamic LP" NeurIPS 2022 SCI-E (Core A*) Link
5 Weber et al. (2019) "Elliptic Dataset" KDD 2019 SCI-E (Core A*) Link
6 Lo et al. (2023) "Inspection-L" Applied Intelligence SCI-E (IF:3.4) Link
7 Rossi et al. (2020) "TGN" ICML 2020 SCI-E (Core A*) Link
8 Wu et al. (2021) "GNN Survey" IEEE TNNLS SCI (IF:10.4) Link
9 Al Sahili & Awad (2023) "STGNN Survey" AI Review SCI-E (IF:12.0) Link
10 Pareja et al. (2020) "EvolveGCN" AAAI 2020 SCI-E (Core A*) Link
11 Thimonier et al. (2024) "AD for Fraud" DMKD SCI-E (IF:4.8) Link

9. PROJE DOSYA YAPISI

├── README.md                          # Proje açıklaması
├── project_report.md                  # Bu rapor
├── dataset/                           # Kaggle'dan indirilen 3 CSV dosyası
│   ├── elliptic_txs_features.csv
│   ├── elliptic_txs_classes.csv
│   └── elliptic_txs_edgelist.csv
├── topological_breakpoint.py          # Ana deney: 4 model × 5 strateji
├── proof_mechanism.py                 # 6 kanıt testi
├── honesty_test.py                    # Dürüstlük testi
├── leakage_map.py                     # Sızıntı haritası
├── peak_descent.py                    # Tepe-düşüş algoritması
├── prepare_for_gephi.py               # Gephi veri hazırlama
├── elliptic_event_aware.py            # Olay-farkında bölme
├── topo_figures/                      # Kırılma noktası figürleri (6)
├── proof_figures/                     # Kanıt figürleri (7)
├── figures/                           # Olay analizi figürleri (8)
├── topo_results/                      # Sonuçlar
├── proof_results/                     # Kanıt sonuçları
└── results/                           # Olay analizi sonuçları

10. SONUÇ VE KATKI

Random split %96 F1 rapor ediyor ama bunun %21'i yapay. Kriz anında model çöküyor (F1=0.07). Rastgele etiketlerde bile random split skor üretiyor. Ağ üzerinden komşuluk sızıntısı 502 kat farkla kanıtlandı.

Bizim topolojik kırılma yöntemi kronolojik bölmeyi +13 puan geçiyor. Walk-forward dürüstlük testinde +%8 sapma ile kabul edilebilir sınırların içinde — ne şişiriyor ne de pesimist.

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.

Karmaşık model geliştirmeden önce, veriyi doğru bölün.