Implementazione lazo non negativa in R


13

Sto cercando un open source o una libreria esistente che posso usare. Per quanto ne dico, il pacchetto glmnet non è facilmente estendibile per coprire il caso non negativo. Potrei sbagliarmi, chiunque abbia qualche idea molto apprezzata.

Per non negativo intendo che tutti i coefficienti sono vincolati ad essere positivi (> 0).


1
Scusatemi per averlo chiesto, ma cosa intendete esattamente con lazo non negativo? Mantenere tutti i coefficienti> 0 o consentire solo previsioni positive? Googling non mi ha illuminato, ma sembra qualcosa che mi piacerebbe sapere.
Backlin

1
Ci scusiamo per aver chiuso la tua domanda, ma è meglio chiedere e rispondere su www.crossvalidated.com Ho segnalato la domanda per la migrazione, quindi le mod si prenderanno cura di lei a breve. Detto questo, chiarisci la tua domanda e spiega esattamente cosa vuoi. L'esperto di lazo nel nostro gruppo di ricerca non è riuscito a capire a cosa stavi puntando ...
Joris Meys,

Mi dispiace per quello. Non negativo significa che tutti i coefficienti sono positivi. Ho provato ad usare il pacchetto glmnet ma questo risolve solo per il caso generale.
gbh.

Risposte:


8

Nel glmnetv'è la possibilità

lower.limits=0

che è possibile utilizzare e che sarebbe il modo appropriato per imporre vincoli di positività sui coefficienti adattati e se si imposta il parametro alphasu 1 si adatterà LASSO. In combinazione con l'argomento upper.limitsè anche possibile specificare i vincoli di casella. Il glmnetpacchetto è anche molto più veloce del penalizedpacchetto, suggerito in un'altra risposta qui.

È in preparazione anche una Rcppversione glmnetche può adattarsi al lazo e alla rete elastica con supporto per positività e vincoli di scatola, ed è disponibile per i test su https://github.com/jaredhuling/ordinis


7

Vedi il pacchetto penalizzato per un'opzione. La vignetta (PDF!) Fornita con il pacchetto ne contiene un esempio nella sezione 3.9.

Sostanzialmente imposta l'argomento positive = TRUEnella chiamata alla penalized()funzione.


4

Questo e questo documento dimostrano che in alcune condizioni, il limite massimo della soluzione dei minimi quadrati non negativi può essere equivalente o migliore della regolarizzazione L1 (LASSO), in termini di prestazioni. Un esempio è se la tua matrice di design ha solo voci non negative, come spesso accade.

Vale la pena dare un'occhiata, poiché NNLS è ampiamente supportato e sarà anche più facile / veloce da risolvere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.