🌳 Decision Tree

Model berupa rangkaian pertanyaan if-else β€” paling mudah dijelaskan ke manusia.

🎬 Animasi: Decision Tree: Membagi Data

Pohon memilih split (fitur + ambang) yang paling β€˜murnikan’ data di tiap cabang; daun = keputusan akhir.

πŸ“Œ 1. Konsep: Rangkaian Pertanyaan

Contoh: "Apakah harus bawa payung?" [hujan di radar?] / \ ya tidak ↓ ↓ BAWA PAYUNG [awan tebal?] / \ ya tidak ↓ ↓ BAWA (siaga) TIDAK BAWA Setiap cabang = satu pertanyaan (fitur ≀ threshold?) Setiap daun = satu keputusan (label mayoritas di titik itu)

Keunggulan: interpretable (bisa ditunjukkan ke bos/pasien), bisa menangani fitur campuran, tidak butuh scaling. Kelemahan: rawan overfitting (pohon terlalu dalam menghafal data).

πŸ“Œ 2. Entropy & Information Gain: Cara Memilih Pertanyaan

Entropy = ukuran "kekacauan" (ketidakmurnian) sebuah himpunan: H = -Ξ£ pα΅’ Β· log2(pα΅’) H([0,0,0,0]) = 0.0 (murni β€” tidak perlu tanya lagi) H([0,1]) = 1.0 (maksimal kacau) H([0,0,0,1]) = 0.81 Information Gain = H(parent) - H rata-rata anak β†’ pilih split yang paling MENURUNKAN entropy (paling "memurnikan") Split yang bagus: anak-anaknya hampir murni (entropy β‰ˆ 0). Split buruk: anak-anaknya tetap campur (entropy β‰ˆ parent).

πŸ“Œ 3. Contoh: Membangun Decision Tree Sendiri

Output:

πŸ“Œ 4. Contoh: Overfitting β€” Kedalaman Pohon

Pohon tanpa batas kedalaman akan tumbuh sampai setiap daun berisi 1 titik (murni) β†’ akurasi train 100%, tapi menyimpan noise, bukan pola.

Output:
πŸ’‘ Karena pohon tunggal rapuh, praktisi jarang memakainya sendirian β€” mereka menggabungkan banyak pohon: Random Forest & Gradient Boosting (bab 15).

🧠 Latihan

  1. Hitung entropy manual untuk himpunan [0,0,1,1,1]. (Jawaban: 0.971.) Verifikasi dengan fungsi di kode.
  2. Ubah max_depth contoh 1 menjadi 1 dan 5. Bandingkan struktur pohon dan akurasinya.
  3. Tambahkan aturan berhenti: "berhenti jika gain < 0.05" β€” berapa node pohon yang tersisa?
  4. Jelaskan kenapa decision tree tidak butuh normalisasi data. (Petunjuk: bentuk pertanyaannya apa?)