Saya mencari beberapa sumber terbuka atau perpustakaan yang ada yang dapat saya gunakan. Sejauh yang saya katakan paket glmnet tidak mudah diperluas untuk menutupi kasus non negatif. Saya mungkin salah, Siapa pun yang punya ide sangat dihargai.
Maksud saya non-negatif semua koefisien dibatasi menjadi positif (> 0).
Jawaban:
Di
glmnet
sana ada pilihanyang dapat Anda gunakan dan itu akan menjadi cara yang tepat untuk menegakkan batasan positif pada koefisien yang dipasang dan jika Anda mengatur parameter
alpha
ke 1 Anda akan menyesuaikan LASSO. Dalam kombinasi dengan argumenupper.limits
Anda juga dapat menentukan batasan kotak. Theglmnet
paket juga jauh lebih cepat daripadapenalized
paket, disarankan dalam jawaban lain di sini.Sebuah
Rcpp
versiglmnet
yang dapat ditampung bersih lasso & elastis dengan dukungan untuk positif dan kotak kendala juga dalam persiapan, dan tersedia untuk pengujian di https://github.com/jaredhuling/ordinissumber
Lihat paket yang dikenakan sanksi untuk satu opsi. The Vignette (PDF!) Yang datang dengan paket memiliki contoh ini dalam bagian 3.9.
Pada dasarnya mengatur argumen
positive = TRUE
dalam panggilan kepenalized()
fungsi.sumber
Ini dan makalah ini menunjukkan bahwa dalam beberapa kondisi, ambang keras dari solusi kuadrat non-negatif dapat melakukan yang setara atau lebih baik daripada regularisasi L1 (LASSO), dalam hal kinerja. Salah satu contoh adalah jika matriks desain Anda hanya memiliki entri non-negatif, yang sering terjadi.
Layak dicoba, karena NNLS sangat banyak didukung dan juga akan lebih mudah / cepat untuk diselesaikan.
sumber