Customer Churn Prediction using Machine Learning
Menurut Zeniarja, J., & Luthfiarta, A. (2015) Pelanggan adalah aset yang paling penting dari semua jenis bisnis. Prospek usaha hanya mungkin dapat dilakukan dengan kehadiran pelanggan yang puas yang selalu setia dan membangun hubungan mereka dengan perusahaan. Untuk alasan ini, perusahaan harus merencanakan dan menerapkan strategi untuk menciptakan pelanggan,umumnya dikenal sebagai Customer Relationship Management (CRM).
Customer Relationship Management (CRM) merupakan strategi bisnis yang bertujuan untuk mengelola hubungan dengan pelanggan yang memadukan proses antara manusia dan teknologi. Sistem CRM bertujuan untuk membantu, mempertahankan, mengelola, dan meningkatkan hubungan pelanggan setia dan langgeng atau di sebut juga dengan proses menejemen Churn. Pada artikel ini difokuskan untuk memprediksi pelanggan apakah Churn atau tidak dengan klasifikasi pelanggan. 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 dengan sebuah algoritme supervised learning yang akan mengklasifikasikan pelanggan menjadi churn atau tidak churn di masa mendatang.
Klasifikasi merupakan salah satu penerepan dari supervise machine learning
- pengertian klasifikasi
- machine learning
- pengertian supervised learning
pada artikel ini akan mengambil data dari DQLAB Telco yang pernah kita bahas dalam artikel sebelumnya mengenai data cleansing untuk yang belum membaca dan ingin mendalami lebih jauh mengenai data kleansing dapat membaca artikel data cleansing terlebih dahulu. DQLab Telco merupakan perusahaan Telco yang sudah mempunyai banyak cabang tersebar dimana-mana. Sejak berdiri pada tahun 2019, DQLab Telco konsisten untuk memperhatikan customer experience nya sehingga tidak akan di tinggalkan pelanggan, DQlab tidak ingin mempunyai pelanggan yang beralih langganan ke kompetitor maka dari itu tujuan dari artikel ini dibuat karena penulis ingin mengurangi jumlah pelanggan yang beralih (churn) dengan menggunakan machine learning. Semakin tinggi churn rate, semakin kecil revenue yang akan perusahaan raih di masa mendatang.
Tahapan Pemodelan Churn Prediction
Langkah yang akan dilakukan adalah,
- Melakukan Exploratory Data Analysis
- Melakukan Data Pre-Processing
- Melakukan Pemodelan Machine Learning
- Menentukan Model Terbaik
Import Library
Pada artikel kali ini akan menggunakan beberapa package yang membantu kita dalam melakukan analisis data. 1. Pandas (Python for Data Analysis) adalah library Python yang fokus untuk proses analisis data seperti manipulasi data, persiapan data, dan pembersihan data. 2. Matplotlib adalah library Python yang fokus pada visualisasi data seperti membuat plot grafik. Matplotlib dapat digunakan dalam skrip Python, Python dan IPython shell, server aplikasi web, dan beberapa toolkit graphical user interface (GUI) lainnya. 3. Seaborn membangun plot di atas Matplotlib dan memperkenalkan tipe plot tambahan. Ini juga membuat plot Matplotlib tradisional Anda terlihat lebih cantik. 4. Scikit-learn adalah library dalam Python yang menyediakan banyak algoritma Machine Learning baik untuk Supervised, Unsupervised Learning, maupun digunakan untuk mempreparasi data. 5. Xgboost adalah library dalam Python untuk algoritma extreme gradient boosting (xgboost) 6. jcopml merupakan package yang dibuat oleh Wira Dharma Kencana Putra, package ini mencakup fungsi untuk membantu visualisasi, tuning, pipeline, dan feature importance.
1. Exploratory Data Analysis
Exploratory Data Analysis memungkinkan analyst memahami isi data yang digunakan, mulai dari distribusi, frekuensi, korelasi dan lainnya. Pada umumnya EDA dilakukan dengan beberapa cara:
- Univariat Analysis — analisis deskriptif dengan satu variabel.
- Bivariat Analysis — analisis relasi dengan dua variabel yang biasanya dengan target variabel.
- Multivariat Analysis — analisis yang menggunakan lebih dari atau sama dengan tiga variabel.
Dalam kasus ini, kamu diminta untuk melihat persebaran dari:
- Prosentase persebaran data Churn dan tidaknya dari seluruh data
- Persebarang data dari variable predictor terhadap label (Churn)
Memvisualisasikan Prosentase Churn
Kita ingin melihat visualisasi data secara univariat terkait prosentase data churn dari pelanggan. Gunakan fungsi value_counts() untuk menghitung banyaknya unik dari sebuah kolom, pie() untuk membuat pie chart
Dari gambar diatas dapat dilihat bahwa sebaran data secara keseluruhan customer cenderung tidak melakukan churn, dengan detail churn sebanyak 26% dan NO churn sebnyak 74%
Exploratory Data Analysis (EDA) Variabel Numerik
Hal yang akan kita lakukan selanjutnya adalah memilih variable predictor yang bersifat numerik dan membuat plot secara bivariat, kemudian menginterpretasikannya
Dapat kita lihat pada chart MonthlyCharges ada kecenderungan semakin tinggi biaya bulanan yang dikenakan maka semakin tinggi juga kecenderunan untuk melakukan churn, dari grafik ini penyedia layanan dapat menetapkan harga disekitar 20 - 60 untuk mengurangi kecenderungan melakukan churn.
Exploratory Data Analysis (EDA) Variabel Kategorik
Setelah itu, kita akan melakukan pemilihan variable predictor yang bersifat kategorik dan membuat plot secara bivariat, kemudian menginterpretasikannya
jika dilihat dari faktor jenis kelamin hampir tidak ada perbedaan yang signifikan untuk orang melakukan churn, sedangkan orang - orang yang melakukan churn adalah orang yang tidak memiliki pasangan, orang yang memiliki status senior citizen(SeniorCitizen: Yes), orang-orang yang mempunyai layanan streaming TV (StreamingTV: Yes), orang-orang yang mempunyai layanan Internet (internetService: Yes) dan orang-orang yang tagihannya paperless (PaperlessBilling: Yes).
2. Melakukan Data PreProcessing
Menghapus Unnecessary Columns dari data
Selanjutnya kita akan mengapus kolom yang tidak akan diikutsertakan dalam pemodelan, kemudian simpan dengan nama cleaned_df. Tampilkan 5 rows teratas nya.
Encoding Data
Gunakan data dari hasil dan analisa sebelumnya cleaned_df, untuk merubah value dari data yang masih berbentuk string untuk diubah ke dalam bentuk numeric
Reference
- Zeniarja, J., & Luthfiarta, A. (2015). Prediksi Churn dan Segmentasi Pelanggan Menggunakan Backpropagation Neural Network Berbasis Evolution Strategies. Techno. Com, 14(1), 49-54.