Memprediksi pola Pelanggan yang Deposito pada Bank dan Mengurangi biaya Operasional Campaign dengan Machine Learning — Random Forest Model.

Irvan sikajudin
6 min readJun 28, 2022

--

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.

  1. Data & Business Understanding.
  2. EDA atau Exploratory Data Analysis.
  3. Data Preprocessing & Encoding.
  4. Modelling.
  5. Estimasi Potensi Dampak dari Model ML.
  6. Kesimpulan.
  7. 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.

pada gambar ini kita dapat melihat value unik apa saja yang ada pada tiap fitur, namuk 70 karakter maksimal yg akan di tampilkan.
semakin banyak saldo pelanggan di rekening semakin besar peluang juga untuk di alihkan menjadi deposito, sedangkan setelah campaign dilakukan ke pelanggan akan memerlukan waktu yg agak lama untuk melakukan deposito jika campaign berhasil, campaign harapnya dilakukan dengan sewajarnya dan secukupnya, karna jika terlalu berlebihan dapat menurunkan kemungkinan pelanggan untuk deposito.
Please dipahami secara mandiri ya guyss dari gambarnya, mohon maaf hihi…
yuk kita lihat bagian default, strategi marketing berhasil dan dapat dipertahankan, sebab dapat membuat yang kadang gagal bayar tetap tergiur dengan deposito, yg umumnya sulit dicapai karena fokus untuk pembayaran angsuran kredit.
Pengecekan Outlier : Banyak Outlier, namun di anggap wajar,
Akan diantisipasi oleh model yg dapat
Menghandle data outlier.
sekilas terlihat pada beberpa fitur lebih banyak yang tidak melakukan term deposit

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.

pada projek ini tidak ditemukannya missing values, duplicate values. setelah tidak ditemukannya hal tersebut kemudian saya melakukan encoding (label encoding dan one hot encoding.)
Pengecekan Korelasi Fitur : Semua fitur ini penting,
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.

karena hasil basemodel Random Forest menunjukkan akurasi paling tinggi maka model ini akan saya pilih untuk di tuning.
Solusi ketika ketika tidak melakukan pemisahan data menjadi Train-Validation-Test Dataset adalah dengan melakukan Cross Validation, dimana melakukan validation tanpa perlu memerlukan validation set terpisah. dataset tetap dibagi menjadi train dan test set, cross validation dilakukan pada train set, GridSearchCV & RandomSearchCV, saya menggunakan 5 sebagai K-Fold cros validation, terlebih lagi dataset yg saya gunakan tergolong tidak besar(tidak sampai jutaan), maka dari itu penggunaan cross validation masih dapat digunakan karena dataset saya kecil ukurannya, jika digunakan pada dataset yg jutaan akan memakan waktu yg sangat lama dan tidak bijak digunakan pada dataset besar. jika dataset besar hingga jutaan disarankan untuk menggunakan skema hyperparametertuning yg biasa (Train-validation-Test)
Hyperparametertuning untuk menghindari overfit. sumber grid Search CV link text
Note : metrik yang digunakan pada projek ini adalah akurasi

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

  1. 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.
  2. 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

--

--

Irvan sikajudin
Irvan sikajudin

Written by Irvan sikajudin

My degree is Bachelor of economics (S.E) with a concentration in business and economics, but I called myself an enthusiastic data scientist.

Responses (1)