top of page
Gambar penulisCornellius Yudha Wijaya

Apa Perbedaan GBM dan XGBoost?

Saya yakin semua orang tahu tentang algoritma GBM dan XGBoost. Keduanya adalah algoritma pilihan untuk banyak kasus penggunaan dunia nyata dan kompetisi machine learning karena output metriknya seringkali lebih baik daripada model lainnya.


Bagi yang belum tahu tentang GBM dan XGBoost, GBM (Gradient Boosting Machine) dan XGBoost (eXtreme Gradient Boosting) adalah metode ensemble learning. Ensemble learning adalah teknik machine learning di mana beberapa weak learner atau model lemah (misalnya decision trees) dilatih dan digabungkan untuk tujuan tertentu.


Kedua algoritma ini didasarkan pada teknik boosting ensemble learning yang tertera pada namanya. Teknik boosting adalah metode yang mencoba menggabungkan beberapa model weak learner secara berurutan, di mana masing-masing memperbaiki model pendahulunya. Setiap learner akan belajar dari kesalahan sebelumnya dan mengoreksi kesalahan model sebelumnya.


Itulah kesamaan mendasar antara GBM dan XGBoost, tapi bagaimana dengan perbedaannya? Mari kita bahas dalam artikel ini.



GBM (Gradient Boosting Machine)

Seperti disebutkan sebelumnya, GBM didasarkan pada boosting, yang mencoba iterasi berurutan weak learner untuk belajar dari kesalahan sebelumnya dan mengembangkan model yang robust. GBM mengembangkan model yang lebih baik untuk setiap iterasi dengan meminimalkan fungsi loss menggunakan gradient descent. Gradient descent adalah konsep untuk menemukan fungsi minimum pada setiap iterasi, seperti fungsi loss. Iterasi akan terus berjalan sampai mencapai stopping criterion (kriteria untuk berhenti).


Konsep GBM bisa Anda lihat pada gambar di bawah ini.

Anda dapat melihat pada gambar bahwa untuk setiap iterasi, model mencoba meminimalkan fungsi loss dan belajar dari kesalahan sebelumnya. Model akhir adalah keseluruhan weak learner yang menjumlahkan semua prediksi dari model.


XGB (eXtreme Gradient Boosting) dan Bagaimana Bedanya dari GBM

XGBoost atau eXtreme Gradient Boosting adalah algoritma machine learning yang didasarkan pada algoritma gradient boosting yang dikembangkan oleh Tianqi Chen dan Carlos Guestrin pada tahun 2016. Pada dasarnya, algoritma ini masih mengikuti strategi berurutan untuk meningkatkan model berikutnya berdasarkan gradient descent. Namun, beberapa perbedaan XGBoost menjadikan model ini salah satu yang terbaik dalam hal performa dan kecepatan.


1. Regularisasi

Regularisasi adalah teknik dalam machine learning untuk menghindari overfitting. Ini adalah kumpulan metode untuk membatasi model agar tidak menjadi terlalu rumit dan memiliki daya generalisasi yang buruk. Regularisasi menjadi teknik penting karena banyak model yang terlalu “cocok” dengan data training.


GBM tidak menerapkan regularisasi dalam algoritmanya, sehingga algoritma ini hanya fokus mencapai fungsi loss minimum. Dibandingkan dengan GBM, XGBoost menerapkan metode regularisasi untuk memberikan penalti pada model yang overfitting.


Ada dua jenis regularisasi yang dapat diterapkan XGBoost: Regularisasi L1 (Lasso) dan Regularisasi L2 (Ridge). Regularisasi L1 mencoba meminimalkan bobot atau koefisien fitur menjadi nol (efektif menjadi pemilihan fitur), sedangkan Regularisasi L2 mencoba mengecilkan koefisien secara merata (membantu mengatasi multikolinearitas). Dengan menerapkan kedua regularisasi tersebut, XGBoost dapat menghindari overfitting lebih baik daripada GBM.


2. Paralelisasi

GBM cenderung memiliki waktu training yang lebih lambat dibandingkan XGBoost karena algoritma XGBoost menerapkan paralelisasi selama proses training. Teknik boosting memang bisa bersifat sekuensial, tetapi paralelisasi masih bisa dilakukan dalam proses XGBoost.


Paralelisasi bertujuan untuk mempercepat proses pembuatan pohon (tree), terutama saat proses data splitting. Dengan menggunakan semua core pemrosesan yang tersedia, waktu training XGBoost dapat dipersingkat.

Selain paralelisasi, developer XGBoost juga melakukan preprocessing data ke dalam format data yang mereka kembangkan, yaitu DMatrix, untuk efisiensi memori dan peningkatan kecepatan training.


3. Handling Missing Data

Dataset training kita mungkin berisi missing data, yang harus kita tangani secara eksplisit sebelum memasukkannya ke dalam algoritma. Namun, XGBoost memiliki missing data handler bawaan, sedangkan GBM tidak.


XGBoost menerapkan teknik mereka sendiri untuk menangani missing data, yang disebut Sparsity-aware Split Finding. Untuk setiap data yang jarang ditemui XGBoost (missing data, Dense Zero, OHE), model akan belajar dari data tersebut dan menemukan pemisahan yang paling optimal. Model akan menetapkan di mana missing data harus ditempatkan selama data splitting dan melihat arah mana yang meminimalkan loss.


4. Pemangkasan Pohon (Tree Prunig)

Strategi pertumbuhan untuk GBM adalah berhenti melakukan pemisahan setelah algoritma mencapai loss negatif pada pemisahan tersebut. Strategi ini dapat menyebabkan hasil yang kurang optimal karena hanya didasarkan pada optimasi lokal dan mungkin mengabaikan gambaran keseluruhan.


XGBoost mencoba menghindari strategi GBM dan menumbuhkan pohon sampai parameter max depth yang ditetapkan mulai melakukan pruning ke belakang. Pemisahan dengan loss negatif dipangkas, tetapi ada kasus di mana pemisahan loss negatif tidak dihapus. Ketika pemisahan mencapai loss negatif, tetapi pemisahan selanjutnya positif, pemisahan tersebut akan tetap dipertahankan jika keseluruhan pemisahan tetap positif.


5. Cross-Validation Bawaan

Cross-Validation adalah teknik untuk menilai generalisasi model dan ketahanan model dengan membagi data secara sistematis selama beberapa iterasi. Secara keseluruhan, hasilnya akan menunjukkan apakah model overfitting atau tidak.


Biasanya, algoritma machine learning memerlukan bantuan eksternal untuk menerapkan cross validation, tetapi XGBoost memiliki cross validation bawaan yang dapat digunakan selama sesi training. Cross validation akan dilakukan pada setiap iterasi boosting dan memastikan pohon yang dihasilkan bersifat robust.


Kesimpulan

GBM dan XGBoost adalah algoritma populer dalam banyak kasus dunia nyata dan kompetisi. Secara konseptual, keduanya adalah algoritma boosting yang menggunakan weak learners untuk mencapai model yang lebih baik. Namun, mereka memiliki beberapa perbedaan dalam penerapan algoritma mereka. XGBoost meningkatkan algoritma dengan menggabungkan regularisasi, melakukan paralelisasi, handling missing data yang lebih baik, strategi pemangkasan pohon yang berbeda, dan teknik cross validation bawaan.



7 tampilan0 komentar

Postingan Terkait

Lihat Semua

Comments


bottom of page