Scikit-learn: Poisson, gamma dan tweedie keluarga fungsi kerugian

Dibuat pada 7 Des 2015  ·  57Komentar  ·  Sumber: scikit-learn/scikit-learn

Saya ingin sklearn mendukung Poisson, gamma, dan fungsi kehilangan keluarga Tweedie lainnya. Distribusi kerugian ini banyak digunakan di industri untuk penghitungan dan data berekor panjang lainnya. Selain itu, mereka diimplementasikan di perpustakaan lain seperti R: GLM, GLMNET, GBM ext. Bagian dari implementasi distribusi ini adalah memasukkan cara agar offset diteruskan ke fungsi kerugian. Ini adalah cara umum untuk menangani eksposur saat menggunakan fungsi tautan log dengan distribusi ini.

Apakah komunitas sklearn terbuka untuk menambahkan fungsi kerugian ini. Jika demikian, saya atau (semoga yang lain) bersedia untuk meneliti kelayakan penerapan fungsi-fungsi kerugian ini dan penyeimbangan ke dalam API sklearn. Terima kasih

New Feature

Komentar yang paling membantu

@thenomemac Anda benar sekali tentang fungsi kerugian yang berubah karena paparan, saya salah. Bahkan, saya yakin saya berhasil. Saya memiliki WIP yang sangat awal (lebih dari sekadar bermain-main): https://github.com/bjlkeng/scikit-learn/blob/poisson_regression/sklearn/linear_model/poisson.py (lihat fungsi _poisson_loss() ).

@ josef-pkt Terima kasih, saya melihat implementasi statsmodels, sebenarnya cukup bagus (kecuali untuk API, yang saya bukan penggemar). Ini sebenarnya sedikit lebih umum di mana model "hitungan" mereka mendukung regresi berbasis hitungan lainnya seperti binomial negatif. Implementasi statsmodel sudah memperhitungkan eksposur dan regularisasi akun (yang juga saya cari).

Mengingat statsmodels memiliki implementasi, apakah menurut Anda masih berharga untuk memiliki sesuatu seperti ini di sklearn ? Jika demikian, saya dapat berusaha lebih keras untuk membuatnya menjadi bentuk yang dapat digunakan. Saya baru saja cukup sibuk dengan pekerjaan jadi saya tidak punya banyak waktu.

Semua 57 komentar

Saya pikir kita setidaknya harus menambahkan regresi poisson, meskipun saya tidak terlalu akrab dengannya.
Apakah Anda memiliki contoh kumpulan data terbuka?
Jenis data apa yang digunakan untuk kehilangan gamma?

Bisakah Anda menguraikan offset?

Ini semua akan menjadi model terpisah di linear_model , saya pikir. Saya tidak yakin apakah mereka biasanya belajar menggunakan l-bfgs atau jika orang menggunakan pemecah CD? Mungkin @mblondel atau @larsmans atau @agramfort tahu lebih banyak?

