Skip to content

Churn Prediction - Machine Learning Binary Classification adalah proses membangun model prediksi customer stay dan churn. Dalam proyek ini, saya mengambil pendekatan end-to-end, mulai dari data mentah, eksperimentasi pemodelan, dokumentasi, streamlit hingga deployment menggunakan Docker.

Notifications You must be signed in to change notification settings

PrasetyoWidyantoro/Churn-Prediction-for-Bank-Customers

Repository files navigation

Churn Prediction for Bank Customers Using Machine Learning

Cara menjalankan Script Dilokal

Konfigurasi Awal

  • Buat satu folder untuk clone file-file yang tersedia pada laman github ini
  • clone repository github ini
  • instalasi virtual environment
  • aktifkan virtual environment yang telah dibuat
  • install requirements.txt dengan cara pip install -r requirements.txt
  • file sudah dikonfigurasi, lanjutkan step dibawah ini sesuai dengan keinginan

Cara Menjalankan API

  • Pastikan masuk ke folder utama program
  • ketik - uvicorn src.api:app --reload
  • lalu akan dirujuk pada laman http://127.0.0.1:8000

Cara Menjalankan Streamlit

  • Pastikan masuk ke folder utama program
  • ketik - streamlit run src/streamlit.py
  • lalu akan diarahkan pada tampilan UI streamlit pada laman http://localhost:8501/

Cara serve MkDocs

  • Pastikan sudah berada didalam folder docs
  • ketik - mkdocs serve --dev-addr=127.0.0.1:8080
  • lalu laman dokumen akan muncul pada laman http://127.0.0.1:8080

Cara menjalankan Sevice dengan menggunakan Docker

Langkah langkah menggunakan menjalankan service dengan menggunakan docker:

  • pastikan docker sudah diaktifkan dan dalam kondisi login
  • lalu, jalankan melalui terminal yang sudah diaktifkan virtual environment dengan script berikut docker compose up -d --build

Data Preparation

Gambar Arsitektur Data Preparation

flow_chart_1.drawio

Dataset Definition

Data yang digunakan merupakan data yang menggambarkan profile nasabah yang menutup rekening dan nasabah yang tetap. adapun fitur profile nasabah yang digunakan antara lain.

Data disadur dari laman https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction

Data berisi 10000 baris dan 11 kolom yaitu :

  • CreditScore : [int64] [350 - 850] Skor Kredit yang diukur oleh pihak bank sebagai penilaian terhadap nasabah untuk menggambarkan risiko kredit seorang calon debitur

  • Geography : [object] ['France', 'Spain', 'Germany'] Negara asal nasabah

  • Gender : [object] ['male','female'] Jenis Kelamin nasabah

  • Age : [int64] [18 - 92] Jenis Kelamin nasabah

  • Tenure : [int64] [0 - 10] Jumlah tahun kepesertaan nasabah

  • Balance : [float64] [0.0 - 250898.09] Saldo bank nasabah

  • NumOfProducts : [int64] [1, 3, 2, 4] Jumlah produk bank yang digunakan nasabah

  • HasCrCard : [int64] [0 - 1] apakah nasabah memegang kartu kredit dengan bank atau tidak.

  • IsActiveMember : [int64] [0 - 1] apakah nasabah adalah anggota aktif di bank atau tidak.

  • EstimatedSalary : [float64] [11.58 - 199992.48] Perkiraan gaji nasabah dalam Dolar

  • Exited : [int64] [0,1] 1 jika nasabah menutup rekening dengan bank dan 0 jika nasabah dipertahankan.

Exploratory Data Analysis (EDA)

Gambar Arsitektur Exploratory Data Analysis (EDA)

flow_chart_2.drawio

Data Preprocessing

Gambar Data Preprocessing

flow_chart_3.drawio

Data Modeling

Gambar Arsitektur Data Modeling

flow_chart_4.drawio

Machine Learning Services

Arsitektur Machine Learning Services

flow_chart_5.drawio

Selanjutnya, setelah melalui beberapa proses dan model telah di save akan dilanjutkan pada deployment dengan menggunakan API dan Streamlit gambar dibawah ini merupakan contoh mengakses menggunakan ML Services melalui FAST API Swagger UI

Berikut contoh input data yang digunakan untuk mengakses API

11_API_Swagger_UI

Berikut hasil output prediksi dari API services

12_Output_API

Agar lebih ramah dalam menggunakannya dan tampilannya lebih powerfull, user disuguhkan dengan apps sederhana yang dibangun dengan menggunakan streamlit services, berikut contoh penggunaannya

13_UI_Streamlit

User diharapkan mengisi form yang sudah disediakan hingga selesai, jika terdapat kesalahan range dalam input data streamlit akan menampilkan error dibagian mana yang inputnya salah, jika dirasa sudah sesuai kriteria maka klik tombol predict dan akan mengelarkan hasil Prediction Result: Class 0 = Customer stay dan Class 1 = Customer churn

Menggunakan Docker Container

Ketika service ingin dijalankan bersamaan, maka kita perlu menggunakan tools yang mendukung hal tersebut, salah satunya dapat menggunakan docker berikut contoh service sederhana yang dijalankan dengan bantuan docker

Berikut hasil input service ke docker container 14_docker_container

Berikut hasil input service ke docker Image 14_docker_image

Referensi

About

Churn Prediction - Machine Learning Binary Classification adalah proses membangun model prediksi customer stay dan churn. Dalam proyek ini, saya mengambil pendekatan end-to-end, mulai dari data mentah, eksperimentasi pemodelan, dokumentasi, streamlit hingga deployment menggunakan Docker.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published