YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

Topolojik Kırılma Noktasına Göre Veri Bölme: Bitcoin Kara Para Aklama Tespiti

"Karmaşık yapay zekâ modelleri geliştirmeden önce, verinizi doğru bölün."


Biz Ne Yapıyoruz?

Makine öğrenmesi modellerini eğitirken veriyi ikiye böleriz: bir kısmıyla öğretir, diğer kısmıyla sınarız. Herkes bu bölme işini ya rastgele yapar, ya da takvimden bir tarih seçip "bu tarihten önce eğitim, sonra test" der.

Biz farklı bir şey öneriyoruz: Bölme noktasını takvim değil, ağın kendisi belirlesin.

Bitcoin işlem ağının bir "sağlık skoru" var. Bu skor ağın ne kadar yoğun, ne kadar bağlantılı ve ne kadar bütün olduğunu ölçüyor. Ağ sağlıklıyken her şey normal akıyor. Ama bir gün dark market kapanıyor, düzenleyiciler baskın yapıyor ya da büyük bir hack oluyor — ve ağın sağlığı aniden çöküyor. İşte biz tam o çökme anını otomatik olarak tespit edip, yapay zekayı o noktadan bölüyoruz.


Neden Bu Önemli?

Çünkü rastgele bölme yaptığınızda, model geleceği görüyor. 2024'teki bir suç örüntüsünü eğitim setine koyup, 2023'teki bir işlemi test ediyorsunuz. Model "tahmin" yapmıyor, "hatırlıyor". Bu yüzden %96 başarı rapor ediyorsunuz ama gerçek dünyaya koyduğunuzda model çöküyor.

Bunu sadece iddia etmiyoruz. 6 farklı testle kanıtlıyoruz.


Literatüre Katkımız (Tek Cümle)

Veri bölme noktasını, ağın topolojik sağlığının çöktüğü kriz anına göre belirleyen ilk çalışma.

Mevcut yaklaşımlar ya rastgele böler (sızıntı yapar), ya da takvimden sabit bir noktadan keser (krizi görmezden gelir). Biz ağın matematiğini dinleyerek kırılma noktasını buluyoruz.


Veri Seti: Elliptic Bitcoin Dataset

Kaynak: Kaggle — Elliptic Data Set

Veri seti dataset/ klasörü altında 3 dosyadan oluşur:

  • dataset/elliptic_txs_features.csv — 203,769 düğüm × 167 sütun
  • dataset/elliptic_txs_classes.csv — 203,769 düğüm × 2 sütun (txId, class)
  • dataset/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 düğüm özelliği (94 local + 71 aggregated)
Zaman adımları 49 (~2 haftalık aralıklar)

Veri Setindeki 5 Olay Tipi

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

Dark market zirvesinde illicit oranı %26.5 iken, kapanma sonrası %0.9'a düşüyor — 30 kat fark. Rastgele bölme bu devasa farkı ortalar ve gerçeği gizler.


Hipotezlerimiz

Hipotez 1: Veriyi rastgele bir tarihten değil, ağda krizin yaşandığı Topolojik Kırılma Noktasından bölersek, model daha başarılı ve kararlı olur.

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


Topolojik Kırılma Noktası Tespit Algoritması

Ağın "matematiksel sağlığını" her timestep için ölçen bir algoritma yazdık:

Sağlık Skoru = (Yoğunluk + Bağlantılılık + Bütünlük) / 3

Yoğunluk ↑     = Ağda düğümler arası bağlantı yoğun
Bağlantılılık ↑ = En büyük bileşen ağın çoğunu kapsıyor
Bütünlük ↑      = Ağ az sayıda parçaya bölünmüş

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

Algoritma otomatik olarak Timestep 29'u tespit etti. Bu nokta, dark market aktivitesinin zirve yaptığı dönemin (%28-30 illicit oran) tam ortasına denk geliyor. Algoritma hiçbir etikete bakmadan, sadece ağın yapısal sağlığını izleyerek bu krizi buldu.


Deneysel Tasarım

Modeller

