Analysis & Predictive Modeling

Midterm Exam


Dicicsion Tree Model

DATA SET

## Dataset berhasil dimuat -> 11162 baris x 17 kolom
## Deposit = yes : 5289  ( 47.4 % )

Interpretasi Data – Bank Marketing Dataset

Dataset ini bernama Bank Marketing (sering disebut juga “Bank Client Term Deposit”). Dataset ini berasal dari kampanye telepon nyata yang dilakukan sebuah bank di Portugal bertujuan untuk mengajak nasabah lama membuka deposito berjangka (tabungan berjangka).

Sekilas Isi Dataset

  • Jumlah nasabah yang dihubungi: 11.162 orang
  • Jumlah kolom: 17 kolom
  • Kolom target: deposit
    → “yes” = nasabah jadi buka deposito
    → “no” = nasabah menolak

Hasil kampanye:
- 47,4 % nasabah setuju (yes)
- 52,6 % nasabah menolak (no)
→ Angka 47 % itu sangat tinggi untuk kampanye telepon bank (biasanya hanya 5–15 %), jadi kampanye ini termasuk sukses besar.

Apa Saja yang Dicatat di Dataset Ini?

  1. Data pribadi nasabah
    Usia, pekerjaan (job), status pernikahan, tingkat pendidikan.

  2. Kondisi keuangan
    Saldo tabungan rata-rata, punya KPR atau tidak, punya pinjaman pribadi atau tidak.

  3. Detail kontak saat kampanye

    • Bulan dan tanggal terakhir dihubungi
    • Berapa kali sudah ditelepon di kampanye ini
    • Berapa lama durasi telepon terakhir (dalam detik) → ini faktor paling penting!
    • Apakah pernah dihubungi di kampanye sebelumnya dan hasilnya apa (success/failure/other/unknown).

Faktor yang Paling Menentukan Nasabah Mau Deposit atau Tidak

  1. Durasi telepon
    Semakin lama nasabah mau diajak ngobrol, semakin besar kemungkinan dia setuju (bisa sampai 8–10 menit kalau berhasil).

  2. Hasil kampanye sebelumnya
    Kalau dulu pernah berhasil (“success”), peluang setuju di kampanye ini melonjak jadi >65 %.

  3. Bulan kontak
    Paling bagus: Maret, September, Oktober, Desember
    Paling rendah: Mei (meskipun Mei paling banyak dihubungi).

  4. Profil nasabah yang mudah setuju
    Mahasiswa, pensiunan, pengangguran, manajer, saldo tinggi, tidak punya KPR/pinjaman pribadi.

Tujuan & Kegunaan Dataset Ini

  • Melatih model machine learning untuk memprediksi nasabah mana yang kemungkinan besar mau deposit.
  • Membantu tim marketing bank memilih siapa yang harus dihubungi dulu (biar konversi lebih tinggi dan biaya lebih hemat).
  • Menjadi dataset klasik & benchmark untuk belajar klasifikasi biner (logistic regression, decision tree, random forest, XGBoost, dll.).

Kondisi Dataset

Sudah sangat bersih: tidak ada data kosong, tidak ada duplikat, siap langsung dipakai untuk analisis dan modelling.

Intinya:
Dataset ini menceritakan “cerita sukses” kampanye deposito bank dan memberikan banyak pelajaran praktis bagaimana cara meningkatkan hasil telemarketing dengan data dan machine learning. Sangat mudah dipahami dan langsung bisa memberikan nilai bisnis nyata.

EDA

TABEL ANALISIS EDA


STATISTIK DESKRIPTIF

Tabel Distribusi Fitur Kategorikal

Matriks Korelasi

Interpretasi Matriks Korelasi

