Program Studi Bisnis Digital • FEB UNDIP
Machine Learning in Finance
Pertemuan 12 — Logistic Regression, Decision Tree, dan Random Forest Dari regresi klasifikasi biner hingga ensemble pohon keputusan: tiga model supervised learning untuk memprediksi gagal bayar, klasifikasi risiko, dan keputusan kredit di dunia keuangan.
RPS MINGGU 13 • 2 × 50 MENIT
Selamat datang di pertemuan ke-12, Anda akan mempelajari tiga model klasifikasi yang paling banyak dipakai di industri keuangan: logistic regression, decision tree, dan random forest. Bayangkan Anda bekerja di bagian credit scoring BCA atau fintech seperti Kredivo — tugas Anda setiap hari adalah memutuskan apakah calon peminjam akan gagal bayar atau tidak, dan model-model inilah yang menjadi mesin di balik keputusan itu. Berbeda dari regresi linear yang memprediksi angka kontinu seperti harga saham, hari ini kita fokus pada prediksi kategori: ya/tidak, layak/tidak layak, naik/turun. Siapkan diri Anda karena materi ini akan langsung dipakai di studi kasus praktik pada pertemuan berikutnya, jadi pastikan Anda memahami logika dasarnya, bukan sekadar menghafal rumus. Tujuan Pembelajaran Hari Ini Sub-CPMK: mahasiswa mampu menerapkan teknik supervised learning untuk klasifikasi data keuangan.
TUJUAN 1
PAHAMI KLASIFIKASI
Membedakan masalah klasifikasi (kategori: ya/tidak) dari regresi (angka kontinu) dalam konteks keuangan.
TUJUAN 2
TIGA MODEL INTI
Menjelaskan cara kerja logistic regression , decision tree , dan random forest serta kapan masing-masing dipakai.
TUJUAN 3
HITUNG MANUAL
Menghitung probabilitas logistic regression dan Gini impurity pohon keputusan secara manual dari data kecil.
TUJUAN 4
EVALUASI MODEL
Membaca metrik akurasi , confusion matrix , dan memahami mengapa random forest lebih stabil dari satu pohon tunggal.
Ada empat tujuan yang ingin kita capai bersama pada pertemuan ini, Anda perlu memegang keempatnya sebagai peta jalan. Pertama, Anda harus bisa membedakan soal klasifikasi dari soal regresi yang sudah kita pelajari sebelumnya — jika sebelumnya kita memprediksi harga saham besok, sekarang kita memprediksi apakah nasabah gagal bayar atau tidak. Kedua, Anda akan memahami tiga model secara konseptual sekaligus praktis, bukan hanya rumus di atas kertas. Ketiga, kita akan menghitung manual dengan angka kecil supaya Anda benar-benar mengerti apa yang terjadi di balik layar sebelum menyerahkannya ke Python. Terakhir, Anda akan belajar cara menilai apakah model kita bagus atau tidak, karena model yang akurasinya tinggi di atas kertas bisa saja menyesatkan kalau tidak dibaca dengan benar. Mengapa Klasifikasi Penting di Dunia Keuangan? Banyak keputusan finansial sebenarnya adalah pertanyaan ya/tidak , bukan "berapa".
KREDIT
GAGAL BAYAR?
Bank BRI menilai ribuan pengajuan KUR harian — layak atau tidak layak disetujui.
FRAUD
TRANSAKSI MENCURIGAKAN?
GoPay/OVO mendeteksi transaksi tidak wajar dalam hitungan detik dari jutaan transaksi.
SAHAM
NAIK ATAU TURUN?
Trader algoritmik memprediksi arah harga BBCA besok: naik atau turun, bukan angka pastinya.
Ketiga model hari ini — logistic regression, decision tree, random forest — adalah "mesin" paling umum di balik keputusan otomatis semacam ini di industri fintech dan perbankan Indonesia.
Coba Anda pikirkan, berapa banyak keputusan keuangan sehari-hari yang sebenarnya berbentuk pertanyaan ya-atau-tidak. Ketika BRI memutuskan menyetujui KUR untuk pedagang di pasar tradisional, itu adalah klasifikasi biner: layak atau tidak layak. Ketika aplikasi GoPay mendeteksi ada transaksi aneh di akun Anda dan langsung memblokirnya sementara, di balik layar ada model klasifikasi yang bekerja dalam hitungan milidetik. Bahkan di pasar modal, banyak trader algoritmik yang tidak repot memprediksi harga BBCA persis di angka berapa, mereka cukup memprediksi arahnya saja, naik atau turun. Inilah alasan mengapa klasifikasi menjadi salah satu keterampilan machine learning paling dicari di industri keuangan Indonesia saat ini. Klasifikasi vs Regresi: Mengingat Kembali Anda sudah bertemu regresi (OLS) di awal semester. Klasifikasi mirip tapi outputnya berbeda .
Aspek Regresi (mis. OLS) Klasifikasi (hari ini) Output Angka kontinu (mis. harga saham Rp 8.750) Kategori/kelas (mis. "gagal bayar" / "lancar") Contoh kasus Memprediksi return portofolio bulan depan Memprediksi status kredit nasabah Ukuran kesalahan RMSE, MAE (jarak angka) Akurasi, confusion matrix Model hari ini — Logistic regression, decision tree, random forest
Mari kita kaitkan dengan apa yang sudah Anda pelajari sebelumnya di mata kuliah ini, yaitu OLS dan model time series untuk forecasting. Di sana, output model adalah angka — misalnya harga saham besok diperkirakan Rp 8.750. Hari ini kita masuk ke dunia yang berbeda: outputnya bukan angka, melainkan kategori atau kelas, seperti "gagal bayar" versus "lancar", atau "fraud" versus "bukan fraud". Cara mengukur kesalahannya pun berbeda — kalau regresi kita pakai RMSE yang mengukur jarak angka, klasifikasi kita pakai akurasi dan confusion matrix yang mengukur berapa banyak tebakan benar dan salah. Perbedaan mendasar ini penting Anda pegang karena akan menentukan model mana yang tepat dipakai untuk masalah bisnis tertentu. Bagian 1 dari 4
Logistic Regression
Model klasifikasi biner paling fundamental — mengubah probabilitas menjadi keputusan ya/tidak menggunakan kurva berbentuk S.
Kita masuk ke bagian pertama, yaitu logistic regression, model klasifikasi paling dasar dan paling banyak dipakai sebagai baseline di industri keuangan. Meskipun namanya mengandung kata "regression", jangan tertipu — model ini sebenarnya dipakai untuk klasifikasi, bukan memprediksi angka kontinu. Anda akan melihat bagaimana model ini mengubah kombinasi variabel prediktor menjadi sebuah probabilitas antara 0 dan 1, lalu probabilitas itu diterjemahkan menjadi keputusan biner. Banyak model credit scoring di bank-bank Indonesia, termasuk BRI dan Bank Mandiri, masih menggunakan logistic regression sebagai fondasi karena sifatnya yang mudah diinterpretasi oleh auditor dan regulator OJK. Apa itu Logistic Regression? Model yang memprediksi probabilitas suatu kejadian (0 sampai 1), lalu diklasifikasi jadi kelas biner.
Jika kita pakai OLS untuk memprediksi "gagal bayar" (0/1), hasil prediksinya bisa di bawah 0 atau di atas 1 — tidak masuk akal sebagai probabilitas.
Logistic regression membungkus hasil linear dengan fungsi sigmoid (kurva-S) sehingga output selalu berada di rentang 0–1, valid sebagai probabilitas.
$$P(y=1) = \sigma(z) = \frac{1}{1 + e^{-z}}, \quad z = \beta_0 + \beta_1 x$$
Bayangkan Anda mencoba memprediksi apakah nasabah akan gagal bayar dengan regresi linear biasa — masalahnya, garis lurus OLS bisa menghasilkan angka minus 0,3 atau 1,5, padahal probabilitas seharusnya hanya berada di antara 0 dan 1. Ini yang membuat OLS tidak cocok untuk klasifikasi. Logistic regression menyelesaikan masalah ini dengan membungkus hasil linear ke dalam fungsi sigmoid, sebuah kurva berbentuk huruf S yang selalu memampatkan output ke rentang 0 sampai 1. Semakin besar nilai di dalam kurung, semakin dekat probabilitasnya ke 1; semakin negatif, semakin dekat ke 0. Formula ini terlihat rumit, tapi intinya sederhana — kita mengubah kombinasi linear variabel menjadi probabilitas yang masuk akal. Kurva Sigmoid: Dari Skor Mentah ke Probabilitas Berapa pun nilai skor mentah (sumbu-x), sigmoid selalu memetakannya ke rentang 0–1 (sumbu-y).
Skor mentah (β₀ + β₁x) P=1 P=0 skor = 0 P = 0,50 (titik potong) Diklasifikasi: 1 Diklasifikasi: 0 Ambang batas (threshold ) default biasanya P ≥ 0,50 → diklasifikasikan kelas 1 (mis. "berpotensi gagal bayar").
Perhatikan bentuk kurva ini baik-baik, karena inilah jantung dari logistic regression. Di ujung kiri, ketika skor mentahnya sangat negatif, probabilitasnya mendekati nol — artinya model sangat yakin kelasnya nol. Di ujung kanan, ketika skornya sangat positif, probabilitasnya mendekati satu. Titik paling menarik ada di tengah, saat skor mentahnya nol, probabilitasnya tepat 0,50 — ini adalah titik potong keputusan. Dalam praktik credit scoring, bank biasanya menetapkan ambang batas ini, misalnya jika probabilitas gagal bayar di atas 0,50 maka pengajuan kredit ditolak, dan Anda akan melihat nanti bahwa ambang batas ini bisa digeser sesuai selera risiko masing-masing lembaga keuangan. Hitung dari Nol #1 — Probabilitas Logistic Regression Kasus: bank menilai gagal bayar dari rasio utang. Model: $\beta_0 = -3$, $\beta_1 = 4$, $x$ = rasio utang terhadap pendapatan $= 0{,}9$.
Langkah Perhitungan Nilai 1. Skor mentah (z) $z = \beta_0 + \beta_1 x = -3 + (4 \times 0{,}9)$ $z = 0{,}6$ 2. Pangkat $e^{-z}$ $e^{-0{,}6}$ $\approx 0{,}5488$ 3. Penyebut $(1 + e^{-z})$ $1 + 0{,}5488$ $1{,}5488$ 4. Probabilitas $\sigma(z) = \dfrac{1}{1+e^{-z}}$ $\dfrac{1}{1{,}5488}$ $P \approx 0{,}646$
Karena P (0,646) > ambang 0,50 → nasabah ini diklasifikasikan berpotensi gagal bayar .
Sekarang kita hitung sendiri langkah demi langkah supaya Anda benar-benar paham, bukan sekadar percaya pada output Python. Bayangkan sebuah bank menilai pengajuan kredit dengan model sederhana yang punya dua parameter, beta nol negatif tiga dan beta satu empat, dan calon nasabah punya rasio utang terhadap pendapatan sebesar 0,9. Langkah pertama, kita hitung skor mentahnya dengan mengalikan dan menjumlahkan seperti regresi linear biasa, hasilnya 0,6. Langkah kedua, kita masukkan ke fungsi eksponensial negatif, menghasilkan sekitar 0,5488. Langkah ketiga kita tambahkan satu, lalu langkah terakhir kita bagi satu dengan angka itu, menghasilkan probabilitas 0,646 atau sekitar 64,6 persen. Karena angka ini di atas ambang batas 0,50, model akan mengklasifikasikan nasabah ini sebagai berpotensi gagal bayar — perhatikan bagaimana angka probabilitas mentah akhirnya diterjemahkan menjadi keputusan bisnis yang konkret. Membaca Koefisien: Arah, Bukan Cuma Besaran Tanda koefisien (β) menunjukkan arah pengaruh variabel terhadap probabilitas kelas 1.
β POSITIF
MENAIKKAN P
Rasio utang naik → probabilitas gagal bayar naik . Contoh: β₁ = 4 pada slide sebelumnya.
β NEGATIF
MENURUNKAN P
Lama menjadi nasabah (tahun) naik → probabilitas gagal bayar biasanya turun (nasabah loyal lebih terpercaya).
Berbeda dari OLS, besaran β logistic regression tidak langsung berarti "kenaikan probabilitas sekian persen" — itu perlu transformasi tambahan (odds ratio ), di luar cakupan hari ini.
Satu hal penting yang perlu Anda pahami sebagai calon analis data keuangan adalah cara membaca tanda koefisien beta. Kalau koefisiennya positif, artinya semakin besar nilai variabel tersebut, semakin besar pula probabilitas masuk ke kelas 1 — misalnya rasio utang yang tinggi menaikkan probabilitas gagal bayar, itu masuk akal secara bisnis. Sebaliknya kalau koefisiennya negatif, variabel itu justru menurunkan probabilitas kelas 1, misalnya lama menjadi nasabah yang biasanya berkorelasi dengan loyalitas dan risiko lebih rendah. Yang perlu Anda hati-hati adalah, besaran angka beta itu sendiri tidak bisa langsung dibaca sebagai persentase kenaikan probabilitas — ada transformasi matematis lain yang disebut odds ratio untuk itu, tapi itu di luar cakupan kita hari ini, cukup Anda pahami arah pengaruhnya dulu. Bagian 2 dari 4
Decision Tree
Model yang meniru cara manusia mengambil keputusan: serangkaian pertanyaan ya/tidak yang bercabang seperti pohon.
Sekarang kita beralih ke model kedua, decision tree atau pohon keputusan, yang cara kerjanya justru sangat intuitif dan mirip logika manusia sehari-hari. Bayangkan seorang customer service Bank Mandiri yang menilai pengajuan kredit dengan bertanya berurutan: apakah penghasilan di atas Rp 5 juta? Jika ya, apakah punya riwayat kredit macet? Begitu seterusnya sampai sampai pada keputusan akhir. Decision tree pada dasarnya mengotomatisasi logika bertanya berurutan ini dari data, dan menariknya, model ini sangat mudah divisualisasikan dan dijelaskan kepada orang non-teknis, termasuk kepada nasabah atau auditor yang bertanya "kenapa pengajuan saya ditolak?" Anatomi Sebuah Decision Tree Pohon terdiri dari node (pertanyaan), cabang (jawaban), dan leaf/daun (keputusan akhir).
Root node Penghasilan > Rp 5jt? Ya Tidak Internal node Riwayat macet? Leaf (daun) Tolak Ya Tidak Leaf (daun) Tolak Leaf (daun) Setujui Perhatikan struktur pohon ini, yang bercabang dari atas ke bawah seperti akar pohon terbalik. Di paling atas ada root node, pertanyaan pertama yang menyaring seluruh data — misalnya "apakah penghasilan di atas Rp 5 juta?". Jika jawabannya tidak, kita langsung sampai di daun "tolak" tanpa perlu bertanya lagi. Tapi jika jawabannya ya, pohon bertanya lagi ke internal node berikutnya, misalnya soal riwayat kredit macet, sampai akhirnya kita sampai di daun paling bawah yang berisi keputusan final: setujui atau tolak. Setiap kali kita sampai di sebuah leaf atau daun, itu artinya pohon sudah selesai bertanya dan siap memberi keputusan. Model inilah yang membuat decision tree begitu mudah dijelaskan — Anda tinggal menelusuri jalur pertanyaannya satu per satu. Bagaimana Pohon Memilih Pertanyaan Terbaik? Pohon memilih pertanyaan (split ) yang membuat kelompok hasil paling "murni" (seragam kelasnya) — diukur dengan Gini impurity .
$\text{Gini} = 1 - p_1^{2} - p_2^{2} = 1 - \sum_{k=1}^{K} p_k^{2}$
GINI = 0
MURNI SEMPURNA
Semua anggota kelompok satu kelas saja (mis. semua "lancar"). Split ideal.
GINI = 0,50
PALING CAMPUR
Kelompok terbagi 50:50 antara dua kelas — split ini tidak informatif.
Pertanyaan yang mungkin muncul di benak Anda: dari ribuan kemungkinan pertanyaan yang bisa diajukan, bagaimana pohon memilih yang terbaik? Jawabannya adalah dengan mengukur kemurnian atau "impurity" hasil pembagian menggunakan rumus yang disebut Gini impurity. Nilai Gini berkisar dari nol sampai 0,50 untuk kasus dua kelas — semakin dekat ke nol, semakin murni atau seragam kelompok hasilnya, artinya split tersebut sangat informatif dalam memisahkan kelas. Sebaliknya, jika Gini-nya 0,50, itu artinya kelompok tersebut terbagi rata 50 banding 50 antara dua kelas, yang berarti pertanyaan itu praktis tidak membantu memisahkan apa pun. Algoritma pohon akan mencoba semua kemungkinan pertanyaan pada setiap variabel dan memilih yang menghasilkan penurunan Gini paling besar, dan proses ini diulang di setiap cabang secara rekursif. Hitung dari Nol #2 — Gini Impurity Kasus: kelompok 10 nasabah setelah split "penghasilan > Rp 5 juta = ya" → 8 lancar, 2 gagal bayar.
Langkah Perhitungan Nilai 1. Proporsi kelas "lancar" ($p_1$) $\dfrac{8}{10}$ $p_1 = 0{,}80$ 2. Proporsi kelas "gagal bayar" ($p_2$) $\dfrac{2}{10}$ $p_2 = 0{,}20$ 3. Kuadrat tiap proporsi $0{,}80^{2} = 0{,}64$ & $0{,}20^{2} = 0{,}04$ $0{,}64$ dan $0{,}04$ 4. $\text{Gini} = 1 - \sum p_k^{2}$ $1 - (0{,}64 + 0{,}04)$ $\text{Gini} = 0{,}32$
Gini 0,32 jauh di bawah 0,50 → split ini cukup baik memisahkan nasabah lancar dari gagal bayar.
Mari kita praktikkan langsung dengan angka konkret supaya rumus Gini tadi tidak terasa abstrak. Bayangkan setelah pohon bertanya "apakah penghasilan di atas Rp 5 juta", terkumpul 10 nasabah dalam kelompok jawaban ya, dengan rincian 8 orang berstatus lancar dan 2 orang gagal bayar. Langkah pertama kita hitung proporsi masing-masing kelas, 8 dari 10 sama dengan 0,80 untuk lancar, dan 2 dari 10 sama dengan 0,20 untuk gagal bayar. Langkah kedua kita kuadratkan masing-masing proporsi itu, menghasilkan 0,64 dan 0,04. Langkah terakhir kita jumlahkan kedua kuadrat itu lalu kurangkan dari satu, hasilnya 0,32. Karena 0,32 jauh lebih kecil dari 0,50, kita bisa simpulkan split "penghasilan di atas Rp 5 juta" ini cukup efektif memisahkan nasabah lancar dari yang berisiko gagal bayar, dan pohon akan cenderung memilih pertanyaan semacam ini. Coba Sendiri: Uji Split Terbaik lewat Gini Coba beberapa titik split berbeda pada data nasabah dan amati bagaimana nilai Gini impurity berubah untuk menentukan split mana yang terbaik.
🧪 Buka simulator decision tree penuh (rumus + contoh + FAQ)
Silakan satu dari Anda maju dan coba geser titik split penghasilan di widget ini, lalu perhatikan angka Gini impurity berubah naik-turun tergantung seberapa bersih pemisahan antara nasabah lancar dan gagal bayar. Tunjuk split mana yang menghasilkan Gini paling rendah, karena itulah pertanyaan yang akan dipilih pohon secara otomatis. Coba juga bandingkan dengan variabel lain seperti usia, apakah split-nya menghasilkan Gini lebih baik atau lebih buruk dibanding penghasilan tadi. Bahaya Decision Tree: Overfitting Pohon yang dibiarkan tumbuh tanpa batas akan "menghafal" data latih, bukan mempelajari pola umum.
POHON TERLALU DALAM
HAFAL, TIDAK BELAJAR
Akurasi data latih bisa 100%, tapi meleset jauh pada data baru — seperti mahasiswa yang menghafal soal ujian tahun lalu persis, gagal saat soal diubah sedikit.
SOLUSI UMUM
BATASI KEDALAMAN
Tetapkan max depth (kedalaman maksimum) atau jumlah minimum sampel per daun agar pohon tidak terlalu spesifik ke data latih.
Overfitting adalah alasan utama mengapa satu decision tree jarang dipakai sendirian di produksi — solusinya ada di bagian berikutnya: random forest .
Decision tree punya kelemahan besar yang harus Anda waspadai: kecenderungan overfitting, atau menghafal data latih terlalu detail. Bayangkan pohon dibiarkan terus bercabang sampai setiap daun hanya berisi satu nasabah saja — akurasinya di data latih bisa sempurna 100 persen, tapi begitu diuji pada nasabah baru yang belum pernah dilihat, performanya jeblok. Ini mirip mahasiswa yang menghafal persis soal ujian tahun lalu kata per kata, tapi begitu dosen mengubah sedikit angka di soal, dia langsung kebingungan karena tidak benar-benar memahami konsepnya. Solusi paling umum adalah membatasi kedalaman pohon atau menetapkan jumlah minimum sampel di setiap daun. Namun ada solusi yang jauh lebih elegan dan powerful, yang akan kita bahas di bagian selanjutnya: menggabungkan banyak pohon sekaligus menjadi random forest. Bagian 3 dari 4
Random Forest
"Kebijaksanaan orang banyak" diterapkan ke machine learning — ratusan pohon keputusan yang saling melengkapi kelemahan satu sama lain.
Sekarang kita masuk ke bagian ketiga, random forest, yang bisa dibilang solusi elegan atas kelemahan decision tree tunggal yang baru saja kita bahas. Ide dasarnya sederhana tapi powerful: daripada mengandalkan satu pohon yang mudah overfitting, kenapa tidak membuat ratusan pohon sekaligus dan menggabungkan suara mereka? Konsep ini sering disebut "wisdom of the crowd" atau kebijaksanaan orang banyak — sama seperti ketika Anda bertanya ke 100 orang berbeda tentang prediksi harga saham, rata-rata jawaban mereka biasanya lebih akurat daripada tebakan satu orang paling pintar sekalipun. Random forest adalah salah satu model yang paling sering dipakai di kompetisi data science dan industri finansial karena akurasinya tinggi sekaligus relatif tahan terhadap overfitting. Random Forest: Banyak Pohon, Satu Keputusan Membangun banyak decision tree yang masing-masing sedikit berbeda, lalu menggabungkan hasilnya lewat voting .
Bootstrap sampling — tiap pohon dilatih dengan sampel data yang diambil acak (dengan pengembalian) dari data asli, bukan data yang sama persis.Random feature selection — tiap pertanyaan/split hanya boleh memilih dari subset variabel acak, bukan semua variabel sekaligus.Hasil akhir klasifikasi = voting mayoritas dari semua pohon. Jika 70 dari 100 pohon memprediksi "gagal bayar", maka keputusan akhir = gagal bayar.
Perhatikan dua sumber keacakan yang membuat random forest bekerja dengan baik. Pertama, bootstrap sampling — setiap pohon di dalam forest tidak dilatih dengan data yang sama persis, melainkan sampel acak dengan pengembalian dari data asli, sehingga setiap pohon "melihat" versi data yang sedikit berbeda. Kedua, random feature selection — setiap kali pohon hendak bertanya atau melakukan split, ia hanya diperbolehkan memilih dari sebagian variabel secara acak, bukan seluruh variabel yang tersedia. Kombinasi dua keacakan ini membuat setiap pohon di dalam forest menjadi unik dan tidak saling meniru kesalahan yang sama. Setelah semua pohon selesai dilatih, keputusan akhirnya diambil lewat voting mayoritas — bayangkan seperti pemungutan suara di rapat RT, jika mayoritas pohon bilang "gagal bayar", itulah keputusan final forest. Walkthrough — Mengapa Voting Mengurangi Overfitting? Ikuti alur berikut untuk memahami intuisi "kesalahan saling menetralkan" dalam random forest.
Tahap Apa yang terjadi 1. Satu pohon tunggal Overfitting ke pola khusus di data latihnya sendiri → rentan salah pada data baru. 2. 100 pohon dilatih beda-beda Tiap pohon overfitting ke arah berbeda-beda (karena bootstrap + fitur acak) — kesalahannya tidak seragam. 3. Voting mayoritas Kesalahan acak antar-pohon saling "membatalkan" saat divoting; pola sungguhan yang konsisten tetap menang. 4. Hasil forest Prediksi lebih stabil & akurat pada data baru dibanding satu pohon mana pun.
Mari kita telusuri langkah demi langkah kenapa mekanisme voting ini secara matematis masuk akal, bukan sekadar trik. Tahap pertama, kita tahu satu pohon tunggal cenderung overfitting, menghafal kekhususan data latihnya sendiri termasuk noise atau kebisingan yang sebenarnya tidak relevan. Tahap kedua, karena setiap pohon di forest dilatih dengan sampel data dan subset variabel yang berbeda-beda, kesalahan overfitting masing-masing pohon juga mengarah ke arah yang berbeda-beda, tidak seragam. Tahap ketiga, inilah kuncinya — ketika kita menggabungkan lewat voting, kesalahan-kesalahan acak yang arahnya berbeda-beda itu cenderung saling menetralkan satu sama lain, sementara pola yang benar-benar konsisten dan nyata di data akan tetap muncul sebagai suara mayoritas. Hasilnya, di tahap keempat, prediksi forest jauh lebih stabil dan dapat diandalkan dibandingkan mengandalkan satu pohon saja. Walkthrough — Membaca Feature Importance Bonus random forest: ia bisa memberi tahu variabel mana yang paling berpengaruh terhadap prediksi.
Tahap Apa yang terjadi 1. Tiap pohon mencatat Setiap kali sebuah variabel dipakai untuk split, dicatat seberapa besar penurunan Gini yang dihasilkan. 2. Dirata-rata seluruh forest Penurunan Gini dari satu variabel dirata-rata di ratusan pohon → skor "feature importance". 3. Diurutkan Variabel dengan skor tertinggi = paling berpengaruh terhadap keputusan model (mis. rasio utang sering di puncak). 4. Manfaat bisnis Bank bisa menjelaskan ke OJK/nasabah variabel apa yang paling menentukan keputusan kredit.
Salah satu keunggulan praktis random forest yang sangat dihargai di industri keuangan adalah kemampuannya menghasilkan feature importance, atau peringkat variabel paling berpengaruh. Prosesnya begini — setiap kali sebuah variabel dipakai untuk melakukan split di dalam pohon manapun, sistem mencatat seberapa besar penurunan Gini impurity yang dihasilkan variabel tersebut. Setelah semua pohon selesai dilatih, penurunan Gini dari satu variabel dirata-rata di seluruh ratusan pohon, menghasilkan satu skor feature importance per variabel. Variabel-variabel ini kemudian diurutkan dari yang paling berpengaruh, dan biasanya di kasus credit scoring, rasio utang terhadap pendapatan sering muncul di puncak. Manfaat bisnisnya sangat nyata — ketika OJK atau nasabah bertanya mengapa pengajuan kreditnya ditolak, bank bisa menunjukkan dengan data variabel apa yang paling menentukan keputusan tersebut, bukan sekadar "kata sistem". Perbandingan Tiga Model Aspek Logistic Regression Decision Tree Random Forest Interpretasi Mudah (koefisien & arah) Sangat mudah (jalur pertanyaan) Sedang (feature importance) Akurasi tipikal Sedang Sedang, rawan overfit Tinggi & stabil Kecepatan hitung Sangat cepat Cepat Lebih lambat (banyak pohon) Cocok untuk Baseline, laporan ke regulator Aturan bisnis sederhana Produksi, akurasi prioritas
Sekarang mari kita rangkum ketiga model dalam satu tabel perbandingan agar Anda punya panduan praktis kapan memilih yang mana. Logistic regression unggul dalam interpretasi karena koefisiennya bisa langsung dijelaskan arah pengaruhnya, sangat cocok ketika Anda harus melaporkan model ke OJK atau auditor yang menuntut transparansi. Decision tree paling mudah dipahami secara visual karena Anda tinggal menelusuri jalur pertanyaannya, cocok untuk membuat aturan bisnis sederhana yang bisa dijelaskan ke staf non-teknis, tapi rawan overfitting jika tidak dibatasi. Random forest biasanya memberikan akurasi tertinggi dan paling stabil, namun sedikit lebih lambat dihitung karena melatih ratusan pohon sekaligus, dan interpretasinya tidak sesederhana satu pohon tunggal. Dalam praktik, banyak fintech menggunakan logistic regression sebagai model awal yang wajib dilaporkan ke regulator, sambil menjalankan random forest sebagai model produksi yang lebih akurat. Bagian 4 dari 4
Evaluasi Model & Latihan
Model yang akurat di atas kertas belum tentu berguna — kita perlu cara membaca performa model dengan benar.
Kita masuk ke bagian terakhir hari ini, tentang bagaimana mengevaluasi apakah model klasifikasi kita benar-benar baik atau hanya terlihat baik di permukaan. Ini penting karena angka akurasi tunggal bisa sangat menyesatkan, terutama dalam kasus keuangan seperti deteksi fraud di mana kejadian yang dicari sangat langka dibanding kejadian normal. Anda akan belajar membaca confusion matrix, sebuah tabel sederhana namun sangat informatif yang menunjukkan di mana tepatnya model kita benar dan di mana ia salah. Setelah itu, kita akan tutup pertemuan dengan latihan singkat untuk menguji pemahaman Anda sebelum masuk ke sesi praktik Python pada pertemuan berikutnya. Confusion Matrix: Melihat Lebih dari Sekadar Akurasi Tabel yang memecah prediksi model menjadi empat kemungkinan — penting karena akurasi saja bisa menipu.
Prediksi: Lancar Prediksi: Gagal Bayar Aktual: Lancar True Negative (benar) False Positive (salah tolak) Aktual: Gagal Bayar False Negative (salah, bahaya!) True Positive (benar)
False Negative paling berbahaya di kredit: model bilang "lancar" padahal nasabah sebenarnya akan gagal bayar → bank rugi.
Confusion matrix adalah alat paling penting untuk mengevaluasi model klasifikasi secara jujur, dan Anda wajib menguasainya. Tabel ini membagi hasil prediksi menjadi empat kotak: true negative, ketika model benar memprediksi nasabah lancar; false positive, ketika model salah menolak nasabah yang sebenarnya lancar, ini merugikan dari sisi kehilangan peluang bisnis; false negative, ketika model bilang nasabah lancar padahal sebenarnya akan gagal bayar, ini yang paling berbahaya karena bank akan benar-benar rugi uang; dan terakhir true positive, ketika model benar mendeteksi nasabah yang memang berisiko gagal bayar. Dalam konteks perbankan Indonesia, kesalahan false negative jauh lebih mahal dibanding false positive, karena itu berarti bank menyalurkan kredit ke nasabah yang sebenarnya tidak layak, sehingga banyak bank sengaja mengatur ambang batas probabilitas lebih konservatif untuk meminimalkan false negative. Jebakan Akurasi: Kasus Data Tidak Seimbang Deteksi fraud: dari 1.000 transaksi, hanya 10 yang benar-benar fraud (1%).
MODEL "MALAS"
99% AKURASI
Model yang selalu menebak "bukan fraud" untuk semua transaksi → benar 990 dari 1.000 kali, tapi gagal total mendeteksi fraud sungguhan.
PELAJARAN
AKURASI SAJA TIDAK CUKUP
Untuk kasus data tidak seimbang (fraud, gagal bayar langka), lihat juga recall pada kelas minoritas — bukan hanya akurasi keseluruhan.
Ini adalah salah satu jebakan paling umum yang harus Anda waspadai ketika bekerja dengan data keuangan riil. Bayangkan sebuah sistem deteksi fraud pada platform pembayaran digital, dari 1.000 transaksi hanya ada 10 yang benar-benar fraud, sekitar 1 persen saja. Kalau ada model "malas" yang selalu menebak "bukan fraud" untuk setiap transaksi tanpa terkecuali, model itu akan benar 990 dari 1.000 kali, menghasilkan akurasi 99 persen yang terlihat sangat mengesankan di atas kertas. Tapi model ini sama sekali tidak berguna, karena ia gagal total mendeteksi satu pun fraud sungguhan yang justru menjadi tujuan utama dibangunnya sistem tersebut. Inilah alasan mengapa untuk kasus data yang tidak seimbang seperti fraud atau gagal bayar yang jarang terjadi, Anda perlu melihat metrik lain seperti recall pada kelas minoritas, bukan hanya mengandalkan angka akurasi keseluruhan yang bisa sangat menyesatkan. Coba Sendiri: Regresi Logistik untuk Klasifikasi Regresi linear tidak cocok untuk klasifikasi biner. Regresi logistik memetakan ke probabilitas 0-1 via sigmoid. Geser parameter dan lihat.
Regresi logistik adalah model klasifikasi paling dasar dan paling interpretatif. Widget ini memvisualkan bagaimana sigmoid memetakan linear combination ke probabilitas. Minta mahasiswa geser koefisien dan intercept, lalu amati bagaimana kurva probabilitas dan batas keputusan berubah. Tekankan keunggulan: output probabilitas (bukan hanya label), koefisien interpretatif (odds ratio), dan cocok untuk baseline. Kaitkan ke skor kredit — probabilitas gagal bayar nasabah adalah output natural regresi logistik. Ini jembatan ke decision tree yang lebih fleksibel tapi kurang interpretatif. Coba Sendiri: Confusion Matrix & Metrik Klasifikasi Akurasi saja bisa menipu. Confusion matrix mengurai TP, FP, TN, FN menjadi precision, recall, F1. Hitung metrik untuk kasus kredit.
Confusion matrix adalah alat diagnostik utama untuk mengevaluasi klasifikasi. Widget ini menghitung precision, recall, F1, specificity dari empat sel matriks. Minta mahasiswa input kasus scoring kredit (mis. 1000 nasabah, 50 macet) dan amati bagaimana akurasi 95 persen bisa terjadi padahal model gagal mendeteksi kebangkrutan. Tekankan bahwa di kelas tidak seimbang — kasus khas fraud dan kredit macet — akurasi menipu. Pilih metrik sesuai biaya error: recall tinggi untuk fraud detection (jangan sampai ada yang lolos), precision tinggi untuk pre-screening kredit. Coba Sendiri: Akurasi 99% Tidak Berarti Apa-Apa Saat kelas minoritas sangat kecil, model trivial 'selalu negatif' bisa dapat akurasi 99%. Lihat mengapa dan apa solusinya.
Ketidakseimbangan kelas adalah jebakan utama ML di sektor keuangan. Widget ini menunjukkan bagaimana model naive yang selalu prediksi mayoritas bisa dapat akurasi tinggi tapi gagal total mendeteksi kasus penting. Minta mahasiswa amati kasus fraud detection dengan 1 persen fraud — model trivial dapat akurasi 99 persen tanpa menangkap satu fraud pun. Tekankan solusi: resampling (oversampling minoritas, undersampling mayoritas), class weight, dan metrik alternatif (precision-recall AUC, F1, Cohen kappa). Ini masalah khas di fraud detection, credit scoring, dan churn prediction yang akan kita temui berulang. Latihan Kelas — Diskusikan Berpasangan (10 menit) Sebuah split menghasilkan kelompok 20 nasabah: 15 lancar, 5 gagal bayar. Hitung Gini impurity kelompok ini. Bandingkan dengan hasil slide "Hitung dari Nol #2" (Gini = 0,32) — mana yang lebih murni?
Sebuah fintech P2P lending ingin melaporkan model credit scoring-nya ke OJK dengan penjelasan yang transparan, tapi juga ingin akurasi setinggi mungkin untuk mengurangi kredit macet. Model mana yang Anda rekomendasikan, dan mengapa? Pertimbangkan trade-off interpretasi vs akurasi.
Sekarang giliran Anda mempraktikkan apa yang sudah kita pelajari, silakan berpasangan dengan teman sebelah dan kerjakan dua soal ini dalam waktu 10 menit. Soal pertama menguji kemampuan hitung manual Anda dengan Gini impurity menggunakan angka yang berbeda dari contoh tadi, sehingga Anda benar-benar memahami rumusnya bukan sekadar meniru langkah yang sudah ada. Soal kedua adalah soal konseptual yang mencerminkan dilema nyata yang dihadapi banyak fintech P2P lending di Indonesia — mereka harus mematuhi regulasi OJK yang menuntut transparansi model, tapi juga bersaing dari sisi akurasi dengan kompetitor lain. Coba pikirkan, mungkinkah menggunakan kedua model sekaligus, satu untuk pelaporan dan satu untuk keputusan produksi? Saya akan berkeliling untuk mendengar diskusi Anda, dan kita akan bahas bersama setelah waktu habis. Rangkuman: Cheat Sheet Tiga Model Model Inti Cara Kerja Kata Kunci Logistic Regression Skor linear → sigmoid → probabilitas 0–1 Sigmoid, threshold, koefisien Decision Tree Pertanyaan bercabang, pilih split ber-Gini rendah Node, leaf, Gini impurity Random Forest Banyak tree acak → voting mayoritas Bootstrap, feature importance, voting
Evaluasi model klasifikasi selalu pakai confusion matrix , bukan akurasi saja — terutama untuk kasus data tidak seimbang seperti fraud/gagal bayar.
Mari kita rangkum seluruh materi hari ini dalam satu tabel yang bisa Anda jadikan catatan ringkas untuk belajar kembali sebelum ujian atau sebelum sesi praktik. Logistic regression bekerja dengan mengubah skor linear menjadi probabilitas lewat fungsi sigmoid, lalu dibandingkan dengan ambang batas untuk menentukan kelas. Decision tree bekerja dengan mengajukan serangkaian pertanyaan bercabang, memilih pertanyaan yang menghasilkan Gini impurity paling rendah di setiap langkah. Random forest menggabungkan banyak decision tree yang masing-masing dilatih dengan data dan variabel acak, lalu mengambil keputusan lewat voting mayoritas. Dan yang tidak kalah penting, selalu evaluasi model klasifikasi Anda dengan confusion matrix, bukan hanya angka akurasi tunggal, karena angka akurasi bisa sangat menyesatkan terutama pada kasus data yang tidak seimbang seperti deteksi fraud atau gagal bayar kredit. Sebelum Pertemuan Berikutnya Melanjutkan ke teknik supervised learning lain: K-Nearest Neighbors (KNN) untuk klasifikasi berbasis kedekatan data, serta praktik implementasi Python untuk ketiga model hari ini.
TUGAS PERSIAPAN
BACA & SIAPKAN
Instal Python (scikit-learn) sebelum pertemuan berikutnya; ulangi perhitungan manual sigmoid & Gini di slide 8 dan 13 sampai lancar tanpa melihat catatan.
Sebelum kita tutup pertemuan hari ini, ada dua hal yang perlu Anda siapkan. Pertama, minggu depan kita akan melanjutkan perjalanan teknik supervised learning dengan mempelajari K-Nearest Neighbors atau KNN, model klasifikasi yang bekerja dengan prinsip kedekatan — mirip seperti menilai seseorang dari lingkungan pertemanannya, dan sekaligus kita akan mulai praktik langsung mengimplementasikan ketiga model hari ini menggunakan Python dengan library scikit-learn. Kedua, sebagai persiapan, pastikan Anda sudah menginstal Python beserta library scikit-learn di laptop masing-masing sebelum pertemuan berikutnya, karena kita akan langsung praktik tanpa banyak waktu untuk instalasi. Saya juga sangat menyarankan Anda mengulang perhitungan manual sigmoid dan Gini impurity di slide 8 dan 13 tadi sampai benar-benar lancar tanpa melihat catatan, karena pemahaman konsep dasar ini akan sangat membantu Anda saat men-debug kode Python nanti. Sampai jumpa di pertemuan berikutnya!