Ini adalah proyek submisi untuk kelas Belajar Machine Learning untuk Pemula dalam program Asah by Dicoding (Studi Independen Bersertifikat Kampus Merdeka). Proyek ini berfokus pada analisis data transaksi perbankan untuk melakukan segmentasi nasabah (clustering) dan memprediksi segmen nasabah (klasifikasi) guna mendukung pengambilan keputusan bisnis yang lebih baik.
Dalam industri perbankan, memahami perilaku nasabah adalah kunci untuk menyediakan layanan yang relevan dan menjaga keamanan finansial. Proyek ini bertujuan untuk mengembangkan model machine learning yang dapat mengelompokkan nasabah ke dalam segmen-segmen tertentu berdasarkan aktivitas transaksi mereka. Selanjutnya, model klasifikasi dibangun untuk memprediksi segmen nasabah, yang dapat dimanfaatkan untuk strategi pemasaran tertarget, deteksi anomali, atau personalisasi layanan.
Proyek ini disusun dengan struktur direktori sebagai berikut untuk memudahkan navigasi dan pemeliharaan:
.
├── data/
│ ├── bank_transactions_data.csv # Dataset utama
│ └── ...
├── notebooks/
│ ├── [Clustering]_Submission_Akhir_BMLP_Rozhak.ipynb
│ └── [Klasifikasi]_Submission_Akhir_BMLP_Rozhak.ipynb
├── models/
│ ├── model_clustering.h5
│ └── tuning_classification.h5
├── LICENSE
└── README.md
Dataset yang digunakan adalah bank_transactions_data.csv, yang berisi catatan transaksi keuangan sintetis. Dataset ini mencakup berbagai atribut seperti demografi nasabah, detail aktivitas perbankan, dan pola perilaku digital. Karakteristik ini menjadikannya ideal untuk tugas analisis segmentasi dan prediksi dalam konteks layanan finansial.
Proses analisis dibagi menjadi dua tugas utama: clustering dan klasifikasi.
Tujuan dari tahap ini adalah untuk mengelompokkan nasabah ke dalam beberapa segmen tanpa label yang ditentukan sebelumnya.
- Pra-pemrosesan Data: Data dibersihkan, nilai yang hilang ditangani, dan fitur-fitur yang relevan dipilih untuk pemodelan.
- Pemilihan Algoritma: Algoritma K-Means Clustering digunakan untuk mengidentifikasi kelompok-kelompok nasabah yang memiliki karakteristik serupa.
- Evaluasi Model: Elbow method digunakan untuk menentukan jumlah cluster optimal, dan hasil clustering dievaluasi menggunakan Silhouette Score.
Gambar: Visualisasi Cluster Pelanggan (Hasil PCA)
Setelah nasabah disegmentasi, label cluster dari tahap sebelumnya digunakan sebagai target untuk melatih model klasifikasi.
- Persiapan Data: Label hasil clustering ditambahkan ke dataset sebagai variabel target. Data kemudian dibagi menjadi set pelatihan dan pengujian.
- Pemilihan Algoritma: Beberapa algoritma dieksplorasi, termasuk Decision Tree dan Random Forest, untuk menemukan model dengan performa terbaik.
- Evaluasi Model: Performa model diukur menggunakan metrik standar seperti Akurasi, Presisi, Recall, dan F1-Score.
Gambar: Confusion Matrix dari model klasifikasi dengan performa terbaik.
Untuk menjalankan notebook dan mereplikasi hasil analisis, ikuti langkah-langkah berikut:
-
Clone Repositori
git clone https://github.com/RozhakDev/BankML.git cd BankML -
Instal Dependensi Pastikan Anda memiliki library Python yang diperlukan. Anda bisa menginstalnya menggunakan pip:
pip install numpy pandas scikit-learn matplotlib seaborn jupyter
-
Jalankan Jupyter Notebook Buka dan jalankan file
.ipynbdi dalam direktorinotebooks/untuk melihat proses analisis secara detail.jupyter notebook
Proyek ini dilisensikan di bawah MIT License.