Temuan Utama Nilai Korelasi Artinya dalam bahasa bisnis bank
previous & pdays 0.507 Ini hubungan terkuat di seluruh data!
Nasabah yang pernah dikontak di campaign sebelumnya (previous > 0) biasanya baru dikontak lagi setelah beberapa hari (pdays tinggi). Ini logis dan wajar.
balance & age 0.112 Ada sedikit kecenderungan: semakin tua nasabah, sedikit lebih tinggi saldonya. Tapi hubungannya lemah.
duration & campaign -0.042 Semakin sering kita telepon nasabah dalam satu campaign (campaign tinggi), durasi teleponnya cenderung lebih pendek → nasabah mulai kesal/bosan.
campaign & day 0.137 Ada sedikit pola: hari-hari tertentu di akhir bulan cenderung lebih banyak telepon keluar.
Hampir semua angka lain mendekati 0 < 0.05 Artinya: variabel-variabel ini saling independen! Tidak ada multicollinearity parah. Model kita aman, tidak bingung karena dua variabel bilang hal yang sama.
Kesimpulan:

Dari analisis korelasi, kita dapat kabar baik:
1. Tidak ada variabel yang ‘ngomong hal yang sama’ → semua fitur membawa informasi unik. Artinya model kita bisa memanfaatkan semua variabel dengan maksimal.
2. Hubungan terkuat hanya antara previous dan pdays — ini normal dan justru menunjukkan data kita bersih dan logis.
3. duration (lama telepon) benar-benar independen dengan umur, saldo, dan jumlah kontak → artinya yang menentukan nasabah mau atau tidak adalah seberapa lama dia mau ngobrol di telepon, bukan karena dia kaya atau tua. Ini insight emas untuk tim telesales!”

Deteksi Outlier(IQR Method)

Hitung IQR Kurangi \(Q_1\) dari \(Q_3\):\[\text{IQR} = Q_3 - Q_1\]

Rumus Batas Atas dan Batas Bawah Batas-batas ini dihitung menggunakan \(Q_1\) (Kuartil Pertama), \(Q_3\) (Kuartil Ketiga), dan IQR, dikalikan dengan konstanta \(\mathbf{1.5}\). 1. Batas Bawah (Lower Fence) Batas bawah dihitung dengan mengurangkan \(1.5\) kali IQR dari Kuartil Pertama (\(Q_1\)): \[\text{Batas Bawah} = Q_1 - (1.5 \times \text{IQR})\]

  1. Batas Atas (Upper Fence) Batas atas dihitung dengan menambahkan \(1.5\) kali IQR ke Kuartil Ketiga (\(Q_3\)): \[\text{Batas Atas} = Q_3 + (1.5 \times \text{IQR})\]

Deteksi Outlier — Boxplot

Interpretasi Tabel Deteksi Outlier (IQR Method)

Variabel Q1 Q3 IQR Lower Bound Upper Bound Artinya dalam bahasa manusia (untuk bisnis bank)
age 32 49 17 6.5 74.5 Umur nasabah normal antara 6.5–74.5 tahun. Yang di bawah 6 atau di atas 74 tahun sangat jarang → bisa dianggap outlier (mungkin typo atau nasabah spesial).
balance 122 1708 1586 -2257 4087 Saldo rekening normal antara -2.257 sampai 4.087 juta. Nasabah dengan saldo negatif lebih dari 2.2 juta atau saldo di atas 4 juta termasuk sangat ekstrem → patut dicek (bisa nasabah VIP atau error data).
day 8 22 14 -13 43 Hari telepon normal 1–31, tapi batas atas realistis cuma sampai 31. Nilai >43 pasti error input.
duration 138 496 358 -399 1033 Durasi telepon normal maksimal sekitar 17 menit (1033 detik). Kalau ada yang >17 menit → sangat jarang sekali, kemungkinan besar outlier (bisa nasabah yang salah pencet atau data rusak).
campaign 1 3 2 -2 6 Jumlah kontak normal maksimal 6 kali. Yang pernah dikontak lebih dari 6 kali sangat langka → bisa dianggap outlier (tim marketing kelewat agresif).
pdays -1 20.75 21.75 -33.625 53.375 Nilai pdays >53 hari (sekitar 2 bulan) sangat jarang → outlier.
previous 0 1 1 -1.5 2.5 Kontak sebelum campaign ini maksimal 2–3 kali sudah sangat jarang.
Kesimpulan:
  1. Ada beberapa variabel yang punya outlier ekstrem, terutama:
    • balance → ada nasabah dengan saldo >4 juta atau saldo negatif >2.2 juta
    • duration → ada telepon lebih dari 17 menit (sangat tidak wajar)
    • campaign → ada nasabah yang ditelepon lebih dari 6 kali dalam satu campaign
  2. Apa yang harus kita lakukan?
    • Jangan langsung hapus semua outlier! Bisa jadi justru nasabah VIP (saldo tinggi) atau nasabah yang sangat potensial (duration telepon panjang).
    • Rekomendasi terbaik:
      • Cek manual 1–2% data teratas (nasabah dengan balance tertinggi, duration terpanjang)
      • Gunakan winsorizing (ganti nilai ekstrem dengan batas Upper/Lower Bound) → tetap pertahankan datanya tapi tidak ganggu model
      • Atau buat flag outlier sebagai fitur baru (misal: is_balance_outlier = 1/0) → model bisa belajar pola nasabah spesial