Distribusi poisson banyak digunakan untuk pemodelan data hitungan. Ini dapat ditunjukkan sebagai distribusi pembatas untuk pendekatan normal ke binomial di mana jumlah percobaan menjadi tak terhingga dan probabilitasnya menjadi nol dan keduanya terjadi pada tingkat sedemikian rupa sehingga np sama dengan beberapa frekuensi rata-rata untuk proses Anda. Gamma dapat secara teoritis ditunjukkan sebagai waktu sampai peristiwa poisson terjadi. Jadi, misalnya, jumlah kecelakaan yang akan Anda alami tahun ini secara teoretis dapat ditunjukkan sebagai poisson. Dan waktu yang diharapkan sampai kecelakaan Anda berikutnya adalah atau ketiga ext adalah proses gamma. Tweedie adalah induk umum dari distribusi ini yang memungkinkan penambahan bobot pada nol. Pikirkan tweedie sebagai model kerugian dolar dan 99 persen dari semua pelanggan memiliki bobot nol sisanya memiliki kerugian positif berekor panjang atau gamma. Dalam praktiknya, distribusi ini banyak digunakan untuk masalah regresi dalam asuransi, pemodelan bahaya, model bencana, keuangan, ekonomi, dan ilmu sosial. Jangan ragu untuk merujuk ke wikipedia. Saya ingin fungsi kerugian ini sebagai pilihan di glmnet, GBM, dan hutan acak. Ini berarti bahwa dalam GBM misalnya, algoritma boosting Freedman akan menggunakan kerugian ini sebagai ganti kerugian Gaussian atau kuartil. Gamma dan poisson (beta tweedie) sudah ada dalam paket Rs GBM dan glm dan xgboost memiliki beberapa dukungan. Offset digunakan oleh praktisi untuk menimbang data mereka berdasarkan eksposur. Biasanya model poisson memiliki fungsi tautan mis: yhat=offset x exp(output model regresi) disebut tautan log dan paling umum. Di sini offset memungkinkan eksposur ditangkap secara berbeda untuk unit pengamatan yang berbeda. Proses Poisson adalah aditif tetapi contoh yang berbeda mungkin telah diambil alih ruang atau waktu atau jumlah pelanggan yang tidak sama dan karenanya vektor offset diperlukan untuk setiap pengamatan. Saya bersedia menangani pemrograman ini, tetapi saya tidak terlalu akrab dengan api, jadi saya menghargai saran, jadi saya melakukan ini dengan benar dan membuatnya diluncurkan ke dalam rilis.

Oke, saya sedang mengerjakan implementasi ini. Saya menambahkan tiga distribusi yang disebutkan di atas dan offset. Saya akan menghargai umpan balik dari audiens sklearn umum tentang cara menerapkan offset. Saya berencana menambahkan argumen baru ke panggilan GradientBoostedRegression 'offset=None' di mana offset akan menjadi objek seperti vektor dengan panjang n (jumlah sampel). Pertanyaan utama saya adalah apakah saya harus menambahkan offset ke semua fungsi loss (Gaussian, Huber, Quantile) seperti yang dilakukan dalam implementasi GBM R atau apakah saya harus menambahkan aktifkan offset untuk bekerja dengan keluarga tweedie dan berikan peringatan jika Anda mencoba menggunakan offset dengan fungsi kerugian yang tidak didukung?

Saya lebih menanyakan kasus penggunaan praktis, seperti dalam kumpulan data atau publikasi. Saya tahu apa yang dilakukan distribusi;)

Ini mungkin akan menjadi tambahan yang bagus, meskipun saya tidak dapat menjamin bahwa kontribusi Anda akan digabungkan. Mungkin akan lebih baik untuk mendiskusikannya secara lebih luas sebelum Anda terjun. Kecuali jika Anda hanya ingin menerapkannya untuk diri Anda sendiri dan tidak peduli jika kami menggabungkannya ;)

Jadi saya kira Anda lebih tertarik pada peningkatan gradien, bukan model linier?

ping @pprett @glouppe @arjoly

Saya tertarik untuk mengintegrasikannya di sekitar tetapi kebanyakan ansambel pohon
pertama. Either way mereka menjadi cukup banyak pekerjaan duplikat sebagai hutan acak
dan GBM keduanya memiliki ABC yang berbeda untuk setiap fungsi kerugian. Jadi saya hanya bisa melakukan
pekerjaan sekali dan membuatnya bekerja di keduanya sayangnya. Saya juga bisa mendapatkan beberapa
kumpulan data Seperti apa prosesnya untuk menggabungkan proses apa ini?
harus saya ikuti. Saya baru berkontribusi jadi ingin memastikannya selesai
Baik. Tapi seperti yang saya katakan GBM memperlakukan kelas kerugian terlepas dari hal lain
di sklearn sehingga perubahan saya ke GBM dapat dengan mudah berdiri sendiri. Saya hanya harus
edit kode di skrip .py.
Pada 10 Desember 2015 16:57, "Andreas Mueller" [email protected] menulis:

