‹ Daftar slidePertemuan 8: Metode Analitik Lanjut: Klasifikasi (Decision Tree & Naive Bayes)
Prodi Bisnis Digital · FEB UNDIP
Laboratorium Sains Data
Pertemuan 8: Metode Analitik Lanjut — Klasifikasi (Decision Tree & Naive Bayes)
Dari data berlabel ke keputusan otomatis: bagaimana mesin "belajar" memisahkan nasabah lancar dari yang macet, email spam dari yang bukan.
RPS minggu 9 · 2x50 menit
Bagian 1 dari 3
Mengenal Klasifikasi & Decision Tree
Konsep dasar klasifikasi, lalu membedah cara kerja pohon keputusan langkah demi langkah menggunakan Entropy dan Information Gain.
Tujuan Pembelajaran Hari Ini
Setelah pertemuan ini, Anda diharapkan mampu:
Konsep
Menjelaskan perbedaan klasifikasi dengan klastering & regresi, serta cara kerja Decision Tree dan Naive Bayes.
Hitungan
Menghitung Entropy, Information Gain, dan probabilitas Bayes secara manual dari data sederhana.
Evaluasi
Membaca confusion matrix dan menghitung akurasi, presisi, serta recall model klasifikasi.
Praktik
Mengenali alur kerja implementasi kedua algoritma memakai scikit-learn di Python untuk kasus bisnis nyata.
Apa Itu Klasifikasi?
Klasifikasi adalah teknik supervised learning (belajar dari data yang sudah berlabel) untuk memprediksi kategori/kelas suatu data baru berdasarkan pola dari data historis.
Regresi (P7)
Prediksi angka kontinu
Contoh: memprediksi omzet toko bulan depan (Rp).
Klastering (P5)
Kelompokkan data TANPA label
Contoh: mengelompokkan pelanggan Tokopedia jadi 3 segmen belanja.
Klasifikasi (P8)
Prediksi kategori DENGAN label
Contoh: memprediksi status kredit "lunas" atau "macet".
Studi Kasus: Mengapa Ini Penting?
Perbankan & Fintech
BRI & BCA menilai kelayakan kredit dalam hitungan detik
OVO & GoPay mendeteksi transaksi mencurigakan (fraud)
Kredit macet yang lolos = kerugian langsung bagi bank
E-Commerce & UMKM
Tokopedia & Shopee menyaring email/pesan spam ke penjual
Klasifikasi ulasan produk: positif vs negatif
UMKM memprediksi risiko pelanggan gagal bayar (paylater)
Inti masalah bisnis hari ini: dari data riwayat nasabah/pelanggan, bisa kah kita memprediksi kategori untuk kasus baru secara otomatis dan konsisten?
Decision Tree: Anatomi Pohon Keputusan
Decision Tree mengklasifikasikan data lewat serangkaian pertanyaan ya/tidak yang disusun bertingkat, seperti alur wawancara petugas kredit.
Tantangannya: atribut mana yang harus ditanyakan lebih dulu (jadi root)? Jawabannya lewat ukuran Entropy & Information Gain — dua slide berikut.
Entropy: Mengukur "Ketidakteraturan" Data
Entropy mengukur seberapa campur-aduk label dalam satu kumpulan data. Semakin campur (mendekati 50:50), semakin tinggi entropy-nya (maks = 1 untuk 2 kelas).
Entropy(S) = −Σ pi × log2(pi)
Entropy Rendah (~0)
Semua data satu kelas saja, misalnya 10 dari 10 nasabah "lunas". Sudah murni, tidak perlu ditanya lagi.
Entropy Tinggi (~1)
Data campur rata, misalnya 5 "lunas" & 5 "macet". Masih sangat tidak pasti, perlu pertanyaan lanjutan.
Hitung dari Nol #1: Entropy Data Awal
Data 10 pengajuan pinjaman UMKM: 6 Disetujui (Ya), 4 Ditolak (Tidak). Hitung Entropy(S) sebelum di-split.
Langkah
Perhitungan
Nilai
1. Proporsi "Ya"
6 ÷ 10
0,60 (60%)
2. Proporsi "Tidak"
4 ÷ 10
0,40 (40%)
3. log&sub2;(0,60)
ln(0,6) ÷ ln(2)
−0,737
4. log&sub2;(0,40)
ln(0,4) ÷ ln(2)
−1,322
5. Entropy(S)
−(0,6×−0,737) − (0,4×−1,322)
0,442 + 0,529
Entropy(S)
0,971
bit — hampir maksimum (data masih campur)
Information Gain: Memilih Split Terbaik
Information Gain (IG) mengukur seberapa besar entropy berkurang setelah data dipisah berdasarkan satu atribut. Atribut dengan IG tertinggi dipilih sebagai node berikutnya.
Analogi: petugas kredit mencoba beberapa pertanyaan (riwayat kredit? penghasilan? tanggungan?) — pertanyaan yang paling "memisahkan" nasabah lunas vs macet dipakai duluan. Itulah atribut dengan IG tertinggi.
Hitung dari Nol #2: Information Gain "Riwayat Kredit"
Split berdasarkan Riwayat Kredit: Baik (6 data: 5 Ya/1 Tidak), Buruk (4 data: 1 Ya/3 Tidak).
Langkah
Perhitungan
Nilai
1. Entropy(Baik)
5 Ya/1 Tidak dari 6 data
0,650
2. Entropy(Buruk)
1 Ya/3 Tidak dari 4 data
0,811
3. Bobot × Entropy(Baik)
(6÷10) × 0,650
0,390
4. Bobot × Entropy(Buruk)
(4÷10) × 0,811
0,324
5. Entropy setelah split
0,390 + 0,324
0,714
6. Information Gain
0,971 (Entropy(S)) − 0,714
0,257
IG (Riwayat Kredit)
0,257
bit — dibandingkan atribut lain, tertinggi → jadi ROOT NODE
Coba Sendiri: Hitung Entropy & Information Gain
Ubah jumlah data disetujui/ditolak pada tiap kelompok split dan lihat entropy serta information gain terhitung otomatis.
Walkthrough: Membangun Pohon Keputusan
Proses Bertahap (Algoritma ID3 Sederhana)
Langkah 1 — Hitung Entropy(S) seluruh data: 0,971 (sudah dihitung).
Langkah 2 — Hitung IG untuk setiap kandidat atribut (Riwayat Kredit = 0,257; atribut lain misal Penghasilan = 0,150).
Langkah 3 — Pilih atribut dengan IG tertinggi → Riwayat Kredit jadi root node.
Langkah 4 — Cabang "Baik" (Entropy 0,650, masih sedikit campur) → ulangi Langkah 1–3 dengan atribut tersisa, atau hentikan & beri label mayoritas ("Ya", 5 dari 6).
Langkah 5 — Cabang "Buruk" (Entropy 0,811) → label mayoritas ("Tidak", 3 dari 4). Pohon selesai (kedalaman 1, untuk contoh mengajar).
Coba Sendiri: Bangun Pohon Keputusan Anda Sendiri
Pilih atribut split di tiap langkah dan lihat pohon terbentuk cabang demi cabang sampai daun-daunnya berlabel.
Jebakan Decision Tree: Overfitting
Jika pohon dibiarkan terus bercabang sampai setiap daun 100% murni, pohon jadi terlalu "hafal" data latih — disebut overfitting.
Pohon Terlalu Dalam
Akurasi data latih ~100%, tapi buruk pada data baru — seperti mahasiswa menghafal soal ujian tahun lalu persis, gagal saat soal diubah sedikit.
Solusi: Pruning
Pruning (pemangkasan) = batasi kedalaman pohon (max_depth) atau jumlah data minimum per cabang, agar pohon lebih "umum" dan generalisasi baik.
Pohon yang sempurna di data latih belum tentu baik di dunia nyata — inilah alasan bagian evaluasi model (slide selanjutnya) sangat penting.
Bagian 2 dari 3
Naive Bayes
Algoritma klasifikasi berbasis probabilitas — cara kerja mesin penyaring spam yang Anda pakai setiap hari.
Peluang awal suatu kelas sebelum melihat fitur apa pun, dihitung dari proporsi data latih.
P(Fitur | Kelas) — Likelihood
Peluang fitur muncul jika kita sudah tahu kelasnya (dihitung dari data latih).
Kenapa disebut "naive" (naif)? Karena algoritma ini mengasumsikan semua fitur saling bebas (independen) — asumsi yang secara realistis jarang 100% benar, tapi hasilnya tetap sangat berguna di praktik.
Hitung dari Nol #3: Klasifikasi Email "GRATIS"
Data latih 10 email: 4 Spam, 6 Bukan Spam. Email baru mengandung kata "GRATIS" — spam atau bukan?
Langkah
Perhitungan
Nilai
1. Prior P(Spam)
4 ÷ 10
0,40
2. Prior P(Bukan Spam)
6 ÷ 10
0,60
3. Likelihood P(GRATIS|Spam)
3 dari 4 email spam
0,75
4. Likelihood P(GRATIS|Bukan)
1 dari 6 email bukan-spam
0,167
5. Skor Spam
0,40 × 0,75
0,300
6. Skor Bukan Spam
0,60 × 0,167
0,100
7. P(Spam|GRATIS) ternormalisasi
0,300 ÷ (0,300+0,100)
75%
Keputusan
SPAM
skor 75% vs 25% — email diklasifikasikan spam
Coba Sendiri: Klasifikasikan Email dengan Naive Bayes
Ubah jumlah email spam/bukan-spam yang mengandung kata tertentu, lalu lihat probabilitas akhirnya terhitung otomatis.
Decision Tree vs Naive Bayes: Kapan Pakai Mana?
Aspek
Decision Tree
Naive Bayes
Dasar logika
Aturan bertingkat (Entropy/IG)
Probabilitas (Teorema Bayes)
Mudah dijelaskan ke atasan?
Sangat mudah (mirip flowchart)
Perlu penjelasan konsep peluang
Cocok untuk data
Fitur campuran (angka & kategori)
Teks/kata (ribuan fitur), cepat
Risiko utama
Overfitting jika terlalu dalam
Asumsi independensi kurang realistis
Contoh aplikasi
Skoring kredit, churn
Spam filter, sentimen ulasan
Tidak ada yang "paling benar" — pilih berdasarkan jenis data & kebutuhan (interpretasi vs kecepatan).
Bagian 3 dari 3
Evaluasi Model & Praktik di Python
Bagaimana kita tahu model klasifikasi kita "bagus"? Dan bagaimana menerapkannya dengan scikit-learn.
Glosarium: TP=Prediksi benar "Ya", TN=Prediksi benar "Tidak", FP=Salah bilang "Ya" (padahal Tidak), FN=Salah bilang "Tidak" (padahal Ya).
Coba Sendiri: Hitung Akurasi, Presisi & Recall
Ubah angka True Positive, True Negative, False Positive, dan False Negative, lalu lihat semua metrik evaluasi terhitung otomatis.
Implementasi di Python (scikit-learn)
Alur Kerja Standar
1. Siapkan data — pisahkan fitur (X) dan label (y), lalu train_test_split() jadi data latih & uji.
2. Panggil model — DecisionTreeClassifier(max_depth=3) atau GaussianNB() dari sklearn.
3. Latih — model.fit(X_train, y_train) — di sinilah semua hitungan Entropy/Bayes tadi terjadi otomatis.
4. Prediksi & evaluasi — model.predict(X_test), lalu bandingkan dengan confusion_matrix() & classification_report().
Library melakukan hitungan Entropy/IG/Bayes secara otomatis dalam sepersekian detik — tapi memahami hitungan manual tadi membuat Anda bisa membaca & mempertanggungjawabkan hasilnya, bukan sekadar "tempel-jalankan" kode.