Model Tür Neden Seçildi?
GraphSAGE Graf Sinir Ağı (GNN) Düğümün komşuluk yapısını öğrenir, 3 katman SAGEConv, strict inductive, BatchNorm + CosineAnnealing
Random Forest Topluluk öğrenme Elliptic dataset'te en güçlü baseline (Weber et al., 2019)
XGBoost Gradyan artırma Tabular veride SOTA
LightGBM Gradyan artırma Hız ve performans dengesi

Veri Ön İşleme

Adım Açıklama
NaN/Inf temizleme Sıfıra dönüştür
IQR outlier clipping Q1-1.5×IQR, Q3+1.5×IQR sınırlarına kırp (%16.7 outlier hücre)
RobustScaler Median ve IQR bazlı ölçekleme (tüm modellerde tutarlı)
SMOTE Sentetik azınlık örnekleri ile sınıf dengesizliği düzeltme
Threshold optimizasyonu Her model için en iyi karar eşiği (0.1–0.9 aralığında arama)

5 Bölme Stratejisi

# Strateji Açıklama
1 Rastgele bölme Standart train_test_split (%80/%20) — herkesin yaptığı
2 Kronolojik bölme İlk %80 timestep eğitim, son %20 test — mevcut iyi uygulama
3 Topolojik kırılma (bizim) Kırılma noktasından (TS 29) önce eğitim, sonra test — bizim katkımız
4 Kayan pencere Son 10 timestep test, geri kalanı eğitim
5 Düşmanca bölme Sakin dönemde eğit, kriz döneminde test et — stres testi

Sonuçlar

HİPOTEZ 1: DOĞRULANDI ✅ — Topolojik kırılma, kronolojik bölmeyi geçti

Model Topolojik Kırılma 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 açık farkla kazandı. Random Forest'ta +15.4 puan F1 artışı.

HİPOTEZ 2: DOĞRULANDI ✅ — Rastgele bölme performansı şişiriyor

Model Rastgele F1 Walk-Forward F1 Şişme
GraphSAGE 0.932 0.786 %18.5 🔴
Random Forest 0.945 0.836 %13.0 🔴
XGBoost 0.967 0.855 %13.1 🔴
LightGBM 0.963 0.829 %16.2 🔴

Tam Sonuç Tablosu: 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

Tam Sonuç Tablosu: Precision / Recall / AUROC

Model Strateji F1 Precision Recall AUROC
LightGBM Rastgele 0.963 0.983 0.944 0.998
Random Forest Rastgele 0.945 0.977 0.915 0.997
XGBoost Rastgele 0.967 0.987 0.947 0.998
GraphSAGE Rastgele 0.932 0.952 0.912 0.993
LightGBM Kronolojik 0.764 0.915 0.656 0.953
Random Forest Kronolojik 0.730 0.961 0.588 0.954
XGBoost Kronolojik 0.750 0.924 0.631 0.949
GraphSAGE Kronolojik 0.702 0.917 0.569 0.914
LightGBM Topolojik Kırılma 0.873 0.947 0.809 0.970
Random Forest Topolojik Kırılma 0.884 0.973 0.809 0.965
XGBoost Topolojik Kırılma 0.869 0.936 0.811 0.968
GraphSAGE Topolojik Kırılma 0.676 0.599 0.776 0.938
LightGBM Düşmanca-Kriz 0.978 0.982 0.974 0.998
Random Forest Düşmanca-Kriz 0.970 0.972 0.968 0.998
XGBoost Düşmanca-Kriz 0.977 0.985 0.970 0.998
GraphSAGE Düşmanca-Kriz 0.958 0.970 0.946 0.995

Literatür Karşılaştırması: Elliptic Veri Setinde Yayınlanmış Sonuçlar

Elliptic Bitcoin Dataset 2019'dan beri birçok çalışmada kullanıldı. Aşağıdaki tablo tüm yayınlanmış sonuçları özetliyor.

⚠️ Kritik Not: Değerlendirme Protokolü Sorunu

