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