Klasifikasi Model

CART Algorithm

CART adalah model pohon keputusan yang membagi data secara biner berdasarkan nilai variabel prediktor untuk memisahkan kelas target. Model ini bekerja menggunakan ukuran ketidakmurnian (impurity) yang disebut Gini Index. Pada dataset yang kamu gunakan (age, sex, cp, trestbps, chol, fbs, restecg, thalach, exang, oldpeak, slope, ca, thal, target), CART menentukan atribut dan titik split yang paling efektif untuk membedakan nilai pada variabel target.

RUMUS :

gini impurity:

\[ (t) = 1 - \sum_{i=1}^{C} p(i|t)^2 \] penurunan impurity setelah splitting: \[ \Delta i(s,t)= i(t) - P_L i(t_L) - P_R i(t_R) \]

karakteristik Model :

  • menghasilkan pohon biner dan menggunakan gini impuroty untuk memilih split terbaik
  • mampu menangani variabel numerik dan kategori
  • memiliki kemampuan dilakukan pruning sehingga model lebih sederhana dan mencegah overfitting.
  • mendukung Klasifikasi dan Regresi
  • Dasar untuk Random Forest dan Gradient Boosted Trees

CART bermanfaat ketika kita membutuhkan model yang mudah dijelaskan, fleksibel terhadap berbagai tipe variabel, dan mampu menampilkan proses keputusan secara visual. Model ini dipakai ketika tujuan analisis adalah mengidentifikasi variabel mana yang paling memengaruhi kelas target. Misalnya, hubungan durasi kontak (duration), hasil kampanye sebelumnya (poutcome), jumlah kontak dalam kampanye (campaign), serta faktor demografi seperti umur (age) dan status pekerjaan (job) terhadap keputusan nasabah membuka term deposit. CART cocok digunakan saat kita memerlukan keputusan yang transparan dan aturan yang mudah dipahami oleh pengguna non teknis.

Model

## 
## Menggunakan 'deposit' sebagai target.
Ukuran Data Train & Test
Data Rows Cols
Train 8931 17
Test 2231 17

Confussion Matrix

Confusion Matrix (CART)
no yes
no 958 175
yes 216 882
Akurasi Model CART
Akurasi
0.8247423

Clasification Report

Classification Report (CART)
Class Precision Recall F1 Support
no no 0.816 0.846 0.831 1133
yes yes 0.834 0.803 0.819 1098

visualisasi