Luu (2026) çalışması, yayınlanmış GNN sonuçlarının büyük çoğunluğunun transductive sızıntıdan muzdarip olduğunu gösterdi. GNN encoder'ı eğitim sırasında test dönemi düğümlerini/kenarlarını görüyor — bu F1'i 39.5 puana kadar yapay şişiriyor. Bizim topolojik kırılma yöntemimiz strict-inductive protokol kullanıyor.

Yayınlanmış Baseline Sonuçları (Illicit F1)

Çalışma Model Illicit F1 Precision Recall Bölme Protokol Seeds
Weber et al., 2019 (KDD) Logistic Regression 0.543 0.537 0.528 TS 1-34 / 35-49 Transductive 1
Weber et al., 2019 GCN 0.628 0.812 0.512 TS 1-34 / 35-49 Transductive 1
Weber et al., 2019 Random Forest 0.796 0.971 0.675 TS 1-34 / 35-49 Transductive 1
Weber et al., 2019 Skip-GCN 0.705 0.812 0.623 TS 1-34 / 35-49 Transductive 1
Pareja et al., 2020 (AAAI) EvolveGCN-O ~0.770 TS 1-31 / 36-49 Transductive 1
Alarab et al., 2020 XGBoost ~0.815 TS 1-34 / 35-49 Transductive 1
Alarab et al., 2020 Augmented GCN 0.773 TS 1-34 / 35-49 Transductive 1
Lo et al., 2023 (Appl. Intell.) Inspection-L (AF+DNE) 0.828 0.972 0.721 TS 1-34 / 35-49 Transductive 3
Luu, 2026 (Preprint) Random Forest 0.821 ± 0.003 TS 1-34 / 35-49 Strict Inductive 10
Luu, 2026 XGBoost 0.775 TS 1-34 / 35-49 Strict Inductive 10
Luu, 2026 GraphSAGE 0.688 ± 0.016 0.709 0.670 TS 1-34 / 35-49 Strict Inductive 10
Luu, 2026 GCN 0.503 ± 0.017 0.567 0.456 TS 1-34 / 35-49 Strict Inductive 10
Luu, 2026 GAT 0.610 ± 0.018 0.588 0.635 TS 1-34 / 35-49 Strict Inductive 10
Luu, 2026 MLP (3 katman) 0.549 ± 0.015 0.496 0.616 TS 1-34 / 35-49 Strict Inductive 10
Bizim (Topolojik) Random Forest 0.884 0.973 0.809 TS 1-28 / 29-49 Strict Inductive 1
Bizim (Topolojik) LightGBM 0.873 0.947 0.809 TS 1-28 / 29-49 Strict Inductive 1
Bizim (Topolojik) XGBoost 0.869 0.936 0.811 TS 1-28 / 29-49 Strict Inductive 1
Bizim (Topolojik) GraphSAGE 0.676 0.599 0.776 TS 1-28 / 29-49 Strict Inductive 1

Karşılaştırma Analizi

Karşılaştırma Fark Yorum
Bizim RF (0.884) vs Weber RF (0.796) +8.8 puan Aynı model, daha zorlu bölme (TS29 vs TS34), ama daha akıllı strateji
Bizim RF (0.884) vs Luu RF (0.821) +6.3 puan Her ikisi de strict-inductive, ama biz TS29'dan bölüyoruz (daha az eğitim verisi!)
Bizim RF (0.884) vs Inspection-L (0.828) +5.6 puan Inspection-L transductive + SSL kullanıyor, biz ham özelliklerle geçiyoruz
Bizim GraphSAGE (0.676) vs Luu GraphSAGE (0.688) -1.2 puan Benzer — strict-inductive GNN'ler Elliptic'te zayıf (Luu bunu kanıtladı)

