Nieujemna implementacja lasso w R.

13

Szukam jakiegoś open source lub istniejącej biblioteki, której mogę użyć. O ile mówię, pakiet glmnet nie jest łatwo rozszerzalny, aby objąć przypadek nieujemny. Mogę się mylić, każdy z wszelkimi pomysłami bardzo cenionymi.

Przez nieujemne rozumiem, że wszystkie współczynniki są ograniczone do dodatnich (> 0).

ghh.
źródło
1
Wybacz mi, że pytam, ale co dokładnie masz na myśli przez lasso nieujemne? Aby utrzymać wszystkie współczynniki> 0 lub pozwolić tylko na pozytywne prognozy? Googling mnie nie oświecił, ale brzmi jak coś, o czym chciałbym wiedzieć.
Backlin,
1
Przepraszam za zamknięcie pytania, ale lepiej zadać je i odpowiedzieć na stronie www.crossvalidated.com. Oznacziłem pytanie do migracji, więc mody zajmą się tym wkrótce. To powiedziaw, proszę wyjaśnić swoje pytanie i dokładnie wyjaśnić, czego chcesz. Ekspert lasso w naszej grupie badawczej nie był w stanie dowiedzieć się, do czego
dążysz
Przepraszam za to. Brak ujemny oznacza, że ​​wszystkie współczynniki są dodatnie. Próbowałem użyć pakietu glmnet, ale to rozwiązuje tylko ogólny przypadek.
ghh.

Odpowiedzi:

8

W glmnetistnieje możliwość

lower.limits=0

którego możesz użyć i byłby to odpowiedni sposób na wymuszenie ograniczeń alphadodatnich na dopasowanych współczynnikach, a jeśli ustawisz parametr na 1, dopasujesz LASSO. W połączeniu z argumentem upper.limitsmożna również określić ograniczenia pola. glmnetPakiet jest również znacznie szybciej niż penalizedopakowania, zasugerował w innej odpowiedzi tutaj.

Przygotowywana jest również Rcppwersja, glmnetktóra może pasować do lasso i elastycznej siatki ze wsparciem dla pozytywności i ograniczeń pudełkowych, i jest dostępna do testowania na https://github.com/jaredhuling/ordinis

Tom Wenseleers
źródło
7

Zobacz karany pakiet dla jednej opcji. Vignette (PDF!), Który pochodzi z pakietu ma przykład tego w rozdziale 3.9.

Zasadniczo ustaw argument positive = TRUEw wywołaniu penalized()funkcji.

Przywróć Monikę - G. Simpson
źródło
4

Ten i ten dokument pokazują, że w niektórych warunkach twarde prógowanie nieujemnego rozwiązania najmniejszych kwadratów może być równoważne lub lepsze niż regularyzacja L1 (LASSO) pod względem wydajności. Jednym z przykładów jest sytuacja, gdy macierz projektowa zawiera tylko wpisy nieujemne, co często ma miejsce.

Warto to sprawdzić, ponieważ NNLS jest bardzo szeroko wspierany i będzie również łatwiejszy / szybszy do rozwiązania.

Bitowe
źródło