PROYEK DATA SCIENCE 5: ANALISIS CHURN KARTU KREDIT
Salam sejahtara, kali ini saya akan melakukan analisa churn lagi. Kali ini saya menggunakan dataset pengguna kartu kredit dari kaggle lalu saya ingin menganalisa keloyalan mereka dengan produk kartu kredit berdasarkan sumber dataset.
Seperti biasa kita menggunakan tools Numpy, Pandas, Seaborn, dan Matplotlib lalu saya gunakan pd.set_option untuk menjangkau semua kolom.
Ternyata ketika kita melihat datsetnya, ada sebuah kolom yang tidak perlu untuk dijadikan variabel analisa seperti kolom ini Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_1 0
Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_2 0. Dan ada juga CLIENTNUM yang juga tidak akan kita pakai. Maka dari itu kita gunakan fungsi drop() untuk menghilangkan kolom tersebut.
Nah data kolom sudah kita hilangkan lalu kita melihat apakah ada null di semua kolom. Kita gunakan fungsi .isnull().sum() untuk memeriksa jumlah null.
Ternyata null tidak ada dari setiap kolom. Kalau begitu kita lanjut ke EDA(Exploratory data analysis).
EDA
Kita akan mengecek semua kolom dengan visualisasi data menggunakan matplotlib dan seaborn. Mari kita lihat sama-sama.
Kita menggunakan Pie Chart untuk melihat Attrition Flag dari data yang ada, ternyata menurut dataset sekitar 16.07% konsumen tergolong Attrited Customer atau Churn atau konsumen yang tidak loyal dengan servis perusahaan.
Konsumen perusahaan terdiri dari 52.91% perempuan dan 47.09% laki-laki.
Berdasarkan data secara edukasi konsumen 30.89% sarjana, 19.88 lulus SMA, 15% tidak diketahui status pendidikannya, 14.68% tidak berpendidikan, 10% college/diploma, 5.10% pasca sarjana/S2, 4.45% gelar Doktor/S3.
Konsumen terdiri dari 46.28% menikah, 38.94% lajang, 7.4% tidak diketahui statusnya, 7.39% bercerai.
Dari sisi penghasilan per tahun terdiri dari 35.16% kurang dari $40.000, 17.68% $40.000–$60.000, 15.16% $80.000-$120.000, 13.84% $60.000-$80.000, 10.98% tidak diketahui, 7.18% $120.000 keatas
Kategori kartu yang digunakan konsumen secara mayoritas 93.18% adalah kartu jenis Blue, Silver 5.48%, 1.25% Gold, 0.2 % Platinum.
Untuk melihat distribusi dari umur konsumen data terkumpul di kisaran angka 40–50 tahun.
Berikut distribusi konsumen yang memiliki tanggungan(anak,etc) banyak di angka 2 dan 3 tanggungan.
Ini adalah angka hubungan konsumen dalam bulan, rata-rata diangka 35 bulan.
Ini adalah angka beberapa produk perbankan yang digunakan oleh konsumen. Rata- rata konsumen bisa memiliki 3–4 produk perbankan.
Ini adalah data konsumen tidak aktif dalam hitungan bulan. Rata-rata konsumen tidak aktif dalam 3–4 bulan dalam 1 tahun.
Ini adalah angka kontak selam 1 tahun. Biasanya selama 2–3 kali kontak dalam 1 tahun.
Ini adalah Credit limit konsumen, rata-ratanya diangka $8631, dan kebanyakan konsumen memiliki credit limit dibawah $5000.
Revolving Balance adalah biaya yang belum dibayarkan jika tagihan sudah datang dalam sebulan. Kita bisa lihat rata-rata revolving balance diangka $1162 dan angka terbanyak dibawah $500.
Rata-rata credit line yang diberikan bank sekitar $7469 dan angka yang terbanyak dibawah $5000.
Total Change in Transaction rata-rata di angka 0.75 dan distribusi yang kuat di sekitar 1–0.5.
Total transaksi dalam kurun waktu 12 bulan di angka rata-rata per konsumen $4404 dan distribusi terfokus $0-$5000.
Rata-rata Utilization Ratio konsumen ada diangka 27%. Biasanya perbankan membatasi angka tersebut di 30% yang mengindikasikan tingkat keamanan konsumen untuk meminjam. Sebaiknya tidak boleh lebih dari 30% untuk idealnya.
Jika kita melihat grafik tersebut memang Attrited customer lebih banyak di kalangan yang memiliki pendapatan dibawah $40.000 tetapi itu juga beriringan dengan banyaknya kelompok mereka.
Berdasarkan visualisasi diatas lebih banyak orang yang churn di kelompok S1/Graduate itu juga beriringan dengan banyaknya mereka.
Berdasarkan kategori kartu banyaknya churn di pemilik kartu Blue yang beriringan juga dengan banyaknya mereka.
Berdasarkan visualisasi diatas jumlah orang churn yang berpasangan dan lajang hampir sama walaupun jumlah yang loyal lebih banyak yang menikah tetapi jumlah untuk yang lajang yang jumlah loyalnya lebih sedikit dari yang menikah memiliki angka yang sama dengan yang menikah.
Berdasarkan jenis kelamin yang churn beriringan dengan jumlah mereka mau yang perempuan dan laki-laki.
Metode Machine Learning
Untuk mengklasifikasi banyaknya churn di perusahaan kita mengunakan beberapa metode machine learning sebagai berikut:
- Logistic Regression
- Random Forest Classifier
- Gradient Boosting Classifier
- Decision Tree Classifier
- Extra Tree Classifier
- Gausian Nb
Sebelum kita mengaplikasikan metode Machine Learning kita harus merubah data yang tidak berangka menjadi kodefikasi angka agar pengoperasian machine learning berjalan dengan baik. Kita menggunakan LabelEncoder untuk merubah data huruf menjadi angka.
Setelah itu kita membagi variabel dependen dan independen ke dalam x dan y. X untuk seluruh kolom sebagai variabel independen dan kolom Attrition_Flag sebagai variabel dependen. Kita membagi data untuk train dan untuk test dengan test size di angka 30% train data sebesar 70%.
Untuk menghitung akurasi kali ini saya menggunakan metode cross validation dimana dengan metode ini secara teoritis akan mengulang bebebrapa kali validitas akurasi dari metode machine learning sebanyak yang saya mau, kali ini saya mengulang sampai 5x. Setelah kita gunakan Logistic Regression ternyata hasil akurasi antara test dan train adalah 88%, memang tidak overfitting atau underfitting tapi kita akan coba lagi ke metode lain.
Jika kita menggunakan Random Forest Classifier menghasilkan akurasi train dan tes sebesar 95%.
Jika kita menggunakan Random Forest Classifier menghasilkan akurasi train dan tes sebesar 96% tidak underfitting maupun overfitting.
Jika kita menggunakan Random Forest Classifier menghasilkan akurasi train 93% dan tes sebesar 92%.
Jika kita menggunakan Extra Trees Classifier train score dan test score sama-sama diangka 93%.
Menggunakan Gaussian NB train score dan test score 93% tidak overfitting maupun underfitting.
Berdasarkan semua dari metode machine learning yang kita gunakan ternyata yang tidak overfitting dan underfitting serta memiliki akurasi yang tinggi adalah Gradient Boosting Classifier.
Ini untuk Dashboard di Tableu.