stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-08
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 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.

Root Node (Akar)Riwayat: BaikRiwayat: BurukInternal NodeInternal NodeLeaf: SetujuiLeaf: TolakLeaf: TolakLeaf: Setujui

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.

LangkahPerhitunganNilai
1. Proporsi "Ya"6 ÷ 100,60 (60%)
2. Proporsi "Tidak"4 ÷ 100,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.

IG(S, A) = Entropy(S) − Σ (|Sv| ÷ |S|) × Entropy(Sv)
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).

LangkahPerhitunganNilai
1. Entropy(Baik)5 Ya/1 Tidak dari 6 data0,650
2. Entropy(Buruk)1 Ya/3 Tidak dari 4 data0,811
3. Bobot × Entropy(Baik)(6÷10) × 0,6500,390
4. Bobot × Entropy(Buruk)(4÷10) × 0,8110,324
5. Entropy setelah split0,390 + 0,3240,714
6. Information Gain0,971 (Entropy(S)) − 0,7140,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.

Teorema Bayes & Asumsi "Naive"

P(Kelas | Fitur) = [ P(Fitur | Kelas) × P(Kelas) ] ÷ P(Fitur)
P(Kelas) — Prior
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?

LangkahPerhitunganNilai
1. Prior P(Spam)4 ÷ 100,40
2. Prior P(Bukan Spam)6 ÷ 100,60
3. Likelihood P(GRATIS|Spam)3 dari 4 email spam0,75
4. Likelihood P(GRATIS|Bukan)1 dari 6 email bukan-spam0,167
5. Skor Spam0,40 × 0,750,300
6. Skor Bukan Spam0,60 × 0,1670,100
7. P(Spam|GRATIS) ternormalisasi0,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?

AspekDecision TreeNaive Bayes
Dasar logikaAturan bertingkat (Entropy/IG)Probabilitas (Teorema Bayes)
Mudah dijelaskan ke atasan?Sangat mudah (mirip flowchart)Perlu penjelasan konsep peluang
Cocok untuk dataFitur campuran (angka & kategori)Teks/kata (ribuan fitur), cepat
Risiko utamaOverfitting jika terlalu dalamAsumsi independensi kurang realistis
Contoh aplikasiSkoring kredit, churnSpam 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.

Evaluasi Model: Confusion Matrix & Metrik

Confusion Matrix (Contoh 20 Data Uji)
Prediksi: YaPrediksi: Tidak
Aktual: Ya8 (TP)2 (FN)
Aktual: Tidak1 (FP)9 (TN)
Metrik Utama
Akurasi = (TP+TN)/Total = 17/20 = 85%
Presisi = TP/(TP+FP) = 8/9 ≈ 89%
Recall = TP/(TP+FN) = 8/10 = 80%
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 modelDecisionTreeClassifier(max_depth=3) atau GaussianNB() dari sklearn.
  • 3. Latihmodel.fit(X_train, y_train) — di sinilah semua hitungan Entropy/Bayes tadi terjadi otomatis.
  • 4. Prediksi & evaluasimodel.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.

Latihan Kelas & Rangkuman

Latihan Diskusi (10 Menit)
  • Sebuah warung online punya 8 pesanan: 5 "Lancar Bayar", 3 "Telat Bayar". Hitung Entropy(S)-nya!
  • Diskusikan: kasus mana yang lebih cocok pakai Decision Tree, mana yang lebih cocok Naive Bayes — deteksi ulasan palsu Shopee atau skoring kredit KUR?
Rangkuman & Minggu Depan
  • Klasifikasi = supervised, prediksi kategori dari data berlabel.
  • Decision Tree: Entropy & Information Gain menentukan split; waspada overfitting.
  • Naive Bayes: Teorema Bayes + asumsi independensi fitur.
  • Tugas: bawa laptop, install scikit-learn sebelum P9.
  • P9: Analisis Teks & Sentimen — lanjutan langsung dari Naive Bayes hari ini.

📖 Baca juga: Dcf Valuation — penjelasan mendalam dan contoh numerik.