Neden Bizim Sonuçlar Daha İyi?

  1. TS 29 bölmesi TS 34'ten daha zor. Eğitim seti daha küçük (%46 vs %73 etiketli veri). Buna rağmen F1 daha yüksek — çünkü eğitim verisinde gürültü daha az.

  2. Topolojik kırılma doğal bir "temiz" sınır. TS 29'dan önce ve sonra veri dağılımları tutarlı — model bir rejim içinde öğrenip farklı bir rejimde test ediliyor. Sabit TS 34 bölmesi bu doğal sınırı görmezden geliyor.

  3. SMOTE + threshold optimizasyonu. Yayınlanmış çalışmaların hiçbiri SMOTE veya threshold araması kullanmamış. Bu recall'u önemli ölçüde artırıyor (0.675 → 0.809).

  4. Luu 2026 tezimizi doğruluyor: "Random Forest raw features beats every GNN under strict inductive evaluation." Biz de aynı bulguya ulaştık ve üstüne bölme noktasının etkisini gösterdik.


Walk-Forward Dürüstlük Testi

Walk-forward validasyon gerçek dünyanın simülasyonudur. Her 3 timestep'lik pencereyi sırayla test eder — modelin gerçekte ne kadar iyi olacağını gösterir.

Walk-Forward Referans Değerleri

Model Walk-Forward F1
XGBoost 0.855
Random Forest 0.836
LightGBM 0.829
GraphSAGE 0.786

Dürüstlük Karşılaştırması

Strateji Walk-Forward'a Ort. Sapma (4 model) Durum
Topolojik Kırılma (Bizim) -%0.4 ✅ DÜRÜST (neredeyse mükemmel)
Kronolojik -%10.9 ⚠️ PESİMİST
Kayan Pencere -%10.4 ⚠️ PESİMİST
Rastgele +%15.2 🔴 ŞİŞME
Düşmanca-Kriz +%17.5 🔴 ŞİŞME

Topolojik kırılma walk-forward'a sadece -%0.4 sapmayla en dürüst strateji. Rastgele bölme +%15.2 şişirirken, kronolojik -%10.9 ile gerçeği olduğundan kötü gösteriyor. Bizim yöntem tam ortada — ne şişiriyor ne de pesimist.

Neden Topolojik Kırılma En Dürüst?

Kronolojik bölme sabit bir noktadan kesiyor (TS 39). Test setinde hem kriz hem sakin dönemler karışık. Rastgele bölme her dönemden karışık alıyor — geleceği görüyor.

Bizim yöntem kriz noktasından (TS 29) bölüyor:

  • Eğitim seti: krizden önceki 25,207 düğüm (sakin dönem ağırlıklı)
  • Test seti: kriz ve sonrası 21,357 düğüm (gerçek dünyanın tüm çeşitliliği)
  • Sonuç: model gerçekten kriz anında ne yapacağını gösteriyor

Sızıntı Haritası: Bilgi Ağ Üzerinden Nasıl Sızıyor?

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

Yapı Duyarlılığı

Özellik Seti Random Split F1 Temporal Split F1 Fark
Sadece Local (94 özellik) 0.943 0.669 +0.274
Sadece Aggregated (71 özellik) 0.902 0.627 +0.275
Tümü (165 özellik) 0.965 0.738 +0.227
Aggregated'ın ek katkısı +0.022 +0.069 3.1x

"Random Split Belki Doğru Sonuç Veriyor" İtirazının Cevabı

# Test Ne Sorguluyor? Bulgu
1 Walk-Forward Gerçek dünyada performans ne? %15.2 şişme
2 Kriz Çöküşü En zor anda ne oluyor? F1=0.07 çöküş
3 Rastgele Etiket Yapısal sızıntı var mı? Random 4x daha yüksek
4 Yapay Tutarlılık Dağılım gerçekçi mi? Random yapay düzgün
5 Gelecek Bilgisi Gelecek görülmüş mü? Geçmiş ≈ Gelecek
6 Dürüstlük Testi Bizim yöntem de şişiriyor mu? -%0.4 — mükemmel dürüst

Detaylı kanıt açıklamaları için project_report.md dosyasına bakınız.


Ön İşleme Pipeline Karşılaştırması

Pipeline Illicit F1
Ham Veri 0.7511
StandardScaler 0.7467
RobustScaler 0.7450
Clip+Robust 0.7504
Clip+VarFilter+Robust 0.7605
Clip+Robust+SMOTE 0.7514

