MucahitSylmz commited on
Commit
26ea25e
·
verified ·
1 Parent(s): 3bdc741

CRISP-DM süreç raporu eklendi

Browse files
Files changed (1) hide show
  1. crisp_dm_report.md +481 -0
crisp_dm_report.md ADDED
@@ -0,0 +1,481 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CRISP-DM SÜREÇ RAPORU
2
+
3
+ ## 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
4
+
5
+ ---
6
+
7
+ > 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.
8
+
9
+ ---
10
+
11
+ ## CRISP-DM Genel Bakış
12
+
13
+ ```
14
+ ┌─────────────────────────────────────────────────────────────┐
15
+ │ CRISP-DM DÖNGÜSÜ │
16
+ │ │
17
+ │ 1. İş Anlayışı ──────► 2. Veri Anlayışı │
18
+ │ ▲ │ │
19
+ │ │ ▼ │
20
+ │ 6. Dağıtım ◄──── 3. Veri Hazırlama │
21
+ │ ▲ │ │
22
+ │ │ ▼ │
23
+ │ 5. Değerlendirme ◄── 4. Modelleme │
24
+ │ │
25
+ └─────────────────────────────────────────────────────────────┘
26
+ ```
27
+
28
+ ---
29
+
30
+ # FAZ 1: İŞ ANLAYIŞI (Business Understanding)
31
+
32
+ ## 1.1. İş Problemi
33
+
34
+ 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.
35
+
36
+ ## 1.2. Araştırma Problemi
37
+
38
+ 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:
39
+
40
+ - **Rastgele bölme:** Gelecek bilgisini eğitim setine sızdırır (data leakage) → yapay yüksek performans
41
+ - **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
42
+
43
+ ## 1.3. Hipotezler
44
+
45
+ | # | Hipotez | Ölçüm |
46
+ |---|---------|-------|
47
+ | H1 | Topolojik kırılma noktasından bölme, kronolojik bölmeden daha iyi sonuç verir | Illicit F1 farkı |
48
+ | H2 | Rastgele bölme performansı yapay olarak şişirir | Walk-forward'a göre sapma (%) |
49
+
50
+ ## 1.4. Başarı Kriterleri
51
+
52
+ | Kriter | Eşik |
53
+ |--------|------|
54
+ | Topolojik kırılma F1'i kronolojik F1'den yüksek | En az 3/4 modelde |
55
+ | Topolojik kırılma walk-forward sapması | <%10 (dürüstlük bandı içinde) |
56
+ | Rastgele bölme şişme oranı | >%10 (şişme kanıtı) |
57
+
58
+ ## 1.5. Proje Planı
59
+
60
+ | Aşama | CRISP-DM Fazı | İçerik |
61
+ |-------|--------------|--------|
62
+ | 1 | İş Anlayışı | Problem tanımı, hipotezler, literatür taraması |
63
+ | 2 | Veri Anlayışı | Elliptic veri seti inceleme, olay tipi keşfi |
64
+ | 3 | Veri Hazırlama | Temizleme, özellik mühendisliği, graf yapısı |
65
+ | 4 | Modelleme | 4 model × 5 strateji = 20 deney + GraphSAGE |
66
+ | 5 | Değerlendirme | Walk-forward, dürüstlük, sızıntı testleri |
67
+ | 6 | Dağıtım | HF Hub repo, tekrarlanabilir scriptler, rapor |
68
+
69
+ ---
70
+
71
+ # FAZ 2: VERİ ANLAYIŞI (Data Understanding)
72
+
73
+ ## 2.1. Veri Kaynağı
74
+
75
+ **Elliptic Bitcoin Dataset** (Weber et al., KDD 2019)
76
+ - **Kaynak:** [Kaggle](https://www.kaggle.com/datasets/ellipticco/elliptic-data-set)
77
+ - **Yayın:** "Anti-Money Laundering in Bitcoin: Experimenting with Graph Convolutional Networks for Financial Forensics"
78
+ - **Atıf sayısı:** 500+ (2019–2026)
79
+
80
+ ## 2.2. Veri Seti Yapısı
81
+
82
+ | Dosya | Boyut | İçerik |
83
+ |-------|-------|--------|
84
+ | `elliptic_txs_features.csv` | 657.7 MB | 203,769 düğüm × 167 sütun (txId + timestep + 165 özellik) |
85
+ | `elliptic_txs_classes.csv` | 3.2 MB | 203,769 düğüm × 2 sütun (txId, class: 1/2/unknown) |
86
+ | `elliptic_txs_edgelist.csv` | 4.3 MB | 234,355 kenar × 2 sütun (txId1, txId2) |
87
+
88
+ ## 2.3. Temel İstatistikler
89
+
90
+ | Metrik | Değer |
91
+ |--------|-------|
92
+ | Toplam düğüm | 203,769 |
93
+ | Etiketli düğüm | 46,564 (%22.8) |
94
+ | İllicit (kara para) | 4,545 (%9.8 etiketliler içinde) |
95
+ | Licit (yasal) | 42,019 (%90.2) |
96
+ | Etiketsiz | 157,205 (%77.2) |
97
+ | Kenar sayısı | 234,355 (yönlü) |
98
+ | Özellik sayısı | 165 (94 local + 71 aggregated) |
99
+ | Zaman adımları | 49 (~2 haftalık aralıklar) |
100
+ | Ortalama düğüm derecesi | ~2.3 |
101
+
102
+ ## 2.4. Veri Kalitesi Denetimi
103
+
104
+ | Sorun | Tespit | Etki |
105
+ |-------|--------|------|
106
+ | Eksik değer (NaN) | 0 | Yok |
107
+ | Sonsuz değer (Inf) | 0 | Yok |
108
+ | Outlier hücre oranı | %16.74 (IQR yöntemi) | Orta — clipping gerekli |
109
+ | Sınıf dengesizliği | %9.8 illicit vs %90.2 licit | Yüksek — SMOTE/class_weight gerekli |
110
+ | Etiketsiz veri | %77.2 | Eğitim seti sınırlı |
111
+ | Anonim özellikler | 165 özelliğin hiçbirinin ismi yok (PCA uygulanmış) | Özellik yorumlaması sınırlı |
112
+
113
+ ## 2.5. Zamansal Analiz — 5 Olay Tipi Keşfi
114
+
115
+ Veri setinin zamansal yapısını analiz ettiğimizde, timestep'leri 5 farklı olay tipine ayırdık:
116
+
117
+ | Olay Tipi | Timestep'ler | İllicit Oranı | İşlem Sayısı | Açıklama |
118
+ |-----------|-------------|---------------|-------------|----------|
119
+ | 🔴 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 |
120
+ | ⚫ Kapanma (Shutdown) | 43 | %1.8 | 1,370 | Bilinen dark market kapanması |
121
+ | 🔵 Kapanma Sonrası | 44,45,46 | %0.9 | 3,524 | Suçluların sessizleştiği dönem |
122
+ | 🟠 Toparlanma | 47,48,49 | %6.4 | 1,793 | Yeni aktörlerin girişi |
123
+ | 🟢 Normal Aktivite | Geri kalan 31 TS | %7.0 | 31,654 | Standart ağ davranışı |
124
+
125
+ **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.
126
+
127
+ ## 2.6. Topolojik Metrikler
128
+
129
+ 49 timestep için NetworkX ile hesaplanan ağ metrikleri:
130
+
131
+ | Metrik | Min | Max | Ortalama | Yorum |
132
+ |--------|-----|-----|----------|-------|
133
+ | Düğüm sayısı | 485 | 7,140 | 4,159 | Ağ boyutu çok değişken |
134
+ | Kenar sayısı | 504 | 8,493 | 4,782 | Kenarlar düğümlerle paralel |
135
+ | Yoğunluk (density) | 0.00017 | 0.00214 | 0.00047 | Çok seyrek graf |
136
+ | Bağlantılılık (CC ratio) | 0.035 | 0.221 | 0.098 | Parçalı yapı |
137
+ | Bileşen sayısı | 94 | 2,458 | 830 | Çok sayıda izole küme |
138
+ | Ortalama derece | 1.00 | 2.38 | 1.62 | Düşük bağlantılılık |
139
+
140
+ **Keşif:** Ağ metrikleri zamanla dramatik değişiyor — bu, sabit bölme noktasının yetersizliğinin topolojik kanıtı.
141
+
142
+ ---
143
+
144
+ # FAZ 3: VERİ HAZIRLAMA (Data Preparation)
145
+
146
+ ## 3.1. Veri Temizleme
147
+
148
+ | Adım | İşlem | Etki |
149
+ |------|-------|------|
150
+ | NaN/Inf temizleme | `nan_to_num(X, nan=0.0, posinf=0.0, neginf=0.0)` | 0 hücre etkilendi |
151
+ | IQR outlier clipping | `clip(X, Q1-1.5×IQR, Q3+1.5×IQR)` | %16.74 hücre kırpıldı |
152
+ | Düşük varyans çıkarma | `var > 1e-6` filtresi | 47 özellik çıkarıldı (165 → 118) |
153
+
154
+ ## 3.2. Ön İşleme Pipeline Karşılaştırması
155
+
156
+ 6 farklı pipeline'ı kronolojik bölme (TS ≤ 39 train, > 39 test) üzerinde LightGBM ile test ettik:
157
+
158
+ | # | Pipeline | Illicit F1 | Ham'a Göre Fark |
159
+ |---|----------|-----------|-----------------|
160
+ | 1 | Ham Veri | 0.7511 | — |
161
+ | 2 | StandardScaler | 0.7467 | -0.0044 |
162
+ | 3 | RobustScaler | 0.7450 | -0.0061 |
163
+ | 4 | Clip + RobustScaler | 0.7504 | -0.0007 |
164
+ | 5 | **Clip + VarFilter + RobustScaler** | **0.7605** | **+0.0094** |
165
+ | 6 | Clip + RobustScaler + SMOTE | 0.7514 | +0.0003 |
166
+
167
+ **Seçilen pipeline:** Clip + VarFilter + RobustScaler (F1=0.7605)
168
+
169
+ **Ö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.
170
+
171
+ ## 3.3. Sınıf Dengesizliği Yönetimi
172
+
173
+ | Yöntem | Uygulama | Nerede |
174
+ |--------|----------|-------|
175
+ | SMOTE | Eğitim setinde sentetik azınlık örnekleri | Tabular modeller (Elliptic run_all.py) |
176
+ | Class weight | `scale_pos_weight` / `balanced_subsample` | Tüm modellerde |
177
+ | Threshold optimizasyonu | 0.1–0.9 aralığında F1 maksimize eden eşik arama | Tüm modellerde |
178
+
179
+ ## 3.4. Graf Verisi Hazırlama (GraphSAGE için)
180
+
181
+ | İşlem | Detay |
182
+ |-------|-------|
183
+ | Etiketli düğümler arası kenarlar | 36,624 kenar → 73,248 (undirected) |
184
+ | Özellik normalizasyonu | RobustScaler (tüm etiketli düğümler üzerinde) |
185
+ | PyG Data nesnesi | `Data(x=X_tensor, edge_index=edge_index, y=y_tensor)` |
186
+ | Inductive training | Test kenarları eğitimde kullanılmaz |
187
+
188
+ ## 3.5. Bölme Stratejileri
189
+
190
+ | # | Strateji | Train | Test | Train İllicit | Test İllicit |
191
+ |---|----------|-------|------|---------------|--------------|
192
+ | 1 | Rastgele (%80/%20) | 37,251 | 9,313 | 3,636 | 909 |
193
+ | 2 | Kronolojik (TS ≤ 39) | 35,380 | 11,184 | 3,909 | 636 |
194
+ | 3 | **Topolojik Kırılma (TS < 29)** | **25,207** | **21,357** | **2,542** | **2,003** |
195
+ | 4 | Kayan Pencere (son 10 TS test) | 35,380 | 11,184 | 3,909 | 636 |
196
+ | 5 | Düşmanca-Kriz | 38,341 | 8,223 | 2,370 | 2,175 |
197
+
198
+ **Not:** Topolojik kırılma daha az eğitim verisi kullanıyor (25K vs 35K) — buna rağmen daha iyi sonuç veriyor.
199
+
200
+ ---
201
+
202
+ # FAZ 4: MODELLEME (Modeling)
203
+
204
+ ## 4.1. Topolojik Kırılma Noktası Tespit Algoritması
205
+
206
+ Ağın "matematiksel sağlığını" her timestep için ölçen etiket-görmez bir algoritma geliştirdik:
207
+
208
+ ```
209
+ Sağlık(t) = [norm(yoğunluk) + norm(bağlantılılık) + (1 - norm(bileşen_sayısı))] / 3
210
+ Kırılma = argmin_t [Sağlık(t) - Sağlık(t-1)]
211
+ ```
212
+
213
+ **Sonuç:** Algoritma hiçbir etikete bakmadan **Timestep 29'u** tespit etti — dark market aktivitesinin zirve yaptığı dönemin (%28-30 illicit oran) tam ortası.
214
+
215
+ ## 4.2. Model Mimarileri
216
+
217
+ ### Tabular Modeller
218
+
219
+ | Model | Hiperparametreler | Özellik |
220
+ |-------|-------------------|---------|
221
+ | **LightGBM** | n_estimators=500, max_depth=12, lr=0.05, num_leaves=63, subsample=0.8 | Hız ve performans dengesi |
222
+ | **Random Forest** | n_estimators=500, max_depth=20, min_samples_leaf=5, class_weight=balanced_subsample | Elliptic'te en güçlü baseline |
223
+ | **XGBoost** | n_estimators=500, max_depth=10, lr=0.05, subsample=0.8, min_child_weight=5 | Tabular SOTA |
224
+
225
+ ### Graf Sinir Ağı
226
+
227
+ | Parametre | Değer |
228
+ |-----------|-------|
229
+ | **Model** | GraphSAGE (Hamilton et al., 2017) |
230
+ | **Katman** | 3 × SAGEConv (mean aggregation) |
231
+ | **Gizli boyut** | 128 |
232
+ | **Dropout** | 0.3 |
233
+ | **BatchNorm** | Her katmandan sonra |
234
+ | **Optimizer** | Adam (lr=0.005, weight_decay=5e-4) |
235
+ | **Scheduler** | CosineAnnealingLR |
236
+ | **Epoch** | 200 (early stopping patience=30) |
237
+ | **Training** | Strict inductive — test kenarları eğitimde yok |
238
+
239
+ ## 4.3. Deney Sonuçları: 5 Strateji × 4 Model = 20 Deney
240
+
241
+ ### Illicit F1 Score
242
+
243
+ | Model | Rastgele | Kronolojik | **Topolojik Kırılma** | Kayan Pencere | Düşmanca-Kriz |
244
+ |-------|---------|-----------|---------------------|--------------|--------------|
245
+ | LightGBM | 0.963 | 0.764 | **0.873** | 0.764 | 0.978 |
246
+ | Random Forest | 0.945 | 0.730 | **0.884** | 0.730 | 0.970 |
247
+ | XGBoost | 0.967 | 0.750 | **0.869** | 0.750 | 0.977 |
248
+ | GraphSAGE | 0.932 | 0.702 | 0.676 | 0.718 | 0.958 |
249
+
250
+ ### Precision / Recall / AUROC
251
+
252
+ | Model | Strateji | F1 | Precision | Recall | AUROC |
253
+ |-------|----------|-----|-----------|--------|-------|
254
+ | LightGBM | **Topolojik** | **0.873** | 0.947 | **0.809** | 0.970 |
255
+ | Random Forest | **Topolojik** | **0.884** | 0.973 | **0.809** | 0.965 |
256
+ | XGBoost | **Topolojik** | **0.869** | 0.936 | **0.811** | 0.968 |
257
+ | GraphSAGE | **Topolojik** | 0.676 | 0.599 | **0.776** | 0.938 |
258
+
259
+ ### Hipotez 1 Sonucu: ✅ DOĞRULANDI
260
+
261
+ | Model | Topolojik F1 | Kronolojik F1 | **Fark** |
262
+ |-------|-------------|--------------|---------|
263
+ | Random Forest | **0.884** | 0.730 | **+15.4 puan** |
264
+ | LightGBM | **0.873** | 0.764 | **+10.9 puan** |
265
+ | XGBoost | **0.869** | 0.750 | **+11.9 puan** |
266
+ | GraphSAGE | 0.676 | 0.702 | -2.6 puan |
267
+
268
+ 3/4 modelde topolojik kırılma bölmesi kronolojik bölmeyi geçti. Başarı kriteri karşılandı.
269
+
270
+ ---
271
+
272
+ # FAZ 5: DEĞERLENDİRME (Evaluation)
273
+
274
+ ## 5.1. Walk-Forward Validasyon (Gerçek Dünya Simülasyonu)
275
+
276
+ 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.
277
+
278
+ | Model | Walk-Forward F1 |
279
+ |-------|----------------|
280
+ | XGBoost | **0.855** |
281
+ | Random Forest | **0.836** |
282
+ | LightGBM | **0.829** |
283
+ | GraphSAGE | **0.786** |
284
+
285
+ ## 5.2. Dürüstlük Testi (Hipotez 2)
286
+
287
+ Her stratejinin walk-forward referansına sapması:
288
+
289
+ | Strateji | Walk-Forward'a Sapma | Durum | Yorum |
290
+ |----------|---------------------|-------|-------|
291
+ | **Topolojik Kırılma** | **-%0.4** | ✅ DÜRÜST | Gerçek dünyaya neredeyse birebir yakın |
292
+ | Kronolojik | -%10.9 | ⚠️ PESİMİST | Gerçeği olduğundan kötü gösteriyor |
293
+ | Kayan Pencere | -%10.4 | ⚠️ PESİMİST | Kronolojikle benzer |
294
+ | Rastgele | **+%15.2** | 🔴 ŞİŞME | Gerçek dünyada olmayan performans |
295
+ | Düşmanca-Kriz | **+%17.5** | 🔴 ŞİŞME | En fazla şişiren strateji |
296
+
297
+ **Hipotez 2 Sonucu: ✅ DOĞRULANDI** — Rastgele bölme %15.2 şişme gösteriyor. Başarı kriteri karşılandı.
298
+
299
+ ## 5.3. Kanıt Mekanizması (6 Bağımsız Test)
300
+
301
+ ### Test 1: Walk-Forward Performans Şişmesi
302
+
303
+ | Ölçüm | Değer |
304
+ |-------|-------|
305
+ | Random split F1 | 0.965 |
306
+ | Walk-forward ortalama F1 | 0.796 |
307
+ | **Şişme** | **%21.2** |
308
+
309
+ ### Test 2: Kriz Çöküşü
310
+
311
+ Walk-forward'da dark market kapanması sırasında (TS 43-45):
312
+
313
+ | Dönem | F1 |
314
+ |-------|-----|
315
+ | Normal dönem (TS 10-12) | 0.972 |
316
+ | Kriz (TS 43-45) | **0.066** |
317
+ | Kapanma sonrası (TS 46-48) | 0.033 |
318
+
319
+ ### Test 3: Rastgele Etiket Testi
320
+
321
+ Etiketler rastgele karıştırıldığında bile random split skor üretiyor:
322
+
323
+ | Durum | Random Split F1 | Temporal Split F1 | Oran |
324
+ |-------|----------------|------------------|------|
325
+ | Gerçek etiket | 0.965 | 0.738 | 1.3x |
326
+ | **Rastgele etiket** | **0.120** | **0.031** | **3.9x** |
327
+
328
+ ### Test 4: Sızıntı Haritası
329
+
330
+ | Ölçüm | Random Split | Temporal Split | Fark |
331
+ |-------|-------------|----------------|------|
332
+ | Komşuluk sızıntı oranı | **0.502** | **0.000** | **502x** |
333
+
334
+ ### Test 5: Yapı Duyarlılığı
335
+
336
+ | Özellik Seti | Random F1 | Temporal F1 | Fark |
337
+ |-------------|----------|------------|------|
338
+ | Local (94) | 0.943 | 0.669 | +0.274 |
339
+ | Aggregated (71) | 0.902 | 0.627 | +0.275 |
340
+ | Tümü (165) | 0.965 | 0.738 | +0.227 |
341
+ | **Agg. ek katkısı** | **+0.022** | **+0.069** | **3.1x** |
342
+
343
+ ### Test 6: Dürüstlük — Kendi Yöntemimizi Sorgulama
344
+
345
+ | Strateji | Sapma | Dürüstlük |
346
+ |----------|-------|-----------|
347
+ | Rastgele | +%20.9 | 🔴 Şişiriyor |
348
+ | **Topolojik Kırılma** | **+%8.0** → **-%0.4** (güncel) | ✅ Dürüst |
349
+ | Kronolojik | -%6.7 | ✅ Dürüst (pesimist) |
350
+
351
+ ## 5.4. Literatür Karşılaştırması
352
+
353
+ ### Elliptic Veri Setinde Yayınlanmış Tüm Sonuçlar
354
+
355
+ | Çalışma | Model | Illicit F1 | Protokol | Seeds |
356
+ |---------|-------|-----------|----------|-------|
357
+ | Weber et al., 2019 (KDD) | Random Forest | 0.796 | Transductive | 1 |
358
+ | Weber et al., 2019 | GCN | 0.628 | Transductive | 1 |
359
+ | Pareja et al., 2020 (AAAI) | EvolveGCN-O | ~0.770 | Transductive | 1 |
360
+ | Alarab et al., 2020 | XGBoost | ~0.815 | Transductive | 1 |
361
+ | Lo et al., 2023 (Appl. Intell.) | Inspection-L | 0.828 | Transductive | 3 |
362
+ | **Luu, 2026** | **Random Forest** | **0.821±0.003** | **Strict Inductive** | **10** |
363
+ | Luu, 2026 | GraphSAGE | 0.688±0.016 | Strict Inductive | 10 |
364
+ | **Bizim** | **Random Forest** | **0.884** | **Strict Inductive** | 1 |
365
+ | **Bizim** | **LightGBM** | **0.873** | **Strict Inductive** | 1 |
366
+ | **Bizim** | **XGBoost** | **0.869** | **Strict Inductive** | 1 |
367
+
368
+ ### Karşılaştırma
369
+
370
+ | Karşılaştırma | Fark | Neden |
371
+ |--------------|------|-------|
372
+ | Bizim RF vs Weber RF | **+8.8 puan** | Daha akıllı bölme noktası + SMOTE + threshold opt |
373
+ | Bizim RF vs Luu RF | **+6.3 puan** | TS29 bölmesi daha temiz sınır, daha az eğitim verisiyle daha iyi |
374
+ | Bizim RF vs Inspection-L | **+5.6 puan** | Inspection-L transductive + SSL, biz strict-inductive ham özelliklerle |
375
+
376
+ ## 5.5. Başarı Kriterlerinin Değerlendirmesi
377
+
378
+ | Kriter | Hedef | Gerçekleşen | Durum |
379
+ |--------|-------|-------------|-------|
380
+ | Topolojik > Kronolojik (F1) | ≥3/4 modelde | 3/4 modelde (+10.9 ile +15.4 puan) | ✅ Karşılandı |
381
+ | Topolojik WF sapması | <%10 | **-%0.4** | ✅ Karşılandı (mükemmel) |
382
+ | Rastgele bölme şişmesi | >%10 | **+%15.2** | ✅ Karşılandı |
383
+ | Literatürden iyi | RF F1 > 0.821 (Luu) | **RF F1 = 0.884** | ✅ Karşılandı (+6.3 puan) |
384
+
385
+ ---
386
+
387
+ # FAZ 6: DAĞITIM (Deployment)
388
+
389
+ ## 6.1. Tekrarlanabilirlik
390
+
391
+ Tüm deneyler tek bir komutla tekrarlanabilir:
392
+
393
+ ```bash
394
+ pip install pandas numpy scikit-learn matplotlib seaborn lightgbm xgboost networkx scipy imbalanced-learn torch torch-geometric
395
+ python run_all.py --data_dir ./dataset
396
+ ```
397
+
398
+ Çalışma süresi: ~40 dakika (CPU).
399
+
400
+ ## 6.2. Depo Yapısı
401
+
402
+ ```
403
+ Moco22/elliptic-event-aware-splitting/
404
+ ├── README.md # Proje açıklaması
405
+ ├── project_report.md # Önceki rapor
406
+ ├── crisp_dm_report.md # ★ Bu rapor (CRISP-DM)
407
+ ├── run_all.py # ★ Tek komutla tüm deneyler (GraphSAGE dahil)
408
+ ├── data_audit.py # Veri denetimi ve pipeline karşılaştırması
409
+ ├── dataset/ # Elliptic Bitcoin Dataset (3 CSV)
410
+ ├── topological_breakpoint.py # Ana deney scripti
411
+ ├── proof_mechanism.py # Kanıt testleri (walk-forward, sızıntı, vb.)
412
+ ├── honesty_test.py # Dürüstlük testi
413
+ ├── leakage_map.py # Sızıntı haritası
414
+ ├── peak_descent.py # Tepe-düşüş kriz tespit algoritması
415
+ ├── prepare_for_gephi.py # Gephi görselleştirme verisi
416
+ ├── elliptic_event_aware.py # Olay-farkında bölme deneyleri
417
+ ├── output/ # ★ run_all.py çıktıları (sonuçlar + figürler)
418
+ ├── topo_figures/ # Kırılma noktası figürleri
419
+ ├── proof_figures/ # Kanıt mekanizması figürleri
420
+ ├── figures/ # Olay analizi figürleri
421
+ ├── topo_results/ # Önceki deney sonuçları
422
+ ├── proof_results/ # Kanıt test sonuçları
423
+ └── results/ # Olay analizi sonuçları
424
+ ```
425
+
426
+ ## 6.3. Çıktılar
427
+
428
+ ### Sayısal Sonuçlar
429
+ - `output/results/all_experiment_results.csv` — 20 deney (4 model × 5 strateji)
430
+ - `output/results/topological_metrics.csv` — 49 timestep ağ metrikleri
431
+ - `output/results/summary.json` — Tam özet (kırılma noktası, walk-forward, dürüstlük)
432
+ - `proof_results/` — Kanıt test sonuçları (walk-forward, sızıntı, dürüstlük)
433
+
434
+ ### Figürler
435
+ - `output/figures/fig1_breakpoint.png` — Kırılma noktası tespiti (3 panel)
436
+ - `output/figures/fig2_f1_comparison.png` — F1 strateji karşılaştırması
437
+ - `output/figures/fig3_pipeline_comparison.png` — Pipeline karşılaştırması
438
+ - `output/figures/fig4_honesty.png` — Walk-forward dürüstlük ısı haritası
439
+ - `output/figures/fig5_inflation.png` — Performans şişmesi haritası
440
+ - `proof_figures/` — Kanıt figürleri (7 adet)
441
+ - `topo_figures/` — Kırılma noktası figürleri (6 adet)
442
+ - `figures/` — Olay analizi figürleri (8 adet)
443
+
444
+ ## 6.4. Literatür
445
+
446
+ 12 referans makalenin tamamı için bkz. README.md "Ön Literatür Taraması" bölümü.
447
+
448
+ ---
449
+
450
+ # SONUÇ VE KATKILAR
451
+
452
+ ## Ana Bulgular
453
+
454
+ 1. **Rastgele bölme %15.2 performans şişmesi yaratıyor** — walk-forward validasyonla kanıtlandı.
455
+
456
+ 2. **Topolojik kırılma bölmesi kronolojik bölmeyi +10.9 ile +15.4 puan F1 ile geçiyor** — 3/4 modelde tutarlı.
457
+
458
+ 3. **Topolojik kırılma walk-forward'a -%0.4 sapmayla en dürüst strateji** — ne şişiriyor ne pesimist.
459
+
460
+ 4. **Komşuluk sızıntısı 502 kat farkla kanıtlandı** — random split'te %50.2, temporal split'te %0.
461
+
462
+ 5. **RF F1=0.884 literatürdeki en iyi strict-inductive sonucu +6.3 puan geçiyor** (Luu 2026: RF F1=0.821).
463
+
464
+ 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.**
465
+
466
+ ## Literatüre Katkı
467
+
468
+ > **Veri bölme noktasını, ağın topolojik sağlığının çöktüğü kriz anına göre belirleyen ilk çalışma.**
469
+
470
+ ## CRISP-DM Döngüsünün Tamamlanması
471
+
472
+ | Faz | Durum | Anahtar Çıktı |
473
+ |-----|-------|---------------|
474
+ | 1. İş Anlayışı | ✅ | 2 hipotez, 4 başarı kriteri tanımlandı |
475
+ | 2. Veri Anlayışı | ✅ | 5 olay tipi keşfedildi, %16.7 outlier tespit edildi |
476
+ | 3. Veri Hazırlama | ✅ | 6 pipeline karşılaştırıldı, graf verisi hazırlandı |
477
+ | 4. Modelleme | ✅ | 20 deney (4 model × 5 strateji) koşuldu |
478
+ | 5. Değerlendirme | ✅ | 6 kanıt testi, walk-forward, literatür karşılaştırması |
479
+ | 6. Dağıtım | ✅ | HF Hub repo, tekrarlanabilir script, CRISP-DM raporu |
480
+
481
+ **Tüm başarı kriterleri karşılandı. Her iki hipotez de doğrulandı.**