75.778 kayıt · Haz 2024 – Haz 2026Analiz: Temmuz 2026
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.
M6 · Churnico Churn Motoru ★
0,850
M5 · LightGBM
0,846
M4 · XGBoost
0,833
M3 · HistGB (v1)
0,712
M2 · Random Forest
0,616
M1 · Lojistik Regresyon
0,369
M0 · Taban (dummy)
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)
%50%100%1%2%5%10%20
DilimNYakalananPrecisionLiftCapture
top %1757734%96,9659,64x%59,58
top %21.5151.016%67,0641,25x%82,47
top %53.7881.129%29,818,33x%91,64
top %107.5771.172%15,479,51x%95,13
top %2015.1551.201%7,924,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.
%8,7%8,7%17,3%17,3ortalama tahmingerçek oran
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.
tenure
0,301
profil
0,070
gecmis
0,034
davranış: hb
0,016
davranış: d2d
0,014
dijital
0,008
d2d_neden
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.
KurguPR-AUCTabanLiftNe ölçüyor?
Kesitsel (eski)0,850%1,6352,3xBüyük ölçüde tenure/kohort artefaktı
Panel + rastgele bölme0,031%0,457,0xArtefakt kalktı, zaman genellemesi yok
Panel + out-of-time0,022%0,544,0xGerç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ı:
0,541,070,48MLP hizalı0,48MLP adil0,64GRU hizalı0,05GRU adil0,96Hibrit hizalı0,49Hibrit adil
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.
tenure_yrs
669,7
ex_churner
126,4
riskli_urun
123,6
login_inact
86,4
never_logged
76
avg_cons
50
d2d_count
15
tepsas
13
hb_count
12,3
d2d_satis
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).