Saya mencoba memahami cara kerja XGBoost. Saya sudah mengerti bagaimana gradien meningkatkan kerja pohon di Python sklearn. Yang tidak jelas bagi saya adalah apakah XGBoost bekerja dengan cara yang sama, tetapi lebih cepat, atau jika ada perbedaan mendasar antara itu dan implementasi python.
Ketika saya membaca makalah ini
http://learningsys.org/papers/LearningSys_2015_paper_32.pdf
Bagi saya sepertinya hasil akhir yang keluar dari XGboost sama dengan dalam implementasi Python, namun perbedaan utama adalah bagaimana XGboost menemukan pemisahan terbaik untuk dibuat di setiap pohon regresi.
Pada dasarnya, XGBoost memberikan hasil yang sama, tetapi lebih cepat.
Apakah ini benar, atau ada hal lain yang saya lewatkan?
sumber
n_jobs
parameter antarmuka yang tersedia; pemrosesan paralel tidak dimungkinkan secara internal dengan implementasi algoritma sklearn.Tidak seperti peningkatan gradien Sklearn, Xgboost melakukan regularisasi pohon juga untuk menghindari overfitting dan juga menangani nilai yang hilang secara efisien. Tautan berikut mungkin bermanfaat untuk mempelajari xgboost dengan tepat https://www.youtube.com/watch?v=Vly8xGnNiWs
sumber
XGboost adalah implementasi dari GBDT dengan randmization (Ini menggunakan pengambilan sampel kolom dan pengambilan sampel baris). Sampling sampel dimungkinkan dengan tidak menggunakan semua data pelatihan untuk setiap model dasar GBDT. Alih-alih menggunakan semua data pelatihan untuk masing-masing model-dasar, kami mengambil sampel sejumlah baris dan hanya menggunakan baris-baris data untuk membangun masing-masing model dasar. Ini memastikan bahwa ada peluang yang lebih kecil untuk overfitting yang merupakan masalah utama dengan GBDT sederhana yang XGBoost coba atasi menggunakan pengacakan ini.
sumber