Saya lebih meminta kasus penggunaan praktis, seperti dalam kumpulan data atau
publikasi. Saya tahu apa yang dilakukan distribusi;)

Itu mungkin akan menjadi tambahan yang bagus, meskipun aku tidak bisa menjamin itu
kontribusi Anda akan digabungkan. Mungkin akan lebih baik untuk mendiskusikannya
lebih luas sebelum Anda terjun. Kecuali jika Anda hanya ingin menerapkannya untuk
diri Anda dan tidak peduli jika kita menggabungkannya ;)

Jadi saya anggap Anda sebagian besar tertarik pada peningkatan gradien, bukan linier
model?

ping @pprett https://github.com/pprett @glouppe
https://github.com/glouppe @arjoly https://github.com/arjoly


Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment -163761067
.

Akan menyenangkan untuk mendapatkan beberapa masukan dari pakar GBM kami yang saya ping di atas, tetapi Anda juga dapat menulis ke milis menanyakan apakah orang akan tertarik dengan penambahan tersebut.

apakah Anda juga berencana untuk mendukung pemecah koordinat dengan hukuman L1/L2?
seperti _glmnet
?_

Adakah pembaruan tentang masalah ini? Saya ingin melihat regresi Poisson ditambahkan ke linear_models jadi saya tidak perlu menjelajah di luar menggunakan sklearn . Jika tidak ada yang secara aktif mengerjakannya, saya dapat mencoba menerapkannya.

tidak ada AFAIK.

jangan ragu untuk mencobanya dan membagikan implementasi WIP.

Saya akan mengerjakan ini dan saya masih akan melakukannya juga. Jika saya melakukannya meskipun saya
perlu cara yang bersih untuk menambahkan offset ke api. Saya sedang berpikir untuk menambahkan
offset kwarg dan defaultnya bisa None dan berikan peringatan jika loss
bukan racun. Saya terutama menggunakan poisson untuk pemodelan asuransi di mana
offset adalah log (mendapatkan eksposur) Saya tahu dari eksperimen dan distribusi
teori bahwa untuk data jumlah yang jarang Anda akan mendapatkan model yang jauh lebih rendah
tanpa offset. Saat ini model linier R dan GBM keduanya mendukung Poisson
dengan offset. Jadi itulah alat saya saat ini. Saya ingin menambahkan ini ke
sklearn meskipun jika orang lain ingin ditambahkan.
Pada 1 Mei 2016 04:03, "Alexandre Gramfort" [email protected]
menulis:

tidak ada AFAIK.

jangan ragu untuk mencobanya dan membagikan implementasi WIP.


Anda menerima ini karena Anda yang menulis utas.
Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment -216024458

@thenommac Apakah Anda memiliki implementasi WIP yang bisa saya lihat?