Düşük varyans özellik çıkarma + RobustScaler en iyi pipeline. Ancak pipeline'ın etkisi (+1 puan) bölme stratejisinin etkisinin (~15 puan) yanında ihmal edilebilir düzeyde.


Figürler

Figür 1 — Ağın Sağlık Skoru ve Kırılma Noktası

Kırılma Ne görüyoruz: Üstteki grafik ağın sağlık skorunun zaman içindeki değişimi. Kırmızı kesikli çizgi algoritmanın bulduğu kırılma noktası (TS 29). Ortadaki grafik her timestep'teki illicit oranı. Alttaki grafik kriz sinyali.

Figür 2 — F1 Karşılaştırması (4 Model × 5 Strateji)

F1 Ne görüyoruz: 4 modelin 5 stratejideki F1 skorları. Siyah kenarlı çubuklar bizim yöntemimiz. Yeşil bant walk-forward dürüstlük aralığı.

Figür 3 — Pipeline Karşılaştırması

Pipeline Ne görüyoruz: 6 ön işleme pipeline'ının karşılaştırması. Clip+VarFilter+Robust en iyisi.

Figür 4 — Walk-Forward Dürüstlük Haritası

Dürüstlük Ne görüyoruz: Her model × strateji kombinasyonunun walk-forward'a sapması. Kırmızı = şişme, yeşil = yakın. Topolojik kırılma sıfıra en yakın.

Figür 5 — Performans Şişmesi Haritası

Şişme Ne görüyoruz: Rastgele bölmenin kronolojik ve topolojik bölmeye göre şişirme miktarı. 4 modelde de tutarlı şişme.

Figür 6 — Walk-Forward Kanıtı

WF Ne görüyoruz: Mavi çizgi gerçek dünya, kırmızı çizgi random split iddiası. Kriz anında F1=0.07'ye düşüyor.

Figür 7 — Rastgele Etiket Testi

Rand Ne görüyoruz: Anlamsız etiketlerde bile random split temporal split'in 4 katı skor veriyor.

Figür 8 — Sızıntı Haritası

Sızıntı Ne görüyoruz: Komşuluk sızıntısı 502 kat fark. Aggregated özellikler temporal split'te 3.1x daha fazla katkı.

Figür 9 — Model Karmaşıklığı vs Bölme

Karmaşık Ne görüyoruz: Bölme stratejisinin etkisi model seçiminden daha büyük.

Figür 10 — Bitcoin Olay Haritası

Olay Ne görüyoruz: 49 timestep boyunca suç yoğunluğu. Kapanma sonrası suç 30 kat düşüyor.


Triple Barrier Yöntemi ile İlişki Analizi

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.

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ı
Domain Alım-satım stratejileri Sahtekarlık tespiti

Dolaylı Felsefi Bağlantı

López de Prado'nun "finansal veride rastgele bölme yanlıştır" eleştirisi bizim tezimizle aynı düşünce geleneğinden besleniyor. Ama o bunu etiket örtüşmesiyle çözerken, biz ağ topolojisindeki kırılma noktalarıyla çözüyoruz.

Detaylı analiz: project_report.md Bölüm 6.


Gephi ile Ağ Görselleştirme ve Analiz

python prepare_for_gephi.py --data_dir ./dataset

Detaylı Gephi adımları ve karşılaştırılacak 3 kritik dönem için project_report.md Bölüm 7'ye bakınız.


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

Kriz dönemleri grafikte tepeye çıkıp sonra düşüşe geçtiği anda oluşur:

1. Bileşik kriz sinyali = 0.4×norm(kenar) + 0.3×norm(yoğunluk) + 0.3×norm(derece)
2. Düzleştir: hareketli ortalama (pencere=5)
3. Birinci türev: pozitif=tırmanma, negatif=düşüş
4. Tepe tespiti: birinci türev pozitiften negatife geçtiği an
5. Ana kriz tepesi: düşüş şiddeti en büyük olan tepe

Detaylı implementasyon: peak_descent.py


Veri Temizleme ve Ön İşleme Pipeline

