DEV Community

Esra Papeti
Esra Papeti

Posted on AI-assisted

Dari Data Mentah hingga AI yang Andal: Membangun, Memvalidasi, dan Mengoptimalkan Model Ensemble ML untuk Prediksi Customer Churn

Memprediksi customer churn (berhentinya pelanggan berlangganan) merupakan salah satu aplikasi machine learning paling vital dalam bisnis modern. Namun, membangun model yang menghasilkan skor akurasi tinggi di atas kertas sangat berbeda dengan membangun model andal yang dapat dipercaya oleh para pemangku kepentingan bisnis. Dalam artikel ini, kami mendemonstrasikan alur kerja Machine Learning secara menyeluruh: mulai dari Analisis Data Eksploratif (EDA), menetapkan baseline sederhana, memanfaatkan teknik ensemble, menerapkan validasi silang (cross-validation) secara ketat untuk mencegah kebocoran data (data leakage), hingga melakukan optimasi hiperparameter secara sistematis.

  1. Formulasi Masalah & Tujuan Bisnis Dalam industri telekomunikasi modern, biaya untuk mendapatkan pelanggan baru bisa mencapai 5 kali lipat lebih mahal dibandingkan mempertahankan pelanggan yang ada. Tujuan utama kami adalah memprediksi apakah seorang pelanggan akan churn (1) atau tetap berlangganan (0).

Saat merancang strategi machine learning, Pemilihan Metrik Evaluasi menjadi sangat krusial:

False Positive (FP): Diprediksi akan churn, padahal kenyataannya tetap berlangganan (Dampak: pengeluaran insentif/diskon pemasaran secara tidak perlu).

False Negative (FN): Diprediksi akan tetap berlangganan, padahal kenyataannya churn (Dampak: kehilangan pendapatan pelanggan secara permanen).

Karena False Negative memberikan dampak kerugian finansial yang jauh lebih besar, fokus utama evaluasi kami terletak pada optimasi F1-Score dan Recall, bukan hanya sekadar Akurasi (Accuracy).

  1. Gambaran Dataset & Pencegahan Kebocoran Data (Data Leakage) Kami menggunakan dataset profil pelanggan yang mencakup fitur numerik (Tenure_Months, Monthly_Charges, Total_Charges) dan atribut kategorikal (Contract_Type, Internet_Service, Tech_Support).

Mencegah Kebocoran Data (Data Leakage)
Kesalahan umum dalam banyak tutorial machine learning adalah melakukan transformasi data (seperti skalasi fitur atau encoding) pada seluruh dataset sebelum membaginya menjadi data latih dan data uji. Hal ini menyebabkan informasi dari data uji bocor ke dalam proses pelatihan, sehingga menghasilkan skor yang terkesan tinggi secara tidak realistis.

Untuk menjaga integritas eksperimen, kami menggunakan fitur Pipeline dari library scikit-learn yang digabungkan dengan ColumnTransformer. Pemrosesan fitur seperti skalasi (StandardScaler) dan enkoding (OneHotEncoder) dihitung secara terbatas dan terisolasi di dalam setiap lipatan (fold) validasi silang.

  1. Model Baseline vs. Ensemble: Pengaturan Eksperimen Kami membandingkan tiga pendekatan arsitektur model:

Baseline: Regresi Logistik / Logistic Regression (Model linier sederhana).

Ensemble 1 (Bagging): Random Forest Classifier (Mengurangi varians dengan menggabungkan beberapa decision tree yang saling independen).

Ensemble 2 (Boosting): XGBoost Classifier (Mengurangi bias secara sekuensial dengan melatih pohon keputusan baru berdasarkan kesalahan residual pada pohon sebelumnya).

Kami mengevaluasi performa menggunakan Stratified 5-Fold Cross-Validation untuk mempertahankan proporsi target yang seimbang pada setiap lipatan.

Hasil Validasi Silang (Skor F1):
Logistic Regression (Baseline): 0.6120 (+/- 0.031)

Random Forest: 0.6845 (+/- 0.028)

XGBoost (Sebelum Optimasi): 0.7210 (+/- 0.024)

Temuan Utama: Metode Ensemble Boosting (XGBoost) secara signifikan mengungguli model linier baseline, karena berhasil menangkap hubungan non-linier antar variabel seperti Contract_Type dan Tenure_Months.

  1. Optimasi Hiperparameter & Pipeline Akhir Untuk memaksimalkan performa model terbaik, kami menjalankan GridSearchCV secara sistematis pada pipeline XGBoost dengan ruang pencarian parameter sebagai berikut:

n_estimators: [50, 100, 150]

max_depth: [3, 5, 7]

learning_rate: [0.01, 0.1, 0.2]

Hiperparameter Terbaik yang Ditemukan:
n_estimators: 100

max_depth: 3

learning_rate: 0.1

Dengan membatasi kedalaman pohon (max_depth=3), model mampu mempelajari pola keputusan secara umum tanpa mengalami overfitting pada kombinasi fitur yang terlalu kompleks.

  1. Evaluasi Akhir & Analisis Kesalahan Model yang telah dioptimalkan kemudian dievaluasi satu kali pada data uji (holdout test set) yang benar-benar terisolasi sebesar 20%:

Akurasi (Accuracy): 81.50%

Presisi (Precision): 76.40%

Recall: 78.20%

Skor F1 (F1-Score): 0.7729

ROC-AUC: 0.8650

Analisis Confusion Matrix:
Grafik Confusion Matrix akhir membuktikan bahwa model berhasil meminimalkan jumlah False Negative dengan tetap menjaga False Positive pada batas yang wajar untuk kebutuhan kampanye retensi pelanggan.

  1. Refleksi & Kesimpulan Membangun kecerdasan buatan (AI) yang dapat diandalkan bukanlah sekadar menjalankan perintah model.fit() dan menerima hasil akurasi begitu saja. Melalui eksperimen ini, kami membuktikan bahwa:

Metode Ensemble memberikan peningkatan kinerja yang nyata dibandingkan model baseline linier pada data non-linier yang kompleks.

Pipeline bebas kebocoran data memastikan hasil validasi tepercaya dan konsisten saat diuji dengan data dunia nyata.

Mengoptimalkan metrik berdasarkan dampak bisnis (mengutamakan Skor F1 dibanding sekadar Akurasi) menghasilkan pengambilan keputusan strategis yang lebih tepat.

Deklarasi Penggunaan AI & Statement Verifikasi
Alat AI yang Digunakan: ChatGPT / Gemini

Tujuan Penggunaan: Membantu optimasi kode, pemecahan masalah (debugging), serta penyusunan draf format penulisan.

Verifikasi Mandiri: Seluruh asumsi data, perhitungan validasi silang, eksekusi kode program, dan interpretasi dampak bisnis telah diperiksa, dijalankan, dan diverifikasi secara mandiri oleh tim penulis.

Top comments (0)