The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Model churn yang layak dipakai tim retensi ditentukan oleh tiga keputusan yang dibuat sebelum algoritma dipilih: siapa yang dihitung sebagai pelanggan, peristiwa apa yang disebut churn, dan berapa lama horizon prediksinya. Setelah itu, setiap tahap yang belajar dari data (imputasi, encoding, seleksi fitur, resampling, pembobotan ensemble, dan pemilihan threshold) hanya boleh memakai data latih dan validasi. Ensemble kemudian dibandingkan dengan baseline sederhana pada protokol yang sama, dan skornya dinilai dari kapasitas tim serta biaya kontak, bukan dari accuracy.
Panduan ini memakai dataset IBM Telco sebagai contoh publik dan tiga studi yang dirujuk sebagai bukti. Setiap angka di bawah terikat pada data, protokol, dan tanggal studinya, sehingga tidak otomatis berlaku untuk basis pelanggan Anda.
Definisikan churn secara operasional sebelum memilih algoritma
Label churn adalah kontrak antara data dan bisnis. Jika definisinya tidak bisa dihitung ulang, dua tim bisa melatih model dengan label berbeda lalu membandingkan hasilnya seolah sama. Tiga keputusan berikut perlu ditulis dalam dokumen yang sama dengan kode.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minutePopulasi: pelanggan mana yang dihitung
Tentukan siapa yang masuk ke tabel pelatihan, misalnya hanya pelanggan aktif pada tanggal observasi, atau juga pelanggan yang baru mendaftar. Pelanggan baru sering belum punya riwayat yang cukup, sehingga memasukkannya mengubah distribusi fitur dan tingkat churn. Catat juga pengecualian seperti akun uji, akun perusahaan, atau pelanggan di luar wilayah layanan.
#1 Best Overall
Peristiwa churn: tindakan apa yang berarti berhenti
Churn bisa berarti pembatalan langganan, tidak ada pembayaran selama jumlah hari tertentu, penggunaan turun di bawah ambang, atau perpindahan ke penyedia lain yang dapat diamati. Setiap definisi menghasilkan kelas positif yang berbeda. Label “tidak membayar 30 hari” dan label “membatalkan kontrak” bukan dua cara menulis hal yang sama, karena yang pertama juga menangkap keterlambatan sementara.
Titik observasi dan horizon prediksi
Titik observasi adalah tanggal ketika skor dihitung. Hanya kolom yang sudah terisi pada tanggal itu yang boleh menjadi fitur. Horizon adalah jendela setelahnya, tempat peristiwa churn dicatat. Jika tim membutuhkan dua minggu untuk bertindak, pelanggan yang churn dalam dua minggu pertama tidak lagi bisa dibantu. Karena itu horizon label sebaiknya dimulai setelah jeda tindakan tersebut, atau jeda itu dicatat sebagai pengecualian. Horizon yang terlalu pendek membuat skor sulit ditindaklanjuti, sedangkan horizon yang terlalu panjang memasukkan peristiwa yang mungkin sudah dipengaruhi oleh intervensi itu sendiri.
Audit data mentah sebelum pemodelan
Data pelanggan biasanya mencampur kolom numerik, kategorikal, dan histori transaksi atau perilaku. Periksa hal-hal berikut sebelum membuat fitur apa pun:
- Skema dan tipe data: pastikan kolom numerik tidak tersimpan sebagai teks. Studi Mettle dkk. secara eksplisit menangani nilai Total Charges yang tidak valid pada dataset IBM Telco.
- ID dan duplikasi: pastikan satu baris per pelanggan pada titik observasi, atau dokumentasikan unit analisis lain yang dipakai.
- Nilai hilang: catat jumlah dan polanya. Nilai hilang yang berkorelasi dengan churn adalah sinyal, bukan sekadar kekurangan data.
- Outlier dan perubahan definisi: cek apakah kode paket, kategori layanan, atau cara menghitung tagihan berubah di tengah periode.
- Waktu ketersediaan: untuk setiap kolom, tanyakan kapan nilainya terisi. Kolom seperti status penutupan akun atau catatan tim retensi sering baru terisi setelah churn terjadi.
- Kolom identitas dan salinan label: buang kolom yang hanya berisi ID atau turunan langsung dari label, dan catat alasan pembuangannya.
Tutorial IBM untuk prediksi churn juga memfilter fitur dan mengimputasi nilai hilang sebagai bagian alur kerja. Perlakukan langkah ini sebagai keputusan yang harus dijelaskan, bukan pembersihan kosmetik. Menghapus baris bermasalah juga mengubah populasi. Pada studi Mettle dkk., 7.043 record asli dalam dataset IBM Telco menjadi 5.634 record setelah preprocessing, selisih 1.409 record. Sebelum menghapus baris, hitung proporsi churn dan karakteristik pelanggan yang akan hilang dari sampel.
Bagaimana mencegah data leakage saat validasi?
Data leakage terjadi ketika informasi dari data uji, atau dari masa depan, masuk ke proses belajar. Gejala paling umum adalah skor validasi yang sangat tinggi yang runtuh setelah model dijalankan pada data baru. Aturan praktisnya: setiap langkah yang mempelajari parameter dari data harus di-fit ulang di dalam setiap fold pelatihan.
Rank #2
- Use scikit-learn to track an example ML project end to end
- Explore several models, including support vector machines, decision trees, random forests, and ensemble methods
- Exploit unsupervised learning techniques such as dimensionality reduction, clustering, and anomaly detection
- Dive into neural net architectures, including convolutional nets, recurrent nets, generative adversarial networks, autoencoders, diffusion models, and transformers
- Use TensorFlow and Keras to build and train neural nets for computer vision, natural language processing, generative models, and deep reinforcement learning
Yang boleh belajar hanya dari data latih
- Imputasi, misalnya nilai median atau modus
- Encoding kategori dan penskalaan fitur
- Seleksi fitur
- Resampling untuk ketidakseimbangan kelas
- Pembelajaran embedding jika memakai representasi neural
- Pembobotan atau penggabungan model dalam ensemble
- Optimisasi threshold prediksi
Studi MetaLight-ChurnNet (2026) menerapkan protokol seperti ini dan hanya menilai test set pada evaluasi akhir. Tutorial IBM juga menahan sebagian data untuk pengujian dan validasi, karena hasil yang hanya dilihat pada data latih tidak menunjukkan kemampuan generalisasi (IBM Documentation, tutorial prediksi churn).
Pemisahan acak bertingkat atau berbasis waktu
Split acak bertingkat (stratified) menjaga proporsi churn di setiap bagian, dan cocok untuk perbandingan awal antar-model. Namun jika data memiliki urutan waktu, split acak dapat memberi gambaran yang terlalu optimistis ketika pola pelanggan berubah antar periode. Untuk memperkirakan kinerja pada deployment mendatang, latih pada periode yang lebih awal dan uji pada periode berikutnya. Tidak ada skema temporal yang cocok untuk semua bisnis; panjang periode sebaiknya mengikuti siklus tagihan dan frekuensi kampanye Anda. Studi yang dirujuk mendukung pemisahan train, validation, dan test, tetapi tidak menetapkan satu skema waktu yang berlaku umum.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchContoh pipeline tanpa kebocoran
Kode berikut menyatukan imputasi, encoding, dan estimator dalam satu objek, sehingga cross-validation menjalankan ulang seluruh tahap di setiap fold. Nama kolom mengikuti skema IBM Telco dan perlu disesuaikan dengan data Anda. Test set dipisahkan sebelum fit apa pun.
import pandas as pdnfrom sklearn.model_selection import train_test_split, StratifiedKFold, cross_validatenfrom sklearn.compose import ColumnTransformernfrom sklearn.pipeline import Pipelinenfrom sklearn.impute import SimpleImputernfrom sklearn.preprocessing import OneHotEncodernfrom sklearn.ensemble import RandomForestClassifiernn# X dan y berasal dari tahap audit; y bernilai 1 untuk churn, 0 untuk tidak churnnnum_cols = ['tenure', 'MonthlyCharges', 'TotalCharges']ncat_cols = ['Contract', 'OnlineSecurity', 'TechSupport']nnprep = ColumnTransformer([n ('num', SimpleImputer(strategy='median'), num_cols),n ('cat', Pipeline([n ('impute', SimpleImputer(strategy='most_frequent')),n ('onehot', OneHotEncoder(handle_unknown='ignore')),n ]), cat_cols),n])nnmodel = Pipeline([n ('prep', prep),n ('clf', RandomForestClassifier(n_estimators=300, class_weight='balanced', random_state=42)),n])nnX_train, X_test, y_train, y_test = train_test_split(n X, y, test_size=0.2, stratify=y, random_state=42)nncv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)nscores = cross_validate(model, X_train, y_train, cv=cv,n scoring=['precision', 'recall', 'f1', 'roc_auc'])nn# X_test dan y_test baru dipakai setelah model, threshold, dan konfigurasi dibekukan
Jika memakai SMOTE, tambahkan sebagai langkah di dalam pipeline (paket imbalanced-learn menyediakan Pipeline yang kompatibel dengan scikit-learn), sehingga sampel sintetis hanya dibuat dari fold latih. Menjalankan SMOTE sebelum split adalah bentuk leakage yang sering terlewat.
Bagaimana cara membuat model prediksi customer churn dengan machine learning?
Urutan kerja berikut memastikan setiap model dibandingkan pada kondisi yang sama.
Rank #3
- Bekukan definisi label, horizon, dan daftar fitur yang tersedia pada titik observasi. Simpan dalam konfigurasi yang bisa diulang.
- Bangun baseline logistic regression dalam pipeline yang sama seperti contoh di atas. Model ini mudah dijelaskan dan menjadi ukuran minimum.
- Latih decision tree, random forest, dan boosting seperti XGBoost memakai fold, fitur, dan split yang sama. Catat budget tuning untuk setiap model agar perbandingannya adil.
- Jika menguji voting atau stacking, bandingkan ensemble tersebut dengan model tunggal terbaik pada fold yang sama. Ensemble yang tidak mengungguli model tunggal yang lebih sederhana pada metrik yang relevan sebaiknya tidak dipilih hanya karena lebih kompleks.
- Pilih satu konfigurasi berdasarkan validasi, lalu evaluasi sekali pada test set. Jika test set dipakai untuk memilih ulang, hasilnya tidak lagi bisa dianggap independen.
Model apa yang paling bagus untuk prediksi churn?
Tidak ada jawaban universal. Pemenang pada studi yang dirujuk berbeda menurut dataset, protokol, dan metrik. Yang bisa dinyatakan dengan jelas adalah apa yang diukur oleh masing-masing studi.
Tiga studi yang dirujuk
| Studi | Data | Model yang dibandingkan | Temuan yang dapat dinyatakan | Batasan |
|---|---|---|---|---|
| Mettle dkk., 2026 | IBM Telco: 7.043 record asli, 5.634 record setelah preprocessing | Decision tree, random forest, XGBoost, logistic regression | Random forest unggul pada metrik yang dilaporkan studi tersebut | Satu eksperimen; kesimpulan hanya berlaku pada eksperimen itu |
| Zhou dkk., 2023 | Data operator privat: awalnya 900.000 rekaman dan 35 atribut selama tiga bulan; rasio positif-negatif sekitar 1:30 sebelum preprocessing | RF-AdaBoost, yang menggabungkan bagging dan boosting | Model early warning dipilih dengan mempertimbangkan recall | Data dan preprocessing milik studi sendiri; tidak sebanding langsung dengan IBM Telco. Perbandingan lintas-model tidak dikutip di sini (not stated) |
| MetaLight-ChurnNet, 2026 | IBM Telco: 7.043 sampel; Cell2Cell: 51.047 sampel | Jalur BiLSTM-CNN dan Autoencoder, keduanya dengan varian berlabel DE | Pada IBM Telco, BiLSTM-CNN + DE: F1 0,6172 dan ROC-AUC 0,8457; Autoencoder + DE: F1 0,5873 dan ROC-AUC 0,8470 | Hasil berbeda antar dataset dan sangat dipengaruhi target optimisasi serta protokolnya |
Dataset IBM adalah contoh publik, bukan representasi semua industri. Pembaca yang membandingkan angka antar-studi perlu memastikan keempat hal berikut sama: pembersihan data, split, penanganan ketidakseimbangan, dan threshold.
Random forest pada IBM Telco yang sudah diproses
Studi Mettle dkk. (2026) melaporkan random forest sebagai model dengan performa terbaik di antara empat model yang diuji, pada 5.634 record yang sudah diproses dengan komposisi 73,5% non-churn dan 26,5% churn. Angka berikut berasal dari satu eksperimen dengan fitur dan split tertentu, sehingga bukan target yang bisa dijanjikan untuk data Anda.
| Metrik | Nilai | Cara membaca |
|---|---|---|
| Accuracy | 84,73% | Terlihat tinggi, tetapi harus dibaca bersama proporsi churn 26,5% |
| Precision kelas churn | 85,20% | Dari pelanggan yang diberi tanda churn, sebagian besar memang churn |
| Recall kelas churn | 84,07% | Lebih dari empat dari lima pelanggan churn tertangkap |
| F1 | 84,62% | Sejalan dengan rata-rata harmonik precision dan recall kelas churn di atas |
| ROC-AUC | 93,86% | Kemampuan memisahkan skor churn dari non-churn di semua threshold |
Pembanding sederhana: logistic regression dan decision tree
Logistic regression mudah dijelaskan melalui koefisiennya dan cepat dilatih, sehingga sering menjadi baseline yang sulit dikalahkan secara berarti. Decision tree menghasilkan aturan yang eksplisit, tetapi mudah overfit jika kedalamnya tidak dibatasi. Studi Mettle dkk. memasukkan keduanya sebagai pembanding, dan kedua model ini sebaiknya selalu hadir dalam tabel perbandingan Anda.
Random forest dan boosting: dua cara mengurangi kesalahan
Random forest menerapkan bagging: banyak pohon dilatih dari sampel acak lalu prediksinya dirata-ratakan, sehingga terutama mengurangi variance. Boosting seperti XGBoost melatih pohon secara berurutan, dengan setiap pohon memperbaiki kesalahan sebelumnya, sehingga berfokus pada pengurangan bias. Studi Zhou dkk. (2023) menjelaskan motivasi menggabungkan keduanya dan menguji RF-AdaBoost pada data operator tersendiri.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Rank #4
Ensemble: kapan layak dan kapan tidak
Voting, stacking, dan rata-rata berbobot layak dipertimbangkan ketika model tunggal membuat jenis kesalahan yang berbeda dan data cukup untuk memvalidasi bobotnya. Risikonya nyata: ensemble lebih sulit dijelaskan, lebih mahal dijalankan, dan bobotnya mudah terlalu menyesuaikan diri dengan validasi. Penelitian terkini menunjukkan ensemble adalah pilihan yang layak untuk diuji, bukan jaminan menang.
Hasil tidak berpindah otomatis antar dataset
Studi MetaLight-ChurnNet melaporkan hasil yang berbeda antara IBM Telco dan Cell2Cell. Studi tersebut juga mengingatkan bahwa perilaku model terkait dengan threshold, tekanan false positive, dan biaya deployment. Model yang unggul di satu basis pelanggan bisa kalah di basis lain, sehingga pemilihan model harus diulang pada data Anda sendiri.
Bagaimana menangani data churn yang tidak seimbang?
Dengan proporsi 26,5% churn, model yang selalu memprediksi “tidak churn” sudah mencapai accuracy 73,5% tanpa mengidentifikasi satu pun pelanggan yang akan pergi. Itulah alasan accuracy tidak boleh menjadi metrik utama. Makin jarang kelas churn, makin besar selisih semu ini.
| Teknik | Cara kerja | Risiko yang perlu dikendalikan |
|---|---|---|
| Class weight, misalnya class_weight=’balanced’ | Memberi bobot lebih besar pada kesalahan kelas churn saat pelatihan | Probabilitas bisa kurang terkalibrasi; cek kalibrasi sebelum memakai skor sebagai peluang |
| Oversampling dengan SMOTE | Membuat sampel sintetis untuk kelas churn | Wajib dilakukan di dalam fold latih; sampel sintetis mungkin tidak mewakili pelanggan nyata |
| Undersampling | Mengurangi sampel kelas non-churn | Membuang informasi dan membuat hasil lebih tidak stabil antar-run |
| Penyesuaian threshold | Mengubah titik potong probabilitas tanpa melatih ulang model | Harus dipilih pada validasi; memilihnya dengan test set adalah leakage |
Tidak ada satu teknik yang selalu terbaik. Perlakukan pilihan teknik sebagai bagian dari validasi, dan bandingkan hasilnya menggunakan metrik yang sama dengan threshold yang sama.
Evaluasi dengan tujuan tindakan, bukan skor saja
Laporan evaluasi minimal memuat:
- Confusion matrix dengan jumlah absolut, bukan hanya persentase.
- Precision dan recall kelas churn, dengan keputusan eksplisit tentang mana yang lebih mahal jika salah.
- F1 sebagai ringkasan keseimbangan keduanya.
- ROC-AUC dan PR-AUC. PR-AUC lebih informatif untuk kelas churn yang jarang.
- Kalibrasi: apakah pelanggan dengan skor 0,7 benar-benar churn sekitar 70% dari kelompok itu.
- Lift atau gains pada kelompok yang bisa ditangani tim, misalnya 10% pelanggan dengan skor tertinggi.
- Biaya per kontak dan biaya false positive, yaitu kampanye yang dikirim kepada pelanggan yang tidak akan churn.
Ilustrasi aritmetika berikut hanya menunjukkan cara membaca metrik, bukan hasil model: dari 1.000 pelanggan dengan 265 churn, tim hanya bisa menghubungi 100 orang. Jika 60 dari 100 yang diberi tanda ternyata churn, precision-nya 60% dan recall-nya 60/265, sekitar 22,6%. Menurunkan threshold agar recall naik akan menambah jumlah pelanggan yang diberi tanda; jika kapasitas tim tetap, tambahan itu sering berarti intervensi yang makin tersebar.
Best Value
Pilih threshold dari kapasitas dan biaya, lalu bekukan
Threshold adalah keputusan bisnis yang diambil dari validasi, bukan parameter yang disetel sampai test set terlihat bagus. Langkah berikut menjaga keputusan itu tetap jujur:
- Hitung kapasitas tim, yaitu jumlah pelanggan yang bisa dihubungi per periode, misalnya per minggu.
- Hitung biaya: biaya setiap kontak dan nilai yang hilang jika pelanggan churn tidak dihubungi. Jika angka internal belum tersedia, siapkan dua skenario biaya dan lihat apakah pilihan threshold berubah.
- Pada fold validasi, sapu beberapa threshold dan catat precision, recall, jumlah pelanggan yang diberi tanda, serta biaya totalnya.
- Pilih threshold yang memenuhi kapasitas dengan biaya terendah, lalu catat alasannya agar bisa ditinjau kembali.
- Kunci model, fitur, dan threshold. Jalankan test set sekali. Hasilnya menjadi estimasi awal, bukan dasar untuk mengubah threshold.
Interpretasi: fitur penting menjelaskan pola, bukan penyebab
Importance fitur dan penjelasan lokal menunjukkan faktor mana yang memengaruhi skor. Pada studi Mettle dkk., tenure, kontrak, monthly charges, online security, dan technical support termasuk fitur berpengaruh. Itu asosiasi dalam dataset yang diteliti. Hal itu tidak membuktikan bahwa menambahkan online security akan mencegah churn.
- Gunakan importance untuk audit model, misalnya untuk menemukan fitur yang tidak masuk akal seperti kolom ID yang lolos dari pembersihan.
- Gunakan penjelasan lokal untuk satu pelanggan ketika tim perlu tahu alasan skor tinggi, lalu cek apakah alasan itu bisa ditindaklanjuti.
- Untuk menilai apakah suatu tindakan retensi bekerja, gunakan eksperimen terkontrol dengan kelompok perlakuan dan kelompok kontrol, atau evaluasi kausal.
IBM Research juga pernah meneliti atribut jaringan pelanggan sebagai sinyal churn. Contoh ini menunjukkan bahwa daftar fitur yang berguna sangat bergantung pada produk dan operasi bisnis, sehingga daftar dari satu organisasi tidak otomatis berlaku di organisasi lain.
Recommended Free Tools
Pemantauan setelah deployment
Model dapat menurun performanya tanpa perubahan kode, misalnya ketika harga, paket, atau proses layanan berubah. Pantau setiap periode: pergeseran distribusi fitur, kalibrasi, recall, jumlah false positive dan biayanya, serta performa per periode dan per segmen. Tabel berikut memetakan gejala umum ke langkah pemeriksaan:
Quick Recap
| Gejala | Kemungkinan penyebab | Langkah pemeriksaan |
|---|---|---|
| Skor validasi tinggi, tetapi performa produksi turun | Leakage, atau split acak pada data yang berurutan waktu | Periksa tanggal setiap fitur terhadap titik observasi, lalu ulangi evaluasi dengan split berbasis waktu |
| Recall turun, jumlah pelanggan yang diberi tanda stabil | Pergeseran fitur atau perubahan perilaku pelanggan | Bandingkan distribusi fitur per bulan, lalu latih ulang dengan jendela data terbaru |
| Jumlah pelanggan yang diberi tanda melonjak | Threshold tidak lagi sesuai dengan kapasitas tim | Kalibrasi ulang threshold pada data validasi terbaru |
| Probabilitas tidak sesuai dengan frekuensi churn yang teramati | Kalibrasi model menurun | Kalibrasi ulang, misalnya dengan isotonic atau sigmoid, memakai data validasi terbaru |
| Performa berbeda tajam antar segmen | Segmen kecil, atau fitur yang sering hilang pada segmen tertentu | Evaluasi per segmen dengan jumlah sampel yang cukup sebelum mengambil keputusan |
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