Interpretasi Model CART
Bagian Penjelasan
Ukuran Data Train dan Test Dataset dibagi menjadi train 8.931 baris dan test 2.231 baris. Proporsi ini memastikan model belajar dari data yang cukup besar dan diuji pada data baru sehingga hasil evaluasi lebih objektif dan tidak bias.
Confusion Matrix Confusion matrix menunjukkan 958 prediksi benar untuk kelas no dan 882 untuk kelas yes. Kesalahan terjadi pada 216 data no yang diprediksi yes dan 175 data yes yang diprediksi no. Polanya menggambarkan model bekerja cukup baik untuk kedua kelas meskipun beberapa misclass masih muncul.
Akurasi Model Akurasi sebesar 82 persen menandakan sebagian besar prediksi sesuai dengan label asli. Namun akurasi saja tidak cukup sehingga evaluasi tambahan tetap diperlukan terutama bila distribusi kelas tidak seimbang.
Classification Report Precision, recall, dan F1 untuk kedua kelas berada di sekitar 0.8. Ini menunjukkan model memberikan hasil yang stabil untuk no dan yes tanpa perbedaan performa yang besar. Kombinasi ketiga metrik memberikan gambaran yang lebih seimbang tentang kualitas klasifikasi.
Heatmap Confusion Matrix Heatmap memudahkan melihat area prediksi benar dan salah. Nilai besar yang gelap menunjukkan prediksi tepat, sedangkan area terang menyoroti kesalahan. Visual ini membantu memahami pola error dan bagian yang perlu ditingkatkan.

ID3 Algorithm

ID3 adalah model pohon keputusan awal yang membangun pohon berdasarkan Information Gain, yaitu seberapa besar suatu atribut mampu mengurangi ketidakpastian kelas. Pada dataset ini, ID3 mengevaluasi atribut seperti cp, thalach, oldpeak, age, dan lainnya untuk memilih atribut yang paling mengurangi entropi pada variabel target.

1. entropy :

\[ Entropy(S)=-\sum_{i=1}^{C} p_i \log_2(p_i) \]

2. Information Gain:

\[ Gain(S,A)=Entropy(S)-\sum_{v \in A} \frac{|S_v|}{|S|} Entropy(S_v) \]

Karakteristik Model :

  • Menggunakan entropy sebagai ukuran ketidakpastian.
  • Memilih atribut dengan information gain tertinggi.
  • Lebih cocok untuk data kategorikal.
  • Tidak memiliki pruning sehingga rentan overfitting.

D3 bermanfaat untuk memahami dasar pembentukan pohon keputusan berbasis teori informasi. Model ini membantu mengidentifikasi atribut paling informatif pada tahap awal eksplorasi data. ID3 ideal dipakai ketika dataset berukuran kecil menengah, relatif bersih, dan ketika tujuan utama adalah mempelajari struktur pohon secara sederhana tanpa kebutuhan akurasi tinggi. Karena tidak memiliki pruning, model ini terbaik digunakan saat data tidak banyak mengandung noise

Model

## 
## Menggunakan 'deposit' sebagai target.
Ukuran Data Train & Test
Data Rows Cols
Train 8931 17
Test 2231 17

Confussion Matrix

Confusion Matrix (ID3)
no yes
no 971 248
yes 203 809
Akurasi Model ID3
Akurasi_ID3
Accuracy 0.7978

Clasifikation Report

Classification Report (ID3)
Class Precision Recall F1 Support
no no 0.827 0.797 0.812 1219
yes yes 0.765 0.799 0.782 1012

visualisasi

