Ada beberapa implementasi model keluarga GBDT seperti:
- GBM
- XGBoost
- LightGBM
- Catboost.
Apa perbedaan matematika antara implementasi yang berbeda ini?
Catboost tampaknya mengungguli implementasi lainnya bahkan dengan hanya menggunakan parameter standarnya sesuai dengan tanda bangku ini , tetapi masih sangat lambat.
Dugaan saya adalah bahwa catboost tidak menggunakan variabel dummi, sehingga bobot yang diberikan untuk masing-masing variabel (kategori) lebih seimbang dibandingkan dengan implementasi lainnya, sehingga variabel kardinalitas tinggi tidak memiliki bobot lebih dari yang lain. Ini memungkinkan kategori lemah (dengan kardinalitas rendah) untuk masuk ke beberapa pohon, sehingga kinerja yang lebih baik. Selain itu, saya tidak punya penjelasan lebih lanjut.
Jawaban:
https://arxiv.org/abs/1706.09516
Anda ingin melihat makalah bahasa Inggris ini dari tim Yandex tentang keunikan matematika CATBoost.
Saya membacanya secara singkat, dan di antara beberapa hal yang dapat saya pahami dengan cepat adalah fakta bahwa mereka tidak menggunakan residu yang diperoleh pada TRAIN untuk melakukan TRAIN , karena residu ini menciptakan bias optimis dari kualitas pembelajaran. ( Pembaruan: hal baru ini menghasilkan cara untuk mengatasi overfitting, yang merupakan salah satu alasan algoritma bekerja lebih baik dibandingkan dengan analognya, terlepas dari berbagai cara untuk preprocess variabel kategori).
Saya minta maaf karena tidak memberi Anda jawaban yang spesifik dan lengkap.
Pertama saya sarankan Anda membaca makalah oleh Friedman tentang Gradient Boosting Machine yang diterapkan pada model regresi linier, pengklasifikasi, dan pohon keputusan khususnya. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
Saya tidak akan membahas detailnya di sini. Itu hanya bacaan yang baik yang mencakup berbagai jenis kerugian (L) dan selain konsep pentingnya variabel. Tentu saja ini adalah kertas tonggak implementasi metode penurunan dalam ruang fungsi (model tingkat rendah) daripada parameter dalam mengejar minimisasi kerugian.
Jika Anda melihat di sini: https://arxiv.org/pdf/1603.02754.pdf
Anda menemukan sketsa matematika untuk model XGBoost oleh Tianqi Chen et al. Sekarang menjadi menarik. Beberapa penyimpangan matematis dari model ini membentuk Friedman GBM klasik:
Untuk titik ini: lihat di sini untuk menemukan implementasi kehilangan kuantil di CATBoost, yang berguna dan menyediakan turunan pertama dan kedua: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Meskipun Anda tidak dapat menemukan fungsi kehilangan L1 yang berguna ini di XGBoost, Anda dapat mencoba membandingkan implementasi Yandex dengan beberapa fungsi kehilangan kustom yang ditulis untuk XGB.
Pertimbangkan tautan ini: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Mereka menawarkan berbagai cara untuk memasukkan fitur-fitur kategorikal ke pelatihan model selain menggunakan pendekatan satu-panas yang lama dan terkenal. Mengurangi dimensi ruang input tanpa kehilangan banyak informasi adalah salah satu kemungkinan alasan model yang dipasang kurang dilengkapi.
Saya sudah selesai. Saya tidak menggunakan LightGBM, jadi tidak bisa menjelaskannya.
sumber