Memprediksi pelanggan telekomunikasi yang kemungkinan akan berhenti berlangganan menggunakan model machine learning berbasis Tree keputusan dengan hyperparameter tuning dan threshold optimization.
Dataset diambil dari Kaggle. Berisi data demografis dan perilaku penggunaan dari 7.043 pelanggan telekomunikasi. Variabel target menunjukkan apakah pelanggan berhenti berlangganan dalam satu bulan terakhir.
Tantangan utama: ketidakseimbangan kelas sedang (73/27). Model yang selalu memprediksi "tidak churn" bisa mendapat akurasi 73% tanpa belajar apapun — sehingga F1 dan ROC-AUC digunakan sebagai metrik utama.
7.043
pelanggan
20
fitur awal
27%
tingkat churn
6
fitur baru
Distribusi Kelas Target
Tidak Churn5.174 (73%)
Churn1.869 (27%)
Ketidakseimbangan sedang (2.7:1) — akurasi bukan metrik yang tepat. Gunakan F1 & ROC-AUC.
02 — Pemilihan Model
Mengapa Model Berbasis Tree?
Setelah analisis data eksploratif, dua model dipilih: Random Forest dan XGBoost. Keduanya merupakan metode ensemble berbasis Tree keputusan yang cocok untuk masalah ini.
PCA menunjukkan overlap kelas yang signifikan — data tidak bisa dipisahkan secara linear
Terdapat interaction effect antar fitur yang kuat (contract × internet service)
Pola distribusi non-linear pada tenure dan biaya berlangganan
Menangani ketidakseimbangan kelas secara native via class_weight dan scale_pos_weight
Tidak memerlukan feature scaling — bekerja langsung pada data yang sudah di-encode
Uji Chi-square dan T-test mengkonfirmasi sebagian besar fitur signifikan secara statistik
03 — Pipeline
Alur Kerja End-to-End
Load Data
→
Cleaning
→
EDA
→
Feature Eng.
→
Modeling
→
Tuning
→
Inference
Feature Engineering
6 fitur baru ditambahkan berdasarkan domain knowledge — TotalServices, ChargePerService, AvgCharges, IsNewCustomer, IsLongTerm, TenureGroup
Strategi Encoding
Binary encoding untuk kolom Ya/Tidak. "No internet service" disamakan dengan "No". Ordinal untuk Contract. One-hot untuk InternetService dan PaymentMethod.
Penanganan Imbalance
class_weight='balanced' untuk Random Forest. scale_pos_weight untuk XGBoost. SMOTE dicoba tapi ditolak karena hasilnya lebih buruk.
Hyperparameter Tuning
Optuna TPE sampler dengan 20 percobaan per model. StratifiedKFold (5-fold) cross-validation digunakan sebagai objektif optimasi (F1 score).
Step 4 — Threshold di-tuning ulang pada model tunedROC-AUC 0.8486
Step 5 — Eksperimen SMOTEditolak — hasil lebih buruk
05 — Hasil Pengujian
Performa Model
Semua model dievaluasi pada test set yang sama (20% dari data training). Metrik utama: Churn F1 dan ROC-AUC.
Model
Churn F1
Recall
ROC-AUC
Threshold
RF Baseline
0.62
76%
0.8231
0.27
XGB Baseline
0.60
81%
0.8215
0.27
RF Tuned
0.63
74%
0.8454
0.51
XGB Tuned terbaik
0.64
73%
0.8486
0.57
RF + SMOTE
0.63
81%
0.8377
0.40
XGB + SMOTE
0.62
85%
0.8368
0.29
Perbandingan ROC-AUC — Semua Model
RF Baseline
0.8231
XGB Baseline
0.8215
RF + SMOTE
0.8377
XGB + SMOTE
0.8368
RF Tuned
0.8454
XGB Tuned ★
0.8486
06 — Inference Data Unseen
10 Sampel yang Belum Pernah Dilihat Model
Sebagian kecil data dipisahkan sebelum proses training maupun feature engineering. Model tidak pernah melihat sampel ini selama keseluruhan pipeline. Threshold: 0.57.
No
Confidence Score
Prediksi
Aktual
Hasil
1
9.97%
No Churn
No Churn
✓ Benar
2
75.89%
Churn
Churn
✓ Benar
3
22.31%
No Churn
No Churn
✓ Benar
4
82.47%
Churn
Churn
✓ Benar
5
86.31%
Churn
Churn
✓ Benar
6
4.79%
No Churn
No Churn
✓ Benar
7
22.89%
No Churn
No Churn
✓ Benar
8
79.22%
Churn
No Churn
✗ Salah
9
27.49%
No Churn
No Churn
✓ Benar
10
27.15%
No Churn
No Churn
✓ Benar
9/10 benar pada data yang benar-benar unseen (90%)
Confidence Score per Sampel (threshold = 0.57)
1
9.97% — Benar
2
75.89% — Benar
3
22.31% — Benar
4
82.47% — Benar
5
86.31% — Benar
6
4.79% — Benar
7
22.89% — Benar
8
79.22% — Salah
9
27.49% — Benar
10
27.15% — Benar
Hijau = prediksi benar · Merah = prediksi salah · Panjang bar = confidence score
07 — Insight Bisnis
Temuan Utama
~43%
Tingkat churn pelanggan dengan kontrak month-to-month — kelompok paling berisiko
12 bln
Periode kritis — pelanggan baru paling rentan churn di tahun pertama
Fiber
Pengguna fiber optic tanpa add-on menunjukkan churn tinggi meski biaya lebih mahal
e-check
Pengguna electronic check lebih banyak churn dibanding metode pembayaran lainnya