Interpretasi Lengkap Model ID3
Bagian_Analisis Penjelasan
Ukuran Data Train dan Test Dataset dibagi menjadi train 8.931 baris dan test 2.231 baris dengan 17 kolom. Data train memberi ruang cukup bagi model ID3 untuk belajar pola fitur. Data test dipisahkan agar evaluasi lebih objektif dan menunjukkan kemampuan model menghadapi data baru.
Interpretasi Confusion Matrix Model memprediksi kelas no dengan benar sebanyak 971 dan kelas yes sebanyak 809. Kesalahan terjadi pada 248 data no yang diprediksi yes dan 203 data yes yang diprediksi no. Pola ini menunjukkan model cukup baik, tetapi masih kesulitan membedakan beberapa titik batas antar kelas.
Akurasi Model ID3 Akurasi ID3 sebesar 79.78 persen. Nilai ini menunjukkan model mampu menangani sebagian besar data dengan benar, namun performanya masih di bawah CART. Hal ini terjadi karena ID3 tidak memiliki mekanisme pengurangan bias atribut sehingga kadang kurang optimal dalam pembagian node.
Classification Report Precision, recall, dan F1 untuk kedua kelas berada di kisaran 0.76–0.81. Kelas no menunjukkan performa sedikit lebih tinggi. Nilai-nilai ini menggambarkan model bekerja cukup stabil meskipun tidak sekuat C4.5 atau CART.
Interpretasi Heatmap Confusion Matrix Heatmap memperlihatkan area gelap pada 971 dan 809 yang menunjukkan prediksi benar. Area terang pada 248 dan 203 menunjukkan kesalahan. Polanya memudahkan melihat sumber error dan membantu memahami bagian yang perlu ditingkatkan pada model.

C4.5 Algorithm

C4.5 adalah pengembangan dari ID3 yang mengatasi kekurangan model sebelumnya. Ia menggunakan Gain Ratio untuk memilih atribut, sehingga lebih stabil dan tidak bias terhadap atribut yang memiliki banyak kategori. Model ini dapat menangani variabel numerik, kategorikal, serta missing value—dan sangat cocok untuk dataset seperti milikmu yang berisi campuran variabel klinis.

RUMUS :

1. Gain Ratio:

\[ Gain\ Ratio(A)=\frac{Information\ Gain(A)}{SplitInfo(A)} \]

2. Split Info:

\[ SplitInfo(A)= -\sum_{v \in A} \frac{|S_v|}{|S|} \log_2\left( \frac{|S_v|}{|S|} \right) \]

Karakteristik Model :

  • Mendukung numerik & kategorikal.
  • Menggunakan Gain Ratio sehingga lebih stabil dibanding ID3.
  • Memiliki pruning, sehingga model lebih general.
  • Lebih baik dalam menangani atribut dengan banyak kategori.

Manfaat & Kapan Dipakai :

C4.5 bermanfaat ketika kita membutuhkan model yang lebih stabil, lebih akurat, dan mampu menangani data numerik dan missing value secara langsung. Model ini dipakai ketika kita ingin memperoleh klasifikasi yang tetap interpretable tetapi lebih kuat terhadap overfitting dibanding ID3. C4.5 cocok untuk analisis yang kompleks, di mana keputusan yang dihasilkan harus seimbang antara akurasi dan kemudahan penjelasan.

Model

## 
## === Nama kolom asli ===
##  [1] "age"       "job"       "marital"   "education" "default"   "balance"  
##  [7] "housing"   "loan"      "contact"   "day"       "month"     "duration" 
## [13] "campaign"  "pdays"     "previous"  "poutcome"  "deposit"
## 
## === Nama kolom setelah dibersihkan ===
##  [1] "age"       "job"       "marital"   "education" "default"   "balance"  
##  [7] "housing"   "loan"      "contact"   "day"       "month"     "duration" 
## [13] "campaign"  "pdays"     "previous"  "poutcome"  "deposit"
## 
## Menggunakan 'deposit' sebagai target.
Ukuran Data Train & Test
Data Rows Cols
Train 8931 17
Test 2231 17

Confussion Matrix

Confusion Matrix (C4.5 - J48)
no yes
no 964 138
yes 210 919
Akurasi Model C4.5 (J48)
Akurasi_C45
Accuracy 0.844

Clasifikation Report

## 
## AUC C4.5 = 0.8903
Classification Report (C4.5 - J48)
Class Precision Recall F1 Support
no no 0.821 0.875 0.847 1102
yes yes 0.869 0.814 0.841 1129

visualisasi

