Ensemble Learning

Ensemble

  • Arti kata: Serangkaian, Keseluruhan, Kelompok, Keroyokan —> namun intinya “Berkelompok”
  • “Banyak” model
  • Bagging, Busting, Pasting, Stacking
  • Kita membuat machine learning yang berkelompok

Ensemble Learning & Random Forest


Hasil akhir sebuah model berasal dari berbagai model, lalu dilakukan voting, seperti kasus pada gambar diatas

Bisa dilakukan untuk Decision Tree juga, karena cenderung overfitting, kita membuat berbagai tree

Voting pada Esemble Learning

  • Default Ensemble Learning: Hard Voting —> Memilih berdasarkan suara terbanyak
  • Ada juga Soft Voting —> Memilih model yang memiliki probabilitas yang paling tinggi yang akan menentukan keputusan akhir, seperti investor yang modalnya paling tinggi, dia yang akan menentukan (jadi bukan yang paling banyak investornya, tapi dari investor yang paling kaya)

Bagging, and Pasting

Bagging & Pastig in Sckit-Learn, Out-of-Bag evaluation
Itu adalah variasi untuk pengacakan data

Model itu terpengaruh dari keteracakan data

Misal kita punya Training dan Testing = 80% : 20%
keteracakan data dari Training dan Testing itu berasal dari algoritma randomisasi yang digunakan

Pesan Moral

Meski terdiri dari berbagai model, kita tetap perlu perhatikan nilai keteracakan saat melakukan training dan testing

Bagging vs Pasting

Bagging (Bootstrap aggregating):

1 Training set dapat digunakan untuk digunakan ke dalam banyak model, ketika kita menggunakan bagging, maka dalam 1 pelatihan, 1 data yang sama bisa digunakan berkali-kali

Berbeda dengan Pasting, 1 data hanya boleh digunakan untuk 1 model

Mana yang kira-kira memiliki performa yang lebih baik? Bootstrap or Pasting?

  • Ini terkait dengan variasi, variasinya menjadi terbatas untuk tiap model jika menggunakan konsep pasting, sehingga potensi keberhasilannya dapat menurun
  • Secara default saat melakukan ensemble learning, kita menggunakan konsep Bootstrap (Bagging)

Random Forest

Keuntungan menggunakan random forest selain mewakili banyak kebutuhan adalah kita juga bisa menentukan nilai kepentingan dari fitur yang kita miliki dalam dataset

Dalam konsep kecerdasan buatan sekarang, ada konsep yang namanya Exaplainable AI, menjelaskan mengapa suatu keputusan itu diambil, salah satu caranya adalah dengan mengetahui Feature Importance (nilai kepentingan dari fitur)


Dengan kita mengetahui feature importance, kita mengetahui fitur mana yang paling mempengaruhi keputusan

Boosting, Adaboost, Gradient Boosting, Stacking

Untuk bentuk-bentuk yang sifatnya regresi (menebak nilai, menebak angka)

Algoritma ini melakukan secara incremental, untuk menurunkan RMSE/MAE

Perbaikan fungsi yang memprediksi data training, karena itu, konsep Boosting ini cenderung hanya digunakan untuk regresi

Intinya: Memperbaiki fungsi agar mendekati ketersebaran data

Stacking/Blending

  • Stacking: Tahapan training menggunakan Cross Validation
  • Blending: Bisa menggunakan Hold Out biasa


Blending itu semacam mengagregasi, menyatukan, tahap yang ada sebelumnya

Istilah Blending juga suka disebut meta-learning, model yang ada di atas model lainnya

Ketika kita ingin menggunakan Blending, maka kita perlu mempersiapkan dataset kita agar nantinya itu bisa digunakan di 2 tahap


Misal kita ingin melatih 1 Blender, misal kita gunakan

  • SVM
  • Linear Regression
  • Neural Network

Kemudian blending menggunakan algortima lain lagi, misal Random Forest Regressor
Jadi komposisi model-modelnya bisa kita asumsikan sendiri

Contoh:

  • Subset nomor 2 dipakai untuk melatih yang bagian dasarnya, hasil dari tahap dasar, hasil prediksinya digunakan untuk training model yang diatasnya, ini disebut dengan meta-learning (stacking)
  • Intinya: Model mempelajari hasil dari model lain
  • Hasilnya tergantung dari pada model yang sebelumnya, jadi jika model sebelumnya ngaco, hasil blending bisa ngaco, tapi jika hasil model sebelumnya sudah baik, maka hasil blendingnya bisa menjadi lebih baik lagi
  • Model blending mungkin jadi bisa mempelajari hal yang mungkin sempat terlewat oleh model-model sebelumnya

Jadi dengan demikian, secara teoritis, dengan Blending/Stacking/Meta-Learning, hasilnya menjadi semakin baik

Blending mempelajari target value, yang diberikan oleh prediksi model di lapisan pertama


Setiap lapisan transformer (ini mirip seperti Neural Model), berdiri sendiri, dan mereka memprediksi hal yang berbeda-beda, lalu mereka disatukan dan menghasilkan keputusan akhir yang menyatukan semua

ChatGPT versi 2 (sekarang tahun 2026 sudah ada versi 5), memiliki sekitar 12 lapisan transformer

State of the art

Meta learning: Model mempelajari hasil dari model lain

Pendekatan subtil untuk mendapatkan hasil yang baik —> model belajar dari model yang lain