Elliptic Veri Setinin Sorunları

Sorun Detay Etki
%77 etiketsiz 203K düğümün sadece 46K'sı etiketli Eğitim verisi sınırlı
%90 vs %10 dengesizlik İllicit çok az (%9.8) Model "herkes licit" demeye eğilimli
PCA ile gizlenmiş özellikler Ne olduğunu bilmiyoruz Özellik mühendisliği sınırlı
%16.7 outlier hücre İllicit örnekler daha fazla aykırı değer içeriyor Temizleme illicit sınıfını orantısız etkileyebilir
Aggregated özellikler Komşuluktan türetilmiş Sızıntı kanalı olabilir

Uygulanan Pipeline

  1. NaN/Inf → 0 dönüştür
  2. IQR outlier clipping — Q1-1.5×IQR, Q3+1.5×IQR sınırlarına kırp
  3. RobustScaler — median ve IQR bazlı ölçekleme
  4. SMOTE — sentetik azınlık örnekleri üret (eğitim setinde)
  5. Threshold optimizasyonu — her model için 0.1–0.9 aralığında en iyi eşik

Tek Komutla Tüm Deneyleri Çalıştırma (run_all.py)

pip install pandas numpy scikit-learn matplotlib seaborn lightgbm xgboost networkx scipy imbalanced-learn torch torch-geometric
python run_all.py --data_dir ./dataset

Bu script sırayla şunları yapar:

Adım Ne Yapıyor? Süre
1 Veri yükle ve temizle ~1 dk
2 6 pipeline'ı karşılaştır ~3 dk
3 49 timestep topolojik metrik hesapla (NetworkX) ~3 dk
4 Kırılma noktası tespiti (sağlık skoru) ~5 sn
5 GraphSAGE graf verisi hazırla ~10 sn
6 5 strateji × 4 model = 20 deney ~15 dk
7 Walk-forward validasyon (4 model) ~18 dk
8 5 figür oluştur ve kaydet ~10 sn

Toplam: ~40 dakika. Çıktılar output/ klasörüne kaydedilir.


Ön Literatür Taraması (Hakemli Yayınlar — SCI / SCI-E İndeksli)

# Makale Dergi / Konferans İndeks Söyledikleri Biz Ne Yapıyoruz Link
1 Rubachev, I. et al. (2024). "TabReD" NeurIPS 2024 SCI-E (Core A*) Zaman bazlı bölme model sıralamasını değiştiriyor Neden değiştiğini ağ topolojisiyle açıklıyoruz Paper
2 Wang, Y. et al. (2024). "Topological Concentration" ICLR 2024 SCI-E (Core A*) TDS keşfettiler ama bölme kararına bağlamadılar TDS'yi bölme kararına çeviriyoruz Paper
3 Huang, S. et al. (2023). "TGB" NeurIPS 2023 SCI-E (Core A*) Sabit kronolojik bölme, AML domain'i yok Kırılma noktasına göre bölme + AML Paper
4 Poursafaei, F. et al. (2022). "Better Eval Dynamic LP" NeurIPS 2022 SCI-E (Core A*) Negatif örnekleme sıralamayı değiştiriyor Bölme stratejisinin etkisini gösteriyoruz Paper
5 Weber, M. et al. (2019). "Elliptic Dataset" KDD 2019 SCI-E (Core A*) Sabit kronolojik bölme, RF F1=0.796 RF F1=0.884 ile +8.8 puan iyileştiriyoruz Paper
6 Lo, W.W. et al. (2023). "Inspection-L" Applied Intelligence SCI-E (IF:3.4) SSL + RF ile F1=0.828 (transductive) Strict-inductive RF ile F1=0.884 Paper
7 Rossi, E. et al. (2020). "TGN" ICML 2020 SCI-E (Core A*) Dinamik graf çerçevesi sundular Bölme noktası ağ yapısına göre olmalı Paper
8 Wu, Z. et al. (2021). "GNN Survey" IEEE TNNLS SCI (IF:10.4) Sabit snapshot yetersiz dediler Topolojik kırılmaya göre bölme öneriyoruz Paper
9 Al Sahili & Awad (2023). "STGNN Survey" AI Review SCI-E (IF:12.0) Statik graf varsayımı sınırlayıcı Zamansal değişkenliği bölme kararına çeviriyoruz Paper
10 Pareja, A. et al. (2020). "EvolveGCN" AAAI 2020 SCI-E (Core A*) EvolveGCN-O F1≈0.77 (transductive) Ağın evrimindeki kırılmadan bölüyoruz Paper
11 Thimonier, H. et al. (2024). "AD for Fraud" DMKD SCI-E (IF:4.8) COVID kaynaklı shift gösterdiler Shift anını bölme noktası yapıyoruz Paper
12 Luu (2026). "When Graph Structure Becomes a Liability" Preprint Strict-inductive'de RF tüm GNN'leri yeniyor (F1=0.821); transductive sızıntı 39.5 puan şişme Topolojik kırılma ile RF F1=0.884'e çıkarıyoruz Paper