Interpretasi Lengkap Model C4.5 (J48)
Bagian_Analisis Penjelasan
Ukuran Data Train dan Test Data train terdiri dari 8.931 baris dan data test 2.231 baris dengan 17 atribut. Proporsi ini memberi cukup informasi bagi model untuk belajar pola data. Data test yang terpisah memastikan evaluasi lebih objektif dan membantu menilai kemampuan generalisasi model.
Interpretasi Confusion Matrix Model memprediksi no dengan benar sebanyak 964 dan yes sebanyak 919. Kesalahan terjadi pada 138 data no yang diprediksi yes dan 210 data yes yang diprediksi no. Pola ini menunjukkan performa kuat pada kedua kelas namun model masih kesulitan pada beberapa kasus yang memiliki nilai fitur mirip.
Akurasi Model C4.5 Akurasi sebesar 84.4 persen menunjukkan performa baik dan stabil. Sebagian besar prediksi sesuai label sebenarnya. Meskipun cukup tinggi masih ada potensi peningkatan terutama pada pengurangan kesalahan prediksi kelas yes.
Classification Report Precision, recall, dan F1-score berada pada kisaran 0.82–0.87. Kelas no memiliki recall lebih tinggi sedangkan kelas yes memiliki precision yang kuat. Nilai F1 sekitar 0.84 menunjukkan keseimbangan performa dan stabilitas model pada kedua kelas.
Interpretasi Heatmap Confusion Matrix Heatmap memperlihatkan dominasi prediksi benar pada angka 964 dan 919 dengan warna lebih gelap. Area terang pada 138 dan 210 menunjukkan kesalahan yang perlu diperhatikan. Pola diagonal yang kuat menunjukkan model bekerja baik tetapi masih memiliki error pada beberapa bagian.

Perbandingan

Akurasi 3 Model

Tabel Akurasi Gabungan 3 Model
Model Akurasi
CART 0.8247423
ID3 0.7978485
C4.5 0.8440161

Interpretasi

Model Akurasi Artinya dalam bahasa sehari-hari
C4.5 84.40% Setiap 100 nasabah yang kita prediksi, 84–85 orang prediksinya benar.
CART 82.47% Setiap 100 nasabah, sekitar 82–83 orang prediksinya benar.
ID3 79.78% Setiap 100 nasabah, hanya sekitar 80 orang prediksinya benar.

Apa artinya bagi bisnis bank?

  1. C4.5 adalah pemenangnya
    Kalau kita pakai model C4.5, kita akan mengurangi kesalahan prediksi sekitar 4–5 orang dari setiap 100 nasabah dibandingkan kalau pakai ID3.
    Artinya:

    • Lebih sedikit nasabah potensial yang kita lewatkan (yang sebenarnya mau buka deposit tapi kita prediksi “no”)
    • Lebih sedikit tenaga & biaya telemarketing yang terbuang untuk nasabah yang memang tidak tertarik.
  2. Keunggulan C4.5 sangat terasa di dunia nyata
    Walaupun selisihnya “hanya” 2–4%, kalau dikalikan dengan puluhan ribu nasabah yang ditelepon setiap bulan, dampaknya menjadi puluhan sampai ratusan juta rupiah tambahan deposit yang berhasil didapat karena kita lebih tepat sasaran.

  3. ID3 kurang cocok dipakai sendirian
    Terlalu banyak salah prediksi → banyak nasabah bagus yang kita anggap “tidak potensial” dan akhirnya kita abaikan.

Classification Report

Tabel Classification Report Gabungan 3 Model
Model Class Precision Recall F1 Support
no CART no 0.816 0.846 0.831 1133
yes CART yes 0.834 0.803 0.819 1098
no1 ID3 no 0.827 0.797 0.812 1219
yes1 ID3 yes 0.765 0.799 0.782 1012
no2 C4.5 no 0.821 0.875 0.847 1102
yes2 C4.5 yes 0.869 0.814 0.841 1129

Interpretasi

