Di dunia bisnis, permodelan klasifikasi (classification) merupakan salah satu cabang dari supervised machine learning yang paling sering diimplementasikan dalam membangun permodelan prediktif. Sebagai contoh, industri perbankan sudah lazim menggunakan model credit scoring untuk memprediksi tingkat resiko debitur. Di industri telekomunikasi, model churn prediction digunakan untuk memprediksi tingkat kemungkinan pengguna berpindah dari satu operator ke operator lainnya. Di bidang marketing, cross-sell & up-sell model digunakan untuk mendeteksi potential customer yang layak diberikan offer sebagai bagian dari targeted campaign.
Secara garis besar, ketiga case diatas memiliki kemiripan, yaitu membagi populasi menjadi dua kelompok, dimana salah satu diantara kelompok tersebut menjadi fokus/target dari model prediktif yang akan dibangun:
Berbagai macam algoritme klasifikasi mulai dari Logsitic Regression, K-Nearest Neighbor, Decision Tree, Support Vector Machine, Naive Bayes, Random Forest, Gradient Boosting, hingga Neural Network dapat diterapkan untuk membangun model predikstif dalam mengatasi masalah-masalah diatas (Sartono, 2019). Di artikel ini akan dibahas permodelan churn prediction dengan menggunakan algoritme Logisic Regression, namun tidak menutup kemungkinan untuk diterapkan untuk problem-problem yang serupa seperti risk scoring dan cross-sell & up-sell modelling.
Churn Prediction
Salah satu dampak dari persaingan di dunia telco adalah churn, sebuah kondisi dimana pelanggan berpindah dari satu provider ke provider yang lain. Semakin tinggi churn rate, semakin kecil revenue yang akan perusahaan raih di masa mendatang. Babu dan Ananthanarayanan (2014) menyatakan bahwa biaya untuk mendapatkan pelanggan baru jauh lebih besar dibandingkan mempertahankan pelanggan lama dengan jumlah revenue yang sama. Oleh sebab itu, perusahaan telco berupaya untuk mencegah pelanggan mereka untuk churn dengan meningkatkan loyalitas pelanggan melalui Customer Relationship Management (CRM), termasuk churn prediction.
Churn prediction bertujuan untuk memprediksi peluang seorang pelanggan untuk churn sebelum pelanggan tersebut benar-benar melakukannya, dengan demikian provider bisa memberikan treatment untuk meminimalisir kemungkinan mereka churn. Prediksi akan dilakukan dengan menggunakan machine learning, dimana salah satu algoritmenya adalah Regresi Logistik, sebuah algoritme supervised learning yang akan mengklasifikasikan pelanggan menjadi churn atau tidak churn di masa mendatang.
Tahapan Permodelan Churn Prediction
Hanif (2019) menyatakan ada empat tahap utama permodelan churn prediction yang akan dibahas pada tulisan ini (untuk source code bisa diakses disini), yaitu:
Data Pre-processing Phase
Tahapan Data Pre-Processing terdiri dari 4 tahap utama: Pemisahan fitur prediktor (X) dan fitur label/target (Y); pemeriksaan dan imputasi missing value di X; penanganan pencilan di X, dan pemisahan data train-test untuk X & Y.
Imputasi adalah metode pengisian missing value dengan mengganti nilai yang hilang dengan suatu nilai yang diperoleh dari perhitungan statistik seperti rataan dan median. Dengan begitu, tidak ada informasi yang terbuang (akibat penghapusan baris) dan hasil analisis yang dihasilkan tetap valid.
Penanganan pencilan adalah penggantian nilai suatu objek yang dianggap menyimpang dari nilai-nilai lainnya pada suatu fitur, sehingga bisa menyebabkan bias. Salah satu cara penganganan pencilan adalah dengan menetapkan standar nilai 3 sigma, dimana amatan yang berada di luar batas μ+3σ (batas atas) atau μ–3σ (batas bawah), maka amatan tersebut harus digantikan dengan nilai sesuai batas atas atau batas bawah. Dengan begitu, efek bias akibat adanya pencilan dapat diminimalisir.
Pemisahan data train-test dilakukan dengan membagi secara acak dataset awal menjadi dua bagian dengan proporsi yang berbeda, umumnya data train memiliki proporsi yang lebih besar dibanding data test. Data train digunakan untuk proses permodelan, sedangkan data test digunakan untuk memvalidasi model terbaik yang dihasilkan di tahap permodelan dengan data train. Salah satu proporsi yang lazim digunakan adalah 70% – 30%.
Feature Engineering & Elimination Phase
Feature Engineering adalah tahap mengubah nilai suatu variabel/fitur menjadi suatu nilai yang baru, sedangkan Feature Selection adalah proses mereduksi variabel/fitur.
Feature Engineering dilakukan dengan melakukan standardisasi (Standard Scaler), yaitu mengubah semua nilai variabel/fitur menjadi sekumpulan nilai yang menyebar normal baku dengan rataan (μ) = 0 dan simpangan baku (σ)=1. Hal ini dilakukan dikarenakan variabel/fitur yang digunakan dalam modeling memiliki satuan yang berbeda-beda, sehingga jika tidak di standardisasi maka akan berdampak pada akurasi model yang dihasilkan. Alternatif lain yang dapat digunakan adalah Max Min Scaler.
Feature Selection dilakukan dengan menggunakan Variance Inflation Factors (VIF), yaitu sebuah nilai yang mengukur seberapa besar peningkatan varian dari koefisien regresi ketika antar variabel/fitur saling berkorelasi. Proses pengukuran VIF dilakukan secara looping dengan metode backward regression, dimana semua variabel/fitur digunakan di tahap awal, lalu variabel/fitur dengan nilai VIF tertinggi akan dielminiasi. Proses looping berhenti ketika semua peubah/fitur memiliki nilai VIF di bawah nilai threshold yaitu 2, 5, atau 10. Alternatif lain untuk eliminasi variabel/fitur diantaranya Correlation Matrix atau Feature Importance.
Modelling Phase
Modeling phase adalah tahap pembangunan model prediktif dengan menggunakan data training, yang kemudian divalidasi dengan menggunakan data testing.
Pembangunan model dengan data training bertujuan untuk menemukan hyperparameter terbaik, yaitu seperangkat nilai yang ditetapkan sebelum prose pembangunan model. Dikarenakan bersifat trial and error, maka penentuan hyperparameter dilakukan dengan metode randomized cross-validation. Metode tersebut dilakukan dengan cara memiih kombinasi hyperparameter secara acak, lalu melakukan k-fold cross validation untuk menentukan nilai akurasi dari kombinasi hyperparameter tersebut. Proses pemilihan hyperparamater dilakukan sebanyak n kali, sehingga di tahap akhir akan dipilih kombinasi hyperparameter yang mampu menghasilkan akurasi tertinggi. Rentang nilai yang dapat digunakan untuk menetapkan nilai hyperparameter pada regresi logistik terdapat pada tabel berikut.
Sedangkan validasi model yang dilakukan dengan menggunakan data testing bertujuan untuk mencegah terjadinya over-fitting, yaitu kondisi dimana model hanya memberikan hasil prediksi terbaik pada data training, namun memberikan hasil prediksi yang buruk jika memprediksi data testing atau data riil di masa mendatang. Model yang baik adalah model yang reliable dan valid, yaitu model yang memberikan hasil prediksi dengan akurasi yang tidak jauh berbeda antara data training dan data testing, sehingga model tersebut reuseable untuk memprediksi data-data baru di masa mendatang.
Evaluation Phase
Salah satu metrik evaluasi yang lazim digunakan dalam mengukur kemampuan model adalah confusion matrix yang terdiri dari True Positive (TP), True Negative (TN), False Positive (FP), dan False Negative (FN). Detail dari confussion matrix dapat dilihat dari tabel berikut.
Dari confusion matrix, kita bisa menghitung akurasi (TP+TN/all), sensitivitas/recall (TP/TP+FN), presisi (TP/TP+FP), dan spesifisitas (TN/ TN+FP), dimana semakin tinggi nilai keempat ukuran tersebut maka semakin baik model yang telah kita hasilkan. Akurasi adalah metrik yang paling sering digunakan untuk menentukan baik tidaknya suatu model, namun sangat rentan menimbulkan bias ketika menghadapi data dengan kelas tidak seimbang. Pada data tersebut, akurasi yang tinggi bisa jadi disebabkan oleh model yang hanya mampu memprediksi kelas mayoritas namun gagal memprediksi kelas minoritas. Ketika jumlah suatu kelas sangat dominan dibanding kelas lainnya, maka akurasi tidak bisa dijadikan tolak ukur kebaikan suatu model sehingga ukuran lain juga harus disertakan seperti sensitivitas atau presisi.
Metrik lain yang dapat digunakan adalah kurva Receiver Operating Character (ROC), yaitu kurva yang menggambarkan trade off antara True Positive Rate (TP/TP+FN) dan False Positf Rate (FP/TN+FP). Semakin cembung kurva tersebut (titik cembung mendekati koordinat 0,1), maka semakin baik model tersebut. Contoh dari kurva ROC dapat dilihat pada gambar berikut.
Jika model terbaik telah memenuhi kriteria evaluasi yang sudah ditetapkan, maka model siap untuk digunakan atau di-deploy. Output dari model yang kita hasilkan adalah prediksi label per amatan (not-churn/y=0 atau churn/y=1) serta probability setiap amatan untuk churn (y=1). Default threshold yang umum digunakan adalah 0.50, dimana ketika amatan memiliki nilai probability > 0.50, maka akan diberi label prediksi y=1, demikian juga sebaliknya.
(Tulisan berikut merupakan sebagian resume dari makalah penulis yang dipublikasikan di ICSA 2019 yang dapat diakses disini)
REFERENSI
Sartono, B. “Membangun Model Prediktif Super, Mungkinkah?”. FMIPA Public Lecture, IPB University, Bogor, 21 November 2019.
Babu S., Ananthanarayanan N. R., “A Review on Customer Churn Prediction in Telecommunication Using Data Mining Techniques”. International Journal of Scientific Engineering and Research (IJSER). Vol. 4, no. 1, 2016: 35–40
Hanif, I. “Implementing Extreme Gradient Boosting (XGBoost) Classifier to Improve Customer Churn Prediction”. Proceedings of the 1st International Conference on Statistics and Analytics, ICSA 2019, 2–3 August 2019, Bogor, Indonesia
Adopted from Iqbal Hanif – DS PT. Telkom