1-11 numaralı makaleler SCI veya SCI-E indeksli hakemli yayınlardır. 12 numara yeni bir preprint olup tezimizi doğrulayan en güncel çalışmadır.

Detaylı tarama: literature_review.md


Raporlar

Rapor İçerik
crisp_dm_report.md CRISP-DM süreç raporu — 6 faz, tüm kararlar ve çıktılar
project_report.md Detaylı analiz raporu — Triple Barrier, walk-forward tabloları, rastgele etiket testleri

Proje Yapısı

├── README.md                          # Bu dosya
├── project_report.md                  # Kapsamlı proje raporu (Triple Barrier analizi dahil)
├── run_all.py                         # ★ Tek komutla tüm deneyleri çalıştır (GraphSAGE dahil)
├── data_audit.py                      # Veri denetimi ve ön işleme pipeline karşılaştırması
├── dataset/                           # Kaggle'dan indirilen veri seti
│   ├── elliptic_txs_features.csv
│   ├── elliptic_txs_classes.csv
│   └── elliptic_txs_edgelist.csv
├── topological_breakpoint.py          # Ana deney: 4 model × 5 strateji = 20 deney
├── proof_mechanism.py                 # Kanıt testleri 1-5
├── honesty_test.py                    # Kanıt testi 6: 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 için veri hazırlama
├── elliptic_event_aware.py            # Olay-farkında bölme deneyleri
├── output/                            # ★ run_all.py çıktıları
│   ├── results/                       # Sayısal sonuçlar (CSV, JSON)
│   ├── figures/                       # Figürler (5 adet)
│   └── run_all_output.log             # Çalıştırma logu
├── topo_figures/                      # Ek figürler
├── proof_figures/                     # Kanıt mekanizması figürleri
├── figures/                           # Olay analizi figürleri
├── topo_results/                      # Topolojik kırılma sonuçları
├── proof_results/                     # Kanıt test sonuçları
└── results/                           # Olay analizi sonuçları

Tekrarlanabilirlik

pip install pandas numpy scikit-learn matplotlib seaborn lightgbm xgboost networkx scipy imbalanced-learn torch torch-geometric
python run_all.py --data_dir ./dataset

Sonuç

Random split %96 F1 rapor ediyor ama bunun %15'i yapay şişme. 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 +15 puan geçiyor ve walk-forward dürüstlük testinde sadece -%0.4 sapma ile en dürüst strateji. Rastgele bölme +%15.2 şişirirken, kronolojik -%10.9 ile pesimist. Topolojik kırılma tam ortada.

Literatürdeki en güçlü strict-inductive sonuç Luu (2026) RF F1=0.821 iken, bizim topolojik kırılma ile RF F1=0.884 — daha az eğitim verisi kullanarak +6.3 puan iyileştirme.

4 farklı model (GraphSAGE, Random Forest, XGBoost, LightGBM) ile tutarlı sonuçlar: bölme stratejisinin etkisi model seçiminden çok daha büyük.

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

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Papers for MucahitSylmz/elliptic-event-aware-splitting