- Struktur yang membagi ruang fitur secara berulang untuk mengklasifikasikan data, dengan memilih pemisahan yang memberi information gain terbesar di setiap tahap
- Menggunakan entropy untuk mengukur kemurnian (purity) data, lalu menghitung information gain berdasarkan nilai tersebut
- Algoritma ID3 mencari titik pemisahan optimal dengan menghitung selisih entropy antara node induk dan node anak, lalu memperluas pohon secara rekursif
- Selain entropy, Gini impurity juga dapat digunakan; keduanya umumnya memberi hasil yang serupa, tetapi berbeda dalam efisiensi komputasi
- Pemisahan yang berlebihan dapat menyebabkan overfitting dan ketidakstabilan, sehingga hal ini dikurangi dengan pruning atau Random Forest
Konsep dasar pohon keputusan
- Pohon keputusan membagi data dari atas ke bawah, dan di setiap tahap menerapkan aturan kondisi untuk memisahkan data ke dalam area yang lebih mudah dibedakan
- Setiap pemisahan ditentukan oleh fitur (feature) tertentu dan nilai ambang (cutoff value)
- Tujuannya adalah membentuk node yang murni sehingga kelas dapat dipisahkan dengan baik dalam tugas klasifikasi
Definisi dan sifat entropy
- Entropy adalah metrik untuk mengukur ketidakpastian informasi, yang untuk probabilitas (p_i) didefinisikan sebagai (H = -\sum p_i \log_2(p_i))
- Sifat utama
- Jika hanya satu kejadian yang memiliki probabilitas 1 dan sisanya 0, maka (H=0), artinya tidak ada ketidakpastian
- Jika probabilitas semua kejadian sama, entropy mencapai nilai maksimum dan menunjukkan keadaan paling tidak murni
- Semakin merata probabilitasnya, semakin besar entropy
- Karena itu, node murni memiliki entropy 0, sedangkan node campuran memiliki nilai entropy yang tinggi
Information gain dan algoritma ID3
- Information gain dihitung sebagai selisih entropy sebelum dan sesudah pemisahan, dan menunjukkan efisiensi pemisahan data
- Rumus: (\Delta IG = H_{\text{parent}} - \frac{1}{N}\sum N_{\text{child}} \cdot H_{\text{child}})
- Tahapan algoritma ID3
- Menghitung entropy untuk setiap fitur
- Membagi dataset dengan berbagai kriteria pemisahan dan menghitung information gain
- Memilih pemisahan dengan information gain terbesar untuk membentuk node keputusan
- Membentuk node daun ketika data tidak bisa lagi dipisahkan
- Menjalankan proses ini secara rekursif untuk semua subset, tetapi berhenti jika semua elemen berada pada kelas yang sama
- Sebagai contoh, kondisi Diameter ≤ 0.45 dipilih sebagai pemisahan pertama karena memiliki information gain tertinggi, yaitu 0.574
Gini impurity dan ukuran alternatif
- Gini impurity adalah alternatif dari entropy, yakni cara lain untuk mengukur ketidakmurnian informasi
- Tidak memerlukan perhitungan log sehingga lebih cepat secara komputasi
- Pada dataset yang tidak seimbang, entropy bisa menjadi pilihan yang lebih hati-hati
- Keduanya umumnya menghasilkan hasil yang serupa
Masalah overfitting dan ketidakstabilan
- Algoritma ID3 terus melakukan pemisahan untuk meminimalkan entropy, sehingga pohon bisa menjadi terlalu dalam
- Hal ini memicu overfitting, yang menurunkan kemampuan generalisasi pada data baru
- Ada juga masalah ketidakstabilan (high variance), di mana perubahan kecil pada data dapat sangat mengubah struktur pohon
- Contoh: menambahkan Gaussian noise kecil pada 5% data pelatihan saja dapat menghasilkan pohon yang sepenuhnya berbeda
- Sebagai solusi, pruning dapat digunakan untuk membatasi kedalaman pohon, jumlah daun, jumlah sampel minimum, dan sebagainya
Ekstensi ke Random Forest
- Untuk mengurangi ketidakstabilan pada satu pohon keputusan, digunakan pendekatan menggabungkan prediksi dari banyak pohon yang dilatih pada sampel data yang berbeda
- Pendekatan ini disebut Random Forest, yang menawarkan stabilitas tinggi dan kemampuan generalisasi yang baik
- Ini melengkapi kekurangan pohon keputusan, dan hingga kini dinilai sebagai salah satu algoritma machine learning paling sukses
Kesimpulan dan pembelajaran lanjutan
- Pohon keputusan adalah model yang mudah diinterpretasikan, cepat dilatih, dan sederhana dalam prapemrosesan
- Namun, untuk mengatasi overfitting dan ketidakstabilan, diperlukan pruning atau teknik ensemble
- Tulisan ini tidak membahas pohon untuk regresi, end-cut preference, hyperparameter, dan topik terkait lainnya, sehingga pembelajaran lanjutan melalui materi terkait disarankan
1 komentar
Komentar Hacker News
Saat mempelajari classifier, senjata rahasia yang sangat efektif bagi saya adalah melatih classifier linear yang bagus terlebih dahulu
Lalu melatih decision tree dengan memakai nilai output non-threshold dari classifier linear itu sebagai satu dimensi fitur tambahan, dan membungkusnya dengan sistem boosted tree
Dengan begitu, kelemahan decision tree ditutup oleh model linear, dan sebaliknya bagian yang sulit bagi model linear ditangani oleh tree
Rotasi data atau normalisasi sumbu juga bisa dipertimbangkan, tetapi kebanyakan tidak diperlukan
Namun, saat fitur sangat sparse, tree kesulitan menemukan titik split
Kita menambahkan komputasi ekstra ke state mentah (raw state) untuk membentuk observed state, lalu belajar dari sana
Misalnya pada game Snake, model dilatih bukan hanya dengan koordinat ular, tetapi juga fitur turunan seperti jumlah jalur pelarian
Jika data tidak dibersihkan dan fitur tidak dirancang dengan baik, hasilnya bisa jauh lebih buruk daripada model black-box seperti neural network
Ironisnya, neural network bisa menemukan fitur laten semacam ini sendiri, tetapi sulit menafsirkan mengapa ia bekerja seperti itu
Contohnya Oblique Decision Tree, Model Tree (M5), Logistic Model Tree (LMT), dan Hierarchical Mixture of Experts (HME)
Sekitar tahun 2010 saat bekerja di CERN, Boosted Decision Tree adalah classifier yang paling populer
Alasannya keseimbangan antara explainability dan daya ekspresi, dan pada saat itu secara budaya orang enggan memakai neural network untuk analisis fisika
Sekarang zamannya sudah banyak berubah
Dalam fisika, yang penting bukan sekadar menyesuaikan kurva dengan baik, tetapi memahami mekanisme kausal
Sama seperti sistem epicycle milik Ptolemaios yang lebih akurat mencocokkan gerak benda langit, tetapi tidak menjelaskan penyebabnya
Begitu depth-nya sedikit lebih dalam, model itu hampir menjadi rimba yang mustahil ditafsirkan
Neural network juga sama; kita bisa mengikuti operasi internalnya, tetapi tetap tidak tahu mengapa ia mengambil keputusan itu
Di situs yang sama juga ada penjelasan tentang Random Forest → mlu-explain/random-forest
Fakta menarik: single-bit neural network pada dasarnya adalah decision tree
Secara teori, sebagian besar neural network bisa “dikompilasi” menjadi rantai if-else, tetapi kapan itu bekerja dengan baik masih belum jelas
Ini lebih seperti perluasan konsep, jadi sulit dianggap sebagai pemetaan langsung
Karena itu akan menarik jika dijelaskan lebih lanjut maksud konkretnya
Kelebihan terbesar decision tree adalah kecepatannya
Dalam lingkungan low-latency, saya pernah mencoba mengganti classifier berbasis tree dengan neural network kecil, tetapi walaupun akurasinya sedikit lebih tinggi, latency inferensi neural network lebih dari 100 kali lebih tinggi
Sebaliknya, tree hasil boosting atau bagging lebih kompleks, dan algoritme ML klasik lain juga kurang portabel
Di salah satu buku teks ML (mungkin ESL), decision tree digambarkan seperti ini
“Dapat ditafsirkan, cepat, bekerja baik pada beragam data, tidak terlalu sensitif terhadap scaling, dan parameter tuning-nya sedikit... tetapi tidak bekerja dengan baik”
Memang bagging atau boosting bisa menutupi kekurangan ini, tetapi dalam prosesnya sebagian keunggulan aslinya ikut hilang
Saya sangat menyukai decision tree. Ini adalah algoritme ML klasik favorit saya
Saya pernah membuat implementasi paralel fungsional murni dengan GNU Guile → tautan kode
Namun, di Guile tidak ada hal seperti NumPy atau DataFrame, jadi representasi datanya tidak efisien
Guile cocok untuk manipulasi tree, jadi terasa alami untuk implementasi decision tree
Namun, jika dikompilasi ke machine code, seharusnya bisa lebih efisien
Sebagai referensi, Lush(https://lush.sourceforge.net/) atau aiscm(https://wedesoft.github.io/aiscm/) juga layak dilihat
Pengambilan keputusan yang samar oleh pakar pun sering kali bisa dimodelkan dengan decision tree sederhana atau decision chain
Pakarnya sendiri mungkin merasa prosesnya rumit, tetapi dalam kenyataannya tree sederhana sering menjelaskannya dengan lebih baik
Dulu regresi atau clustering berbasis jarak terlihat lebih canggih, tetapi tree jauh lebih efektif
Pembahasan terkait ada secara rinci di bab 7 Oxford Handbook of Expertise
Pada akhirnya, decision tree adalah struktur yang membagi ruang kemungkinan seperti kD-Tree dan menetapkan tindakan pada tiap wilayah
Penilaian halus seorang pakar muncul dari detail permukaan batas, tetapi tree tetap memberi pendekatan yang cukup baik
Situsnya menarik dan presentasinya bagus
Hanya saja, kontras warna beberapa teks rendah sehingga sulit dibaca
Aksesibilitas bukan hanya untuk penyandang disabilitas, tetapi elemen dasar untuk meningkatkan keterbacaan
Di era deep learning sekarang, decision tree sedang diremehkan
Padahal model ini masih dapat ditafsirkan, cepat, dan cukup praktis
Saya membuat sistem penilaian untuk analisis situs web berbasis tree,
yang mengevaluasi kondisi seperti “apakah ada meta description?”, “apakah dimuat dalam 3 detik?”, dan “apakah ramah seluler?”
Pengguna bisa langsung memahami mengapa mereka mendapat skor seperti itu
Mustahil menjelaskan alasan neural network memberi nilai 73, tetapi tree memudahkannya
Pohon diagnosis Esagil-kin-apli dari sekitar 1000 SM adalah salah satu awalnya