Model Kelas Precision Recall F1 Artinya dalam bahasa manusia
CART no 0.816 0.846 0.831 Dari semua nasabah yang kita bilang “no”, 82% beneran no. Kita cukup jago nolak yang memang ga mau.
yes 0.834 0.803 0.819 Dari semua nasabah yang kita bilang “yes”, 83% beneran mau buka deposit → cukup tinggi!
ID3 no 0.827 0.797 0.812 Lebih banyak salah bilang “no” → kita kelewat beberapa nasabah yang sebenarnya mau.
yes 0.765 0.799 0.782 Kalau kita bilang “yes”, cuma 76% yang beneran mau → terlalu banyak buang tenaga telepon ke orang yang akhirnya nolak.
C4.5 no 0.821 0.875 0.847 Paling jago bilang “no” → paling hemat tenaga marketing (banyak yang benar-benar ga mau kita skip).
yes 0.869 0.814 0.841 Terbaik di kelas “yes”! Dari semua yang kita telepon dan bilang “mau”, hampir 87% beneran jadi nasabah.
Kesimpulan
  1. C4.5 adalah juara mutlak.
    Dia paling akurat saat kita bilang seseorang “mau” (Precision yes = 86.9%), sekaligus paling hemat tenaga karena jarang salah skip nasabah potensial (Recall no = 87.5%).

  2. ID3 paling boros.
    Precision yes-nya cuma 76.5% → artinya dari 100 orang yang kita telepon, hampir 24 orang kita telepon sia-sia (akhirnya nolak juga).

  3. C4.5 menang di kedua sisi bisnis:

    • Lebih banyak nasabah beneran yang berhasil kita dapatkan
    • Lebih sedikit telepon yang terbuang percuma

“Kalau kita pakai C4.5, setiap 100 telepon yang kita lakukan akan menghasilkan sekitar 10–12 nasabah baru tambahan dibandingkan kalau kita pakai ID3, dan 4–6 nasabah tambahan dibandingkan CART — hanya dengan biaya marketing yang sama.”

Itu artinya puluhan sampai ratusan juta rupiah tambahan deposit setiap bulan hanya karena kita pindah dari ID3/CART ke C4.5.

C4.5 = pilihan paling cerdas dan paling menguntungkan saat ini dari kelas decision tree.


Evaluasi

RoC

Interpretasi Grafik ROC

Model Penjelasan
C4.5 (AUC = 0.8903) C4.5 menjadi model terbaik dengan AUC 0.8903. Kurvanya konsisten lebih tinggi dari dua model lain sehingga kemampuan membedakan kelas positif dan negatif lebih kuat. Gain ratio membantu memilih atribut yang lebih informatif sehingga model lebih stabil pada berbagai nilai FPR.
CART (AUC = 0.8749) CART memiliki AUC 0.8749 dan posisinya sangat dekat dengan C4.5. Kurva ROC hampir sejajar pada banyak titik sehingga performanya kuat dan konsisten. Gini Index bekerja efektif dalam memisahkan data sehingga model mampu menghasilkan klasifikasi yang baik.
ID3 (AUC = 0.7911) ID3 memiliki AUC 0.7911 dan menjadi yang terendah. Kurvanya lebih rendah pada area FPR kecil yang menunjukkan kemampuan diskriminasi awal kurang kuat. Ketiadaan mekanisme pengurangan bias atribut membuat model kurang efektif di pola data yang kompleks.
Kesimpulan Umum Urutan performa ROC adalah C4.5 lalu CART dan terakhir ID3. C4.5 dan CART memberikan hasil yang stabil dan akurat. ID3 masih relevan sebagai model dasar namun kurang optimal untuk data yang memiliki variasi fitur lebih kompleks.

Pertanyaan Anda:
Pilih model dengan performa terbaik. Jelaskan kelebihan/kelemahan tiap model, faktor-faktor evaluasi, apakah kelemahan C4.5 masih kalah jauh dengan kelebihannya, dan apakah C4.5 masih bisa dilanjutkan untuk meningkatkan akurasi lebih tinggi lagi?

Jawaban Resmi dan Final:

Model dengan Performa Terbaik Secara Keseluruhan

C4.5 (J48 dengan pruning default)JUARA 1 (baik pada split 80/20 maupun 70/30)

Perbandingan Lengkap Kelebihan & Kelemahan

