Bu projede bir telekom şirketine ait müşteri verileri kullanılarak, müşterinin churn (abonelik iptali) edip etmeyeceğini tahmin eden bir makine öğrenmesi modeli geliştirilmiştir.
Proje, uçtan uca bir veri bilimi süreci izlenerek gerçekleştirilmiş ve modelleme aşaması iş hedeflerine uygun şekilde optimize edilmiştir.
- Problem: Müşteri kaybı (churn) şirketler için yüksek maliyetlidir.
- Amaç: Churn etme ihtimali yüksek müşterileri önceden tespit etmek.
Churn eden bir müşteriyi kaçırmak, churn etmeyen bir müşteriye teklif götürmekten daha maliyetlidir.
Bu nedenle projede:
- Recall (Churn = 1) metriği önceliklendirilmiştir.
- Accuracy tek başına yeterli kabul edilmemiştir.
- Veri Seti: Telekom müşteri churn verisi
- Toplam Gözlem: ~7.000 müşteri
- Hedef Değişken:
Churn(Yes / No)
- Churn etmeyen müşteriler: ~%73
- Churn eden müşteriler: ~%27
📌 Bu durum problemin dengesiz sınıflandırma (imbalanced classification) problemi olduğunu göstermektedir.
- Hedef değişken dağılımı incelendi
- Sayısal ve kategorik değişkenler analiz edildi
- Churn ile ilişkili önemli değişkenler belirlendi:
- Müşteri sistemi kullanım süresi (
tenure) - Aylık ücret (
MonthlyCharges) - Toplam ücret (
TotalCharges) - Kontrat türü
- İnternet hizmeti türü
- Müşteri sistemi kullanım süresi (
Aşağıdaki işlemler uygulanmıştır:
- Kimlik bilgisi içeren
customerIDkolonu kaldırıldı TotalChargessayısal veri tipine dönüştürüldü- Eksik veriler ele alındı
- Kategorik değişkenler One-Hot Encoding ile encode edildi
- Sayısal değişkenler ölçeklendirildi
- Veri, %80 Train / %20 Test olacak şekilde (stratified) ayrıldı
📌 Veri hazırlama süreci, projenin yaklaşık %60’ını oluşturmaktadır.
İki farklı model geliştirilmiş ve karşılaştırılmıştır:
- Yorumlanabilir
- Katsayılar üzerinden değişken etkisi analiz edilebilir
- Lineer olmayan ilişkileri yakalayabilen ensemble model
- Performans karşılaştırması için kullanıldı
Kullanılan metrikler:
- Precision
- Recall
- F1-score
- ROC–AUC
📌 Accuracy, sınıf dengesizliği nedeniyle tek başına yeterli bir metrik olarak kullanılmamıştır.
Varsayılan karar eşiği olan 0.5, iş hedefiyle uyumlu olmadığı için farklı threshold değerleri test edilmiştir.
| Threshold | Recall | Precision |
|---|---|---|
| 0.2 | 0.86 | 0.47 |
| 0.3 | 0.75 | 0.52 |
| 0.4 | 0.67 | 0.57 |
| 0.5 | 0.56 | 0.66 |
✅ Final Threshold: 0.3
Bu eşik değeri ile:
- Churn eden müşterilerin yaklaşık %75’i başarıyla yakalanmıştır
- Yanlış alarm sayısı kabul edilebilir seviyede tutulmuştur
Seçim Nedenleri:
- Random Forest’a kıyasla daha yüksek recall değerleri
- ROC–AUC ≈ 0.84
- Yüksek yorumlanabilirlik
- İş birimleri için açıklanabilir sonuçlar
Churn tahmininde en etkili değişkenler:
- Müşteri sistemde kalma süresi (
tenure) - Toplam ücret (
TotalCharges) - Aylık ücret (
MonthlyCharges) - Kontrat türü (özellikle month-to-month)
- Fiber internet kullanımı
- Elektronik çek ödeme yöntemi
- Kısa süredir müşteri olan ve yüksek fatura ödeyen müşteriler hedeflenmeli
- Month-to-month kontrata sahip müşterilere özel kampanyalar sunulmalı
- Fiber internet kullanan yüksek riskli müşteriler için sadakat programları uygulanmalı
- Churn olasılığı ≥ 0.3 olan müşteriler öncelikli olarak ele alınmalı
Bu projede, churn problemini ele alan ve iş hedefleriyle uyumlu şekilde optimize edilmiş bir makine öğrenmesi modeli geliştirilmiştir.
Model, churn eden müşterilerin büyük bir kısmını önceden tespit ederek, şirketlerin müşteri kaybını azaltmasına yardımcı olacak şekilde tasarlanmıştır.
- Python
- Pandas, NumPy
- Scikit-learn
- Matplotlib, Seaborn
- Jupyter Notebook
Melike Külahcı
Data Science & Machine Learning Stajyeri