Sayfa 6 / 11
Model Merkezi
İki model ailesi (ML · Derin Öğrenme) aynı 5 katla, out-of-fold, PR-AUC birincil metrikle ölçüldü. Üretim adayı: Churnico Churn Motoru — XGBoost %30 + LightGBM %70 olasılık ağırlıklı birleşimi (merdivende M6), Churnico Veri Bilimi tarafından bu proje için eğitildi ve kalibre edildi. Yedek/çapraz kontrol: kalibre LightGBM. Kod: kod/04–06, raporlar: 24–26.
Her sayı ölçülmüştür. Bu sayfadaki tüm metrikler gerçekten eğitilmiş modellerden, aynı 5 katlı out-of-fold protokolüyle üretilmiştir (M0–M6, D1–D3). Karşılaştırma tablosundaki her değer bu protokolle ölçülmüştür.
Denetim düzeltmesi (20 Tem 2026): iki özellik hedefe bağlı hesaplanıyordu ve düzeltildi — avg_monthly_cons referans aya hizalandı (churn edenlerin iptal sonrası sıfır ayları ortalamayı bozuyordu), login/hb recency çapası satır bazlı yapıldı (churn'de iptal tarihi). Sonuç: tüm modeller iyileşti (M5 0,833→0,846 · M6 0,838→0,850) ve dijital özellik grubu ilk kez pozitif katkı verdi (ablation −0,003 → +0,008): çapa düzelince "dijital inaktiflik" gerçek bir sinyale dönüştü.
Üretim adayı PR-AUC
0,850
Churnico Churn Motoru · taban 0,016 (53x) · ölçülmüş
Top %1 precision
%97,0
757 kişilik listede 734 gerçek churn · bu liste tüm churn'ün %59,6'sını kapsar
Top %2 capture
%82,5
1.515 kişiyle tüm churn'ün %82,5'i · precision %67,1
Tenure'suz varyant
0,545
tenure çıkınca PR-AUC · gerçek veride beklenen taban buna yakın
Model merdiveni — PR-AUC
Basitten karmaşığa 7 model, aynı özellikler ve katlar. Zirve M6 Ensemble; LR ile boosting arasındaki uçurum = sinyal etkileşimlerde. Tüm değerler ölçülmüştür.
0,850
0,846
0,833
0,712
0,616
0,369
0,016
Kazanç eğrisi & lift
Listenin ilk yüzde kaçını ararsan churn'ün yüzde kaçını yakalarsın? Precision aynı eksende.
Capture (yakalanan churn)Precision (listenin isabeti)
| Dilim | N | Yakalanan | Precision | Lift | Capture |
|---|---|---|---|---|---|
| top %1 | 757 | 734 | %96,96 | 59,64x | %59,58 |
| top %2 | 1.515 | 1.016 | %67,06 | 41,25x | %82,47 |
| top %5 | 3.788 | 1.129 | %29,8 | 18,33x | %91,64 |
| top %10 | 7.577 | 1.172 | %15,47 | 9,51x | %95,13 |
| top %20 | 15.155 | 1.201 | %7,92 | 4,87x | %97,48 |
Kalibrasyon: tahmin ≈ gerçek
10 skor diliminde ortalama tahmin vs gerçekleşen churn; kesikli köşegen = mükemmel kalibrasyon. Noktalar köşegene oturuyor → skor beklenen-değer (bütçe) hesabında doğrudan kullanılabilir.
Brier 0,0050 (izotonik, ölçülmüş) · ilk 5 dilim ~%0/%0 — sol altta üst üste.
Ablation: hangi veri kaynağı ne kazandırıyor?
Özellik grubu çıkarılınca PR-AUC kaybı. Tenure tek başına performansın %35'i (0,850→0,545) — ve tenure etikete bağlı tanımlanıyor, yani bu payın önemli kısmı davranış değil yapısal artefakt. Çapa düzeltmesinden sonra dijital (+0,008) ve D2D-neden (+0,003) grupları artık pozitif katkı veriyor.
0,301
0,070
0,034
0,016
0,014
0,008
0,003
Aylık snapshot paneli + out-of-time validasyon — gerçek tavan burası
Kesitsel kurgunun kökten sorunu tenure_yrs'in etikete bağlı tanımlanmasıydı. Çözüm: müşteri × ay paneli — her satır bir (müşteri, ay) gözlemi, etiket "sonraki 3 ayda iptal". Böylece tenure her satırda o anki abonelik yaşıdır ve maruz kalma süresi doğal olarak normalize olur. Panelde yalnızca o ay sonunda bilinebilecek alanlar kullanıldı (HB/D2D toplam sayaçları geleceği sızdırdığı için çıkarıldı). Panel: 693.200 satır · 65.899 müşteri · 17 ay.
| Kurgu | PR-AUC | Taban | Lift | Ne ölçüyor? |
|---|---|---|---|---|
| Kesitsel (eski) | 0,850 | %1,63 | 52,3x | Büyük ölçüde tenure/kohort artefaktı |
| Panel + rastgele bölme | 0,031 | %0,45 | 7,0x | Artefakt kalktı, zaman genellemesi yok |
| Panel + out-of-time | 0,022 | %0,54 | 4,0x | Gerçek dağıtım beklentisi |
Bu tablonun anlamı: kesitsel kurgudaki 52,3x lift ve %97 top-%1 isabeti gerçek tahmin gücü değildir. Artefakt kaldırılınca 52,3x → 7,0x, zaman bazlı doğrulama eklenince 7,0x → 4,0x düşüyor. Dürüst beklenti budur. Düşüşün bir kısmı özellik kaybındandır (HB/D2D sayaçları nokta-zamanlı olmadığı için panelde kullanılamadı) — bu, gerçek veride zaman damgalı HB/D2D kayıtları geldiğinde geri kazanılabilecek en somut iyileşme alanıdır.Kod: kod/08_panel_snapshot.py · out-of-time kesme ayı 2025-10
Panelde en güçlü değişkenler artık tüketim dinamiği: cons_trend, cons_last3, cons_12m — yani tenure baskınlığı kırıldı. Out-of-time testte en riskli %5'lik liste churn'ün %42,3'ünü yakalıyor (precision %4,5).
Derin öğrenme kıyası ve sızıntı denetimi
Hibrit modelin ilk ölçümdeki yüksek skoru (PR-AUC 0,956) denetimde veri sızıntısına bağlandı: yalnız eksik-ay maske deseni ROC 0,866, maske + pencere pozisyonu ROC 1,000 veriyordu — iptale hizalı pencerenin konumu etiketi sızdırıyordu. Sızıntı giderilmiş adil ölçüm (aktiflere churn iptal-ayı dağılımından rastgele referans ayı) sonuçları:
Sonuç: adil ölçümde sekans modellerinin skoru çöküyor. Hiçbir DL mimarisi üretim adayına (Churnico Churn Motoru 0,850) yaklaşmıyor → üretim modeli DL değil. Sekans modelleri gerçek aylık snapshot verisiyle yeniden denenecek — o tasarımda bu artefakt tanım gereği yok.Detay: 25 no.lu DL raporu · kod/05_dl_egitim.py (adil modu)
Değişken önemleri (permutation, ilk 10)
PR-AUC katkısı ×1000. Sürücü analiziyle tutarlı: tenure, geçmiş churn, riskli ürün.
669,7
126,4
123,6
86,4
76
50
15
13
12,3
11,4
Değişkenlerin anlamı:
- tenure_yrs — abonelik yaşı (yıl) — müşterinin kaç yıldır portföyde olduğu
- ex_churner — geçmiş churn deneyimi — daha önce en az bir kez iptal edip dönmüş
- riskli_urun — riskli ürün havuzu — LRT-V3, C10, P10 veya P7 ürünlerinden birinde
- hb_count — hizmet bileti sayısı (toplam bilet adedi)
- avg_cons — aylık ortalama tüketim (kWh)
- d2d_count — saha (D2D) ziyaret/belge sayısı
- tepsas — TEPSAS bölgesi müşterisi (hizmet sağlayıcı kodu)
- tahakkuk_bos — yerinde tahakkuk kaydı boş — sayaç okuma/tahakkuk verisi yok
- d2d_satis — sahada satış dönüşümü sayısı
- hb_dis_arama — hizmet biletlerinde en sık geliş kanalı Dış Arama olan müşteri
- d2d_ilgilenmiyor — saha ziyaretinde 'ilgilenmiyor' notu düşülmüş müşteri
- d2d_sozlesme_sartlari — saha ziyaretinde sözleşme şartlarına itiraz notu düşülmüş müşteri
- orta_kurumsal_100_250mwh — yıllık tüketimi 100-250 MWh arası kurumsal müşteri
Mimari: kim ne yapar?
Üç katmanın iş bölümü.
1 · Churnico Churn Motoru sıralarXGBoost+LightGBM olasılık ağırlıklı birleşimi her müşteriye kalibre olasılık verir; liste bu sırayla açılır. Kalibre LightGBM yedek/çapraz kontrol olarak paralel skorlar.
2 · Kural skoru açıklar4 sinyalli composite skor + neden kodları: "neden bu müşteri?" sorusunun denetlenebilir cevabı.
3 · LLM anlatırRisk kartı → 3-4 cümlelik saha anlatısı; sadakat denetiminden geçmeden CRM'e girmez.
Okuma notu — bu sayıları nasıl okumalı: OOF skorlar geriye dönük değerlendirmedir. Portföyün %94'ü 2025-26 kaydı, churn ise 2024-26 arasına yayılmış; ayrıca tenure_yrs churn'lerde iptal−abonelik, aktiflerde gözlem sonu−abonelik olarak hesaplanıyor. Bu ikisi birlikte manşet PR-AUC'un büyük kısmını üretiyor: tenure çıkınca 0,850→0,545. PR-AUC 0,850 gerçek dağıtımın tavanıdır, taahhüdü değil; gerçekçi beklenti 0,545'e yakındır. Ayrıca zaman bazlı (out-of-time) validasyon henüz yapılmadı. Gerçek veride aylık snapshot tasarımı şart (28 no.lu teknik rapor, Bölüm 8).