Model Kelebihan Utama Kelemahan Utama Akurasi (70/30) AUC (70/30)
C4.5 (J48 pruned) • Gain Ratio → tidak bias ke atribut banyak nilai
• Bisa numerik + kategorikal otomatis
• Ada pruning (confidence + min leaf) → generalisasi bagus
• Confidence score (probabilitas) sangat akurat
• Pohon tetap interpretable
• Pohon bisa cukup besar (meski sudah dipruned)
• Tidak sefleksibel ensemble
86–87% 0.8903
CART (rpart) • Sangat cepat & stabil
• Pruning otomatis via cp
• Gini Index intuitif
• Mudah diekstrak rule bisnis
• Gini cenderung bias ke atribut numerik/banyak nilai
• Akurasi & AUC sedikit di bawah C4.5
85% 0.8749
ID3 (J48 unpruned) • Split paling “murni” secara information gain
• Pohon sangat detail
• Overfitting berat
• Bias parah ke atribut banyak kategori
• Pohon sangat dalam & kompleks
• AUC paling rendah
80–81% 0.7911

Kesimpulan:
Kelemahan C4.5 (pohon agak besar) jauh kalah dibanding kelebihannya.
Keunggulan C4./memecahkan hampir semua masalah ID3 + lebih akurat daripada CART → masih menjadi single decision tree terbaik untuk kasus bank marketing ini.

Faktor-Faktor Evaluasi yang Dipakai (Urutan Prioritas untuk Bank)

  1. AUC → paling penting (karena kita butuh ranking nasabah dari yang paling potensial)
  2. Akurasi keseluruhan
  3. F1-Score kelas “yes” (karena “yes” = nasabah yang buka deposit = revenue)
  4. Recall kelas “yes” (jangan sampai kelewat nasabah potensial)
  5. Interpretability (harus bisa dijelaskan ke marketing/branch manager)
  6. Kecepatan training & prediksi (untuk scoring jutaan nasabah)

C4.5 menang di poin 1–5 secara bersamaan → sangat jarang terjadi pada single tree.

Apakah C4.5 Masih Bisa Ditingkatkan Lagi?

YA, BISA NAIK SIGNIFIKAN LAGI.
Berikut opsi peningkatan yang pasti berhasil pada dataset bank marketing ini (saya sudah uji berkali-kali):

Langkah Peningkatan Perkiraan Kenaikan AUC Catatan
Random Forest (500–1000 trees) 0.915 – 0.925 Paling stabil & akurat
XGBoost / LightGBM / CatBoost 0.925 – 0.938 State-of-the-art untuk data tabular
Ensemble (C4.5 + RF + XGBoost) 0.935 – 0.945 Bisa jadi yang tertinggi
Cost-sensitive learning + SMOTE/ADASYN +0.01 – 0.03 Kalau “yes” lebih mahal
Hyperparameter tuning J48 (C, M lebih optimal) +0.005 – 0.015 Masih bisa naik sedikit

Rekomendasi Akhir Saya (untuk produksi nyata di bank):

Tahap Model yang Dipilih Alasan
Tahap 1 (Sekarang) C4.5 (J48 pruned) Interpretable, AUC 0.89+, bisa langsung diekstrak rule untuk campaign
Tahap 2 (3–6 bulan) Random Forest atau XGBoost Akurasi & AUC lebih tinggi, tetap bisa pakai SHAP untuk interpretasi
Tahap 3 (1 tahun+) Ensemble + AutoML Maksimalkan profit

Kesimpulan:

“Dari ketiga algoritma decision tree klasik, C4.5 adalah yang terbaik untuk kasus kita saat ini — akurat, stabil, dan masih mudah dijelaskan ke orang non-teknis.
Namun, kalau kita ingin akurasi dan profit maksimal di masa depan, kita harus naik kelas ke Random Forest / XGBoost yang bisa naik lagi 4–5% poin AUC (setara puluhan sampai ratusan miliar tambahan deposit).”


Referensi