Memprediksi pola Pelanggan yang Deposito pada Bank dan Mengurangi biaya Operasional Campaign dengan Machine Learning — Random Forest Model.
Tujuan dari projek ini ialah dapat membuat model yang dapat memprediksi pola customer yg melakukan term deposit/deposito dan membantu mengurangi biaya campaign yang dikeluarkan oleh bank.
Project ini berisikan beberapa proses, mulai dari Data Understanding, EDA, Deep dive EDA, Data Prepocessing, Split Data to Train data and Test Data kemudian melatih beberapa model yang dianggap cocok dgn data yang ada, menggunakan base model K-NN classification, Random Forest, dan Decession Tree, XgBoost Classifier dan mentuning Random Forest.
Outline Projek.
- Data & Business Understanding.
- EDA atau Exploratory Data Analysis.
- Data Preprocessing & Encoding.
- Modelling.
- Estimasi Potensi Dampak dari Model ML.
- Kesimpulan.
- Rekomendasi.
Selanjutnya, Yuk kita bahasa projek ini dari awal hingga akhir, gaasssskeeun….
DATA & BUSINESS UNDERSTANDING.
Ialah proses pertama yang harus kita pahami dari data yang akan kita analisis dan akan kita buat model prediksinya, dimana kita diharuskan mengetahui bisnis domain dari data yang akan kita gunakan, pada projek ini kita harus memahami dulu bagaimana Bisnis model yang ada pada perbankan dan datanya, yuk kita perhatikan gambar di bawah ini.
Dalam Klasifikasi distribusi target haruslah memiliki distribusi target yang balance, pada projek ini deposit ditentukan sebagai target/label guna membangun model machine learning, distribusi target 53:47 tergolong balance , namun secara teori yang di anggap balance perbandingannya ialah 50:50, makan nantinya saya akan mencoba menerapkan metode SMOTE untuk membuat data target tersebut balance.
kemudian selanjutanya yuk kita pahami bisnis model dari perbankan, agar ada banyangan delam benak bagaimana bisnis model pada perbankan, agar lebih mudah saya hanya melampirkan gambar saja ya…
EDA atau Exploratory Data Analysis.
Ialah proses yang bertujuan untuk mendapatkan insight-insight tertentu sebelum membuat model Machine Learning, hal ini sangat berguna untuk kita memahami apa yang terkandung di dalam data, karna biasanya pada proses inilah insight yang sangat melimpah akan kita perolah, yuk mari gassskeun kita lihat EDA yang sangat insightfulllll pada projek kali ini.
Akan diantisipasi oleh model yg dapat
Menghandle data outlier.
DATA PREPROCESSING & ENCODING.
ialah proses Pra-pemrosesan data dapat merujuk pada manipulasi atau penghapusan data sebelum digunakan untuk memastikan atau meningkatkan kinerja, dan merupakan langkah penting dalam proses penambangan data. Ungkapan “sampah masuk, sampah keluar” terutama berlaku untuk penambangan data dan proyek pembelajaran mesin/Machine Learning.
setelah beberapa iterasi drop fitur
menghasilkan kinerja yang lebih rendah, Sehingga fitur dikembalikan seperti semula
MODELLING.
ialah proses dimana saya membangun model mulai dari beberapa base model guna mencari model yang nantinya akan dikembangkan dan digunakan pada data yang ada, setelah penelusuran beberapa model dasar seperti, ditemukanlah model yang paling tinggi akurasinya serta nanti akan saya tuning dengan metode Random Search Cross Validation (RandomSearcchCV), perlu diketahui jika kita menggunakan GridSearchCV atau RandomSearchCV maka kita hanya perlu membagi data menjadi Train dan Test set, dan tidak memerlukan Validasi set terpisah karena RandomSearchCV atau GridSearchCV secara otomatis melakukan validasi silang secara internal, sumbernya dapat dilihat pada repositori saya berikut ini pada bagian akhir readme.
Hyperparametertuning untuk menghindari overfit. sumber grid Search CV link text
Estimasi Potensi Dampak dari Model ML.
total orang yang melakukan dan tidak melakukan deposit berdasarkan dataset sebanyak 11162
orang yang melakukan deposit berdasarkan dataset sebanyak 5289
orang yang melakukan tidak deposit berdasarkan dataset sebanyak 5873
10 persen dari orang yang melakukan deposit sebanyak 529
dihubungi paling sering per orang sebanyak 63 kali
total orang campaign sebanyak 27999 kali
rata-rata menghubungi sebanyak 3 kali
akurasi model sebanyak 0.84 persen maka :
dapat menghemat biaya campaign sebanyak 0.16 persen, karena akan fokus campaign ke 0.84 persen saja
Misalkan campaign dilakukan pada 10 persen pelanggan yg melakukan deposit sebelumnya.
jika diasumsikan biaya setiap sekali campaign(iklan google/yt/facebook/call/etc) = Rp. 25000
karena sebelumya model mendapatkan 0.84 akurasi maka :
0.84 persen dari 529 orang yg melakukan deposit ialah 444.36 orang
rata-rata setiap orang dihubungi sebanyak 3 dikalikan dengan 444.36
anggaran campaign yg dikeluarkan menjadi Rp. 33327000 dan menghemat sebesar Rp. 6348000
Kesimpulan
- model terbaik Random Forest, karena model ini memiliki accuracy paling tinggi di baseline model sehingga dipilih untuk di tuning.
- sehingga dengan model yang lebih peka terhadap orang yang akan melakukan term deposit maka kampanye marketing dapat lebih maksimal dilakukan dengan mendekati orang-orang yang memiliki kriteria atau cendrung melakukan term deposit dgn berbagai metode marketing yang sesuai.
- namun untuk perhitungan yang lebih cepat sebaiknya saya melakukan data scaling dan Hypertuning RandomSearchCV dibandingkan menggunakan GridSeearchCV agar beban perhitungan lebih murah.
- penulis meilih menggunakan model yg dapat menghandle outlier, seperti knn, random forest, decision tree dll, untuk metode penghapusan outlier penulis rasa kurang tepat dilakukan karena dataset yg digunakan akan berkurang sangat bnyak nantinya.
Rekomendasi
Tujuan rekomendasinya untuk menghemat biaya iklan/campaign ke pelanggan dan meningkatkan pelanggan yg melakukan/langganan Deposito/Term Deposit
- mengunakan model untuk membuat list pelanggan potensial yg mau melakukan term deposit/deposito, sehingga marketing dept dapat langsung melakukan campaign ke pelanggan yg potensial agar menghemat biaya campaign.
- membuat panduan umum untuk marketing dept yg berisikan Kriteria khusus yg dapat membuat pelanggan menjadi tidak tertarik atau sebaliknya untuk melakukan term deposit/deposito berdasarkan beberapa fakta yg ditemukan dari data, maka pertimbangkan beberapa hal sebagai berikut untuk membuat panduan umum:
- Pertimbangkan untuk malakukan kampanye pada usia 30 an.
- Pertimbangkan untuk malakukan kampanye pada pasangan yang tidak bercerai.
- Pertimbangkan untuk melakukan kampanye pada pelanggan yang tidak memiliki Loans(Pinjaman) serta menghindari pelanggan yg memiliki pinjaman.
- Pertimbangkan untuk melihat tingkat saldo pada setiap profesi, usahakan untuk lebih banyak mendekati pelanggan yg bekerja di rana management.
- Tidak disarankan untuk campaign (menghubungi) pelanggan terlalu sering, karena semakin banyak menghubungi(melakukan kampanye/iklan) kepada pelanggan maka kesempatan utk pelanggan tersebut melakukan term deposit semakin mengecil.
penasaran dengan kodenya ?
silahkan cek Github Repositori aku ya….
LINK : https://github.com/irvansikajudin/Bank-Marketing-Campaign---Predict-Term-Deposit