Untuk offset, tidak bisakah Anda meminta pengguna untuk membagi jumlah mereka dengan offset/exposure untuk menjadikan nilai "y" sebagai nilai alih-alih hitungan (https://en.wikipedia.org/wiki/Poisson_regression#. 22Exposure.22_and_offset)? Paket GLM R memiliki antarmuka yang bagus untuk menentukan model (termasuk menentukan offset) tetapi tidak yakin bagaimana itu akan cocok dengan API model linier yang ada.

@bjlkeng Saya belum menyelesaikan implementasi WIP. Saya mulai beberapa saat lalu terganggu. Saya tidak berpikir membagi dengan eksposur untuk mendapatkan tingkat poisson adalah derivasi yang benar dari algoritma GBM untuk kehilangan poisson. Offset=log(eksposur) dalam gradien adalah faktor tambahan. Jadi, Anda secara efektif memberi bobot lebih pada "area" dengan eksposur yang lebih tinggi. Tidak 100% yakin apakah Anda dapat kembali ke gradien yang benar pada setiap iterasi untuk menyesuaikan pelajar dasar (pohon) karena skema saat ini untuk meneruskan bobot ke pelajar pohon adalah perkalian bukan aditif. Saya akan mencoba mengetikkan turunan matematis yang lebih ketat dari apa yang saya maksud. Saya dapat mengatakan bahwa dalam praktiknya itu penting. Dalam kumpulan data dunia nyata, saya telah membuat model di mana Anda mengharapkan data hitungan menjadi poisson, menggunakan gbm R akan menyatu lebih cepat dan ke hasil yang lebih baik karena menangani offset dengan cara yang benar "secara matematis". Dan implementasi gbm lainnya seperti xgboost dengan fungsi kehilangan poisson tidak dapat memodelkan data juga menggunakan tingkat Poisson seperti yang disarankan.

(selain saya menemukan tautan ke masalah ini di stats.stackexchange

statmodels GLM memiliki offset dan eksposur (eksposur hanya untuk tautan log)

Di master sekarang ada opsi jaring elastis untuk GLM dan beberapa model lainnya, diimplementasikan melalui loop apython untuk penurunan koordinat (menggunakan kemungkinan maksimum umum dengan offset)

Di master sekarang ada juga keluarga Tweedie untuk GLM. Namun, itu tidak menggunakan fungsi kerugian loglikelihood penuh karena itu adalah jumlah tak terbatas dari istilah dan menghitung versi terpotong lambat dan perkiraan yang umum digunakan tidak terlalu akurat pada beberapa rentang ruang parameter

Jadi, jika Anda memerlukan implementasi referensi, statsmodels memiliki bagian-bagian ini. Saya tidak pernah mendengar atau melihat GBM untuk GLM. Saya juga tidak cukup tahu tentang kode scikit-learn untuk mengetahui bagaimana kode itu cocok.
)

@thenomemac Anda benar sekali tentang fungsi kerugian yang berubah karena paparan, saya salah. Bahkan, saya yakin saya berhasil. Saya memiliki WIP yang sangat awal (lebih dari sekadar bermain-main): https://github.com/bjlkeng/scikit-learn/blob/poisson_regression/sklearn/linear_model/poisson.py (lihat fungsi _poisson_loss() ).

@ josef-pkt Terima kasih, saya melihat implementasi statsmodels, sebenarnya cukup bagus (kecuali untuk API, yang saya bukan penggemar). Ini sebenarnya sedikit lebih umum di mana model "hitungan" mereka mendukung regresi berbasis hitungan lainnya seperti binomial negatif. Implementasi statsmodel sudah memperhitungkan eksposur dan regularisasi akun (yang juga saya cari).

Mengingat statsmodels memiliki implementasi, apakah menurut Anda masih berharga untuk memiliki sesuatu seperti ini di sklearn ? Jika demikian, saya dapat berusaha lebih keras untuk membuatnya menjadi bentuk yang dapat digunakan. Saya baru saja cukup sibuk dengan pekerjaan jadi saya tidak punya banyak waktu.

Saya pikir ini akan tetap berharga.

@bjlkeng Terima kasih atas komentarnya! Apakah Anda tertarik untuk mengambilnya dan membuat Pull Request? Jika tidak, saya dapat mencoba mengambil masalah ini dan mencoba membuat PR... Pertama untuk poisson dan selanjutnya untuk gamma... @agramfort Apakah Anda setuju? :)

Hai @raghavrv , maaf atas jawaban yang terlambat. Pekerjaan menjadi sangat sibuk dan saya juga menyadari bahwa itu akan memakan waktu lebih lama daripada waktu yang saya miliki. Jadi silakan lanjutkan. Saya akan melihat implementasi statsmodel karena mereka memiliki sebagian besar fungsi yang saya pikir Anda inginkan di sini.

@raghavrv Apakah Anda mulai mengerjakan ini? Saya mungkin juga dapat berkontribusi sehingga kita memiliki setidaknya regresi Poisson di sklearn.

@btabibian @raghavrv Apa status ini? Saya memerlukan implementasi regresi Poisson untuk sebuah proyek dan bersedia berkontribusi.

Silakan pergi ke depan :) Saya tidak punya waktu untuk ini maaf ...

Sama saya belum sempat. Saya juga telah berjuang dengan API dan bagaimana caranya
mengintegrasikan offset. Saya bisa menunjukkan matematika atau contoh kode di statsmodels.
Tapi TLDR Anda perlu offset jika Anda ingin menggunakan regresi poisson dengan
eksposur yang tidak sama (area atau waktu) maka Anda perlu offset. Modelnya tidak
berikan bobot yang benar jika Anda hanya membagi jumlah Anda dengan eksposur.

Pada 1 Apr 2017 14:49, "(Venkat) Raghav (Rajagopalan)" <
[email protected]> menulis:

Silakan pergi ke depan :) Saya tidak punya waktu untuk ini maaf ...


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-290939521 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AOeuWjVGf3-VmeasNHMLQAB1dnd4zuUQks5rrpw4gaJpZM4Gwd6-
.

Saya akan mulai menyelidikinya kalau begitu. @thenomac terima kasih atas tipnya! Saya akan memeriksa implementasi statsmodels untuk melihat bagaimana mereka menangani eksposur.

Halo, apakah ada pembaruan? Apakah mungkin untuk menambahkan kemungkinan binomial negatif? Ini seharusnya tidak membuat banyak perbedaan bagi Poisson. Kalau tidak, saya bisa melihat ini..

Terbaik,
Simon

Hai @dirmeier , sayangnya tidak. Saya telah beralih ke model Bayesian hierarkis dan tidak pernah sempat menerapkan regresi Poisson.

@dirmeier , @jakobworldpeace apakah ada pekerjaan yang sedang berjalan yang dapat Anda tunjukkan kepada kami? Saya juga bisa melompat untuk melihat ini?

Hai @NickHoernle ,
Saat ini saya menggunakan R untuk regresi NB, karena saya tidak punya waktu. Saya akan senang jika Anda ingin menerapkan ini :)

@NickHoernle Tidak ada WIP tetapi implementasi regresi statsmodels Poisson harus membantu Anda memulai.

Bagus sekali. Saya akan mulai melihat ini dan melihat di mana kita bisa.

Saya telah mengerjakan GLM di sini: https://github.com/madrury/py-glm.

Saya tidak bermaksud agar ini digabungkan ke sklearn, ini benar-benar untuk digunakan siswa saya di kelas, tetapi ingin menunjukkan pekerjaan jika itu berguna bagi siapa saja yang mengerjakan masalah ini.

pemecah Anda dalam metode newton yang akan kesulitan menskalakan dalam tinggi
dimensi. Itu juga tidak mendukung hukuman tipe L1. Periksa juga API Anda
konsistensi dengan sklearn. Fit seharusnya hanya mengambil X, y dan sample_weights

untuk memperbaiki masalah skalabilitas, hal pertama yang harus dilakukan adalah menggunakan l-bfgs. Melihat
kode regresi logistik kami

HTH

Seperti yang saya katakan, tujuan saya bukanlah konsistensi total dengan sklearn, itu hanya untuk memiliki implementasi sederhana yang mengikuti MuCullagh dan Nelder dan menyediakan beberapa alat inferensial (yang saya percaya menempatkannya di luar cakupan sklearn). Ini dimaksudkan untuk digunakan di lingkungan kelas pada kumpulan data berukuran sedang. Saya hanya ingin menautkan kode di sini jika ada ide yang berguna bagi siapa pun yang mengerjakan fitur ini untuk sklearn (dan untuk mendapatkan sedikit paparan, tidak ada salahnya).

Saya tidak memikirkan hukuman L1 seperti dalam ruang lingkup, untuk itu saya hanya akan menggunakan glmnet . L2 cukup sederhana untuk dimasukkan ke dalam kerangka kerja GLM klasik yang saya lanjutkan dan tambahkan.

Adapun metode fit , saya akan memberikan komentar kecil di sini, saya harap itu tidak keluar dari tempatnya. Kurangnya offset yang disediakan agar sesuai adalah bagian besar mengapa sklearn tidak berhasil pada pekerjaan terakhir saya. Anda benar-benar membutuhkan itu untuk melakukan pemodelan asuransi yang tepat. Regulator mengharapkan model Poisson dan Tweedie cocok seperti itu, dan bisa sangat kaku dalam harapan mereka.

terima kasih untuk memperjelas visi.

mengenai offset apakah itu khusus untuk model Poisson dan Tweedie?
jika itu adalah nilai spesifik sampel maka itu bisa menjadi sample_prop yang sesuai
parameter.
Hanya max_iter atau tol yang tidak bergantung pada data yang seharusnya ada
init.

Harus dibandingkan dengan #9405?

@agramfort Anda benar tentang max_iter dan tol, saya akan memindahkannya ke __init__.

Apakah Anda memiliki referensi untuk apa yang Anda maksud dengan sample_prop ?

lihat https://github.com/scikit-learn/enhancement_proposals/pull/6

itu masih dibahas apa cara terbaik untuk melakukannya ...

Catatan singkat tentang offset: AFAIK, bobot sampel cukup untuk menangani eksposur, yaitu memasang y=values/exposure dengan sample_weight=exposure harus melakukan pekerjaan dan menggeneralisasi dengan baik ke distribusi dan tautan lain selain Poisson dengan log-link.

@madrury Terima kasih telah berbagi. Saya akan melihat implementasi Anda dan membandingkannya dengan milik saya.

Apakah orang-orang masih tertarik dengan ini? Saya akan tertarik untuk berkontribusi.

Saya masih tertarik dengan fitur tersebut jika seseorang menambahkannya sklearn.

Pada Kam, 21 Des 2017 pukul 18:04, Jared Samet [email protected]
menulis:

Apakah orang-orang masih tertarik dengan ini? Saya akan tertarik untuk berkontribusi.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-353479618 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AOeuWtvi4Um_o_ERuVe1ob86201G-ASdks5tCuP4gaJpZM4Gwd6-
.

@oracleofnj @thenommac

Saya memiliki implementasi glm umum yang divalidasi di perpustakaan py-glm saya, tetapi tidak memiliki rencana untuk mencoba menggabungkannya ke sklearn (saya membuat beberapa keputusan desain yang membuatnya tidak kompatibel dengan sklearn). Ini diatur sehingga sangat mudah untuk menambahkan keluarga eksponensial lainnya.

Saya juga memiliki implementasi python glmnet murni penuh yang mendukung keluarga eksponensial yang sama di perpustakaan yang sama, tetapi saya terjebak pada bug dan saya telah meletakkannya. Saya akan senang beberapa bantuan alasan melalui bug, hanya perlu beberapa motivasi untuk mengambilnya kembali.

@madrury Senang mencoba membantu Anda mengatasi bug itu.

Halo, apa saja yang dibuat untuk distribusi ini? Penasaran dengan update apa saja. Terima kasih.

Saya pribadi akan baik-baik saja dengan menutup masalah ini untuk membantu para kontributor
fokus. Alasan:

  • Lanskap python telah berubah

  • statsmodels sekarang jauh lebih matang dan menyertakan distribusi ini dengan
    bobot eksposur yang tepat

  • implementasi berbasis jit melalui pytorch atau tensorflow membuatnya lebih mudah untuk
    menerapkan kerugian esotarik apa pun tanpa penalti atau paket kinerja
    kompilasi ulang

Pikiran?

kami sedang mengalokasikan sumber daya untuk membantu
https://github.com/scikit-learn/scikit-learn/pull/9405
dan membuatnya (setidaknya beberapa bagian) mendarat di master. Itu harus diatasi
bulan-bulan berikutnya.

Pekerjaan yang luar biasa!

Pada Sabtu, 13 Apr 2019, 3:27 Alexandre [email protected]
menulis:

kami sedang mengalokasikan sumber daya untuk membantu
https://github.com/scikit-learn/scikit-learn/pull/9405
dan membuatnya (setidaknya beberapa bagian) mendarat di master. Itu harus diatasi
bulan-bulan berikutnya.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-482784732 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AOeuWj8PD0nfltM7Acg12Pfhl4sG5n7Fks5vgYbogaJpZM4Gwd6-
.

Akan sangat bagus untuk memiliki GLM di sciki-learn. Ini akan mengurangi kebutuhan untuk pergi ke bahasa lain. Menantikannya.

Sepakat. Berasal dari dunia R, saya terkejut bahwa sklearn belum memiliki fungsionalitas GLM. Saya berharap akan segera.

Saya akan menambahkan suara lain untuk memasukkan GLM Di sklearn. Ini adalah kelas model inti yang diajarkan dalam program statistik sarjana. Juga, fakta bahwa ada bagian "Model Linier Umum" di manual pengguna yang tidak menyertakan diskusi tentang fungsi tautan atau distribusi kesalahan mengejutkan saya.

@patrickspry Statsmodels memiliki implementasi yang baik dari sebagian besar GLM yang akan dipelajari oleh seorang sarjana.

@patrickspry Ada PR yang cukup lengkap di https://github.com/scikit-learn/scikit-learn/pull/9405 dan pekerjaan sedang berlangsung untuk menggabungkan fungsi itu.

Ah, fantastis! Terimakasih atas peringatannya!

Adakah perkiraan waktu untuk menggabungkan PR? Terima kasih.

@Jiang-Li Lihat di sini

Untuk model linier, ada #14300. Lalu ada masalah terbuka #15123. Saya pribadi sangat ingin melihat model berbasis pohon dengan fungsi tweedie loss.

Untuk model linier #14300 sekarang digabungkan, meskipun fitur tambahan masih dapat ditambahkan https://github.com/scikit-learn/scikit-learn/pull/9405#issuecomment -594553953

Saya pribadi sangat ingin melihat model berbasis pohon dengan fungsi tweedie loss.

Itu memang bisa menjadi langkah selanjutnya (mis. https://github.com/scikit-learn/scikit-learn/issues/15123#issuecomment-542090766)

Sangat mengesankan melihat karya hebat di sklearn 0.23, yang mencakup Poisson, gamma, dan tweedie. Berharap untuk melihat lebih banyak peningkatan di masa depan.
Membaca Panduan Pengguna, Regresi Logistik berada di luar regresi linier umum. Mungkin harus ada setidaknya beberapa kata yang menyatakan di bagian regresi linier umum bahwa regresi logistik adalah jenis GLM dan dapat diselesaikan dengan menggunakan fungsi kerugian penyimpangan yang sama.

Sepertinya kita bisa menyelesaikan masalah sekarang setelah #14300 digabungkan?

Membaca Panduan Pengguna, Regresi Logistik berada di luar regresi linier umum. Mungkin harus ada setidaknya beberapa kata yang menyatakan di bagian regresi linier umum bahwa regresi logistik adalah jenis GLM dan dapat diselesaikan dengan menggunakan fungsi kerugian penyimpangan yang sama.

Terima kasih atas umpan baliknya @magicmathmandarin ! Ya, tentu saja. PR asli https://github.com/scikit-learn/scikit-learn/pull/9405 sebenarnya termasuk penyimpangan BinomialDistribution untuk regresi logistik biner. Alasan kami tidak menyertakan bahwa dalam PR gabungan pertama adalah bahwa meskipun mereka memang bagian dari kerangka teoretis yang sama, implementasi LogisticRegression khusus saat ini masih disarankan (lebih baik diuji oleh pengguna, menangani lebih banyak opsi, misalnya multi-kelas), dan kami tidak ingin membingungkan pengguna. Sekarang setelah digabungkan, saya setuju bahwa bagian itu dapat diformulasikan dengan lebih baik.

Sepertinya kita bisa menyelesaikan masalah sekarang setelah #14300 digabungkan?

Tentu. Ada beberapa diskusi lanjutan di https://github.com/scikit-learn/scikit-learn/issues/16668 , https://github.com/scikit-learn/scikit-learn/pull/16692 dan https: //github.com/scikit-learn/scikit-learn/issues/15123.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat