Meningkatkan Model Regresi Logistik

11

Adaboost adalah metode ensemble yang menggabungkan banyak pelajar yang lemah untuk membentuk yang kuat. Semua contoh adaboost yang saya baca menggunakan tunggul keputusan / pohon sebagai pembelajar yang lemah. Bisakah saya menggunakan pelajar lemah yang berbeda di adaboost? Misalnya, bagaimana menerapkan adaboost (umumnya meningkatkan) untuk meningkatkan model regresi logistik?

Salah satu perbedaan utama pohon klasifikasi dan regresi logistik adalah bahwa kelas keluaran sebelumnya (-1,1) sedangkan regresi logistik menghasilkan probs. Satu ide adalah memilih fitur X terbaik dari serangkaian fitur dan mengambil ambang batas (0,5?) Untuk mengonversi prob ke kelas dan kemudian menggunakan regresi logistik tertimbang untuk menemukan fitur berikutnya, dll.

Tetapi saya membayangkan bahwa ada algoritma umum untuk meningkatkan pelajar yang lemah berbeda berbeda dari tunggul keputusan yang menghasilkan probabilitas. Saya percaya bahwa Logitboost adalah jawaban untuk pertanyaan saya tetapi saya mencoba untuk membaca kertas "Additive Logistic Regression" dan terjebak di tengah.

gnikol
sumber

Jawaban:

7

Jangan bingung penanganan prediktor (melalui pelajar dasar, misalnya tunggul) dan penanganan fungsi kehilangan dalam meningkatkan. Meskipun AdaBoost dapat dianggap sebagai menemukan kombinasi pelajar dasar untuk meminimalkan kesalahan klasifikasi, makalah "Additive Logistic Regression" yang Anda kutipkan menunjukkan bahwa itu juga dapat diformulasikan untuk meminimalkan fungsi kerugian eksponensial. Wawasan ini membuka pendekatan peningkatan ke berbagai kelas masalah pembelajaran mesin yang meminimalkan fungsi kerugian yang dapat dibedakan, melalui peningkatan gradien . Residu yang sesuai pada setiap langkah adalah residu semu yang dihitung dari gradien fungsi kerugian. Bahkan jika prediktor dimodelkan sebagai tunggul biner, output dari model sehingga tidak perlu menjadi pilihan biner.

Seperti jawaban lain menyatakan, pembelajar berbasis linier mungkin tidak bekerja untuk meningkatkan, tetapi pembelajar berbasis linier tidak diperlukan untuk "peningkatan regresi" baik dalam pengertian standar maupun logistik. Jelas tunggul non-linear dapat dikombinasikan sebagai pelajar basis lambat untuk meminimalkan fungsi kerugian yang tepat. Itu masih disebut "boosted regression" walaupun itu jauh dari model regresi standar linear dalam koefisien dari para prediktor. Fungsi kerugian dapat secara fungsional sama untuk model linier dan model "boosted regression" dengan tunggul atau pohon sebagai prediktor. Bab 8 dari ISLR memperjelas hal ini.

Jadi, jika Anda menginginkan kemunduran logistik-setara dengan regresi yang disempurnakan, fokuslah pada fungsi kerugian alih-alih pada basis pembelajar. Itulah yang dilakukan oleh pendekatan LogitBoost dalam makalah yang Anda kutip: meminimalkan kerugian log daripada kerugian eksponensial yang tersirat dalam adaboost. Halaman AdaBoost Wikipedia menjelaskan perbedaan ini.

Banyak peserta di situs ini akan berpendapat bahwa prediksi berbasis peluang / probabilitas log lebih disukai daripada prediksi klasifikasi ya / tidak yang ketat, karena yang sebelumnya secara umum memungkinkan pengorbanan yang berbeda antara biaya tambahan prediksi palsu-positif dan palsu-negatif . Seperti yang ditunjukkan oleh jawaban untuk pertanyaan terkait Anda , dimungkinkan untuk memperoleh probabilitas yang diperkirakan dari penggolong kuat yang berasal dari AdaBoost, tetapi LogitBoost mungkin memberikan kinerja yang lebih baik.

Implementasi peningkatan gradien untuk klasifikasi dapat memberikan informasi tentang probabilitas yang mendasarinya. Sebagai contoh, halaman ini pada peningkatan gradien menunjukkan bagaimana sklearnkode memungkinkan untuk pilihan antara kehilangan penyimpangan untuk regresi logistik dan kerugian eksponensial untuk AdaBoost, dan dokumen berfungsi untuk memprediksi probabilitas dari model yang didorong oleh gradien.

EdM
sumber
Terimakasih banyak atas jawaban Anda. Jika saya memahaminya dengan benar untuk mencapai fungsionalitas regresi logistik dalam konteks meningkatkan yang harus saya lakukan adalah menggunakan algoritma peningkatan gradien dengan fungsi kehilangan logistik dan pohon klasifikasi peserta didik yang lemah? Tetapi pohon klasifikasi menghasilkan {-1,1} sedangkan regresi logistik yang menghasilkan probabilitas. Selain itu pohon klasifikasi mencoba untuk meminimalkan indeks gini bukannya kerugian logistik. Saya merindukan sesuatu yang mendasar di sini. Di mana menempatkan kerugian logistik? Bagaimana cara mengeluarkan probs dari model?
gnikol
Saya mengerti konsep di mana y kontinu karena pohon regresi meminimalkan mse yang merupakan fungsi kerugian yang sama dengan regresi linier. Oleh karena itu saya berulang kali memasukkan pohon regresi ke residu. Tetapi dalam konteks klasifikasi, pohon klasifikasi meminimalkan indeks gini atau yang serupa. Bagaimana hal itu terhubung dengan regresi logistik atau hilangnya fungsi dari regresi logistik?
gnikol
@ gnikol Saya telah merevisi jawaban saya dengan cara yang saya harap akan membuat ini lebih jelas baik bagi Anda dan bagi pembaca lain. Residual yang sesuai dengan peningkatan gradien adalah residu semu yang dihitung dari gradien fungsi kerugian; pilihan fungsi kerugian inilah yang membedakan AdaBoost dari LogitBoost. Kemungkinan dapat diperoleh dari pembelajar yang kuat dalam hal apa pun; Saya memberikan tautan ke satu contoh implementasi di paragraf terakhir.
EdM
5

Sebenarnya kami memiliki pertanyaan yang sangat mirip di sini tentang kasus regresi. Dan kami mendapat jawaban yang sangat bagus dari @Matthew Drury

Gradient Boosting untuk Regresi Linier - mengapa tidak bekerja?

Model linear (seperti regresi logistik) tidak baik untuk meningkatkan. Alasannya adalah jika Anda menambahkan dua model linier bersama-sama, hasilnya adalah model linier lain. Di sisi lain, menambahkan dua tunggul keputusan atau pohon, akan memiliki model yang lebih rumit dan menarik (bukan pohon lagi.)

Detail dapat ditemukan di pos ini. Dalam tautan ini saya menurunkan mengapa menambahkan dua model linier tidak menarik. Dan saya menunjukkan efek meningkatkan pada iterasi putusan keputusan oleh iterasi.

Bagaimana cara kerja pembelajar berbasis linier dalam meningkatkan? Dan bagaimana cara kerjanya di perpustakaan xgboost?

Perhatikan bahwa, pohon keputusan / tunggul bukanlah "model linier" yang mirip dengan regresi logistik.

Lihat posting ini untuk detailnya

Apakah tunggul keputusan merupakan model linier?

Haitao Du
sumber