LightGBM vs XGBoost

25

Saya mencoba memahami mana yang lebih baik (lebih akurat, terutama dalam masalah klasifikasi)

Saya telah mencari artikel yang membandingkan LightGBM dan XGBoost tetapi hanya menemukan dua:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 - yang hanya tentang kecepatan tetapi tidak akurat.
  2. https://github.com/Microsoft/LightGBM/wiki/Experiments - yang berasal dari penulis LightGBM dan tidak heran LightGBM menang di sana.

Dalam pengujian saya, saya mendapatkan AUC yang sama untuk kedua algoritma, tetapi LightGBM berjalan 2 hingga 5 kali lebih cepat.

Jika LGBM sangat keren, mengapa saya tidak mendengar terlalu banyak tentang hal ini di sini dan di Kaggle :)

Sergey Nizhevyasov
sumber
Terima kasih, tetapi LightGBM juga memiliki paket untuk R dan Python yang digunakan oleh sebagian besar penipu. Saya menggunakannya dengan Python. Pada penelitian data dan internet saya LGBM tampaknya terlalu sempurna: sangat cepat dan tidak kurang akurat. Tapi mungkin saya kehilangan sesuatu di sini jika belum digunakan secara luas :)
Sergey Nizhevyasov

Jawaban:

21

LightGBM adalah implementasi hebat yang mirip dengan XGBoost tetapi bervariasi dalam beberapa cara tertentu, terutama dalam cara menciptakan pohon.

Ia menawarkan beberapa parameter berbeda tetapi kebanyakan sangat mirip dengan XGBoost.

Jika Anda menggunakan parameter yang sama, Anda hampir selalu mendapatkan skor yang sangat dekat. Dalam kebanyakan kasus, pelatihan akan 2-10 kali lebih cepat.


Mengapa tidak lebih banyak orang yang menggunakannya?

XGBoost sudah ada lebih lama dan sudah diinstal pada banyak mesin. LightGBM agak baru dan tidak memiliki pembungkus Python pada awalnya. Versi saat ini lebih mudah untuk diinstal dan digunakan sehingga tidak ada kendala di sini.

Banyak pengguna yang lebih mahir di Kaggle dan situs serupa sudah menggunakan LightGBM dan untuk setiap kompetisi baru, ia mendapat cakupan yang lebih banyak dan lebih banyak. Namun, skrip pemula sering berbasis XGBoost karena orang hanya menggunakan kembali kode lama mereka dan menyesuaikan beberapa parameter. Saya yakin ini akan meningkat setelah ada beberapa tutorial dan panduan lebih lanjut tentang cara menggunakannya (sebagian besar panduan non-ScikitLearn saat ini fokus pada XGBoost atau jaringan saraf).

Frank Herfert
sumber
Terima kasih, itu masuk akal. Mungkin untuk kekuatan komputasi para pemula tinggi bukan masalah besar, dan lebih mudah untuk menyimpan skrip.
Sergey Nizhevyasov
10

XGBoost sekarang memiliki opsi binning histogram untuk pertumbuhan pohon yang mirip dengan yang digunakan LightGBM. Ini menyediakan tentang tingkat yang sama dari speedup dan karakteristik akurasi yang serupa, meskipun algoritma masih tidak persis sama.

Ada beberapa plot dan tabel di sini yang menunjukkan bagaimana mereka tepat di atas satu sama lain sekarang. https://github.com/dmlc/xgboost/issues/1950

Agar adil, LightGBM mengutip tes kinerja mereka sendiri yang menunjukkan mereka masih merambah XGBoost (hist), meskipun tidak dengan urutan besarnya lagi. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

James D
sumber