Не отрицательная лассо реализация в R

13

Я ищу какой-нибудь открытый исходный код или существующую библиотеку, которую я могу использовать. Насколько я знаю, пакет glmnet не очень легко расширяется, чтобы охватить неотрицательный случай. Я могу ошибаться, Любой, у кого есть идеи, высоко ценится.

Под неотрицательным я подразумеваю, что все коэффициенты должны быть положительными (> 0).

GBH.
источник
1
Извините за вопрос, но что именно вы имеете в виду под неотрицательным лассо? Сохранить все коэффициенты> 0 или разрешить только положительные прогнозы? Гугл не просветил меня, но это звучит как то, о чем я хотел бы знать.
Бэклин
1
Извините за закрытие вашего вопроса, но лучше спросить и ответить на www.crossvalidated.com Я пометил вопрос для миграции, так что моды позаботятся о нем в ближайшее время. При этом, пожалуйста, проясните свой вопрос и объясните, что именно вы хотите. Эксперт по лассо в нашей исследовательской группе не мог понять, к чему ты стремился ...
Джорис Мейс
Прости за это. Не отрицательный означает, что все коэффициенты являются положительными. Я попытался использовать пакет glmnet, но это решает только для общего случая.
Гбх.

Ответы:

8

В glmnetесть вариант

lower.limits=0

что вы можете использовать, и это было бы подходящим способом обеспечить ограничения положительности на подобранные коэффициенты, и если вы установите параметр alphaв 1, вы будете использовать LASSO. В сочетании с аргументом upper.limitsвы также можете указать ограничения блока. glmnetПакет также намного быстрее , чем penalizedпакет, предложенный в другой ответ здесь.

RcppВерсия , glmnetкоторая может соответствовать лассо и эластичную сеть с поддержкой позитивности и коробчатых ограничений также в процессе подготовки, и доступен для тестирования на https://github.com/jaredhuling/ordinis

Том Венселерс
источник
7

Смотрите штрафной пакет для одного варианта. Vignette (PDF!) , Который поставляется с пакетом имеет пример этого в разделе 3.9.

По сути установить аргумент positive = TRUEв вызове penalized()функции.

Восстановить Монику - Дж. Симпсон
источник
4

Эта и эта статья демонстрируют, что при некоторых условиях жесткое определение порога неотрицательного решения наименьших квадратов может выполнять эквивалент или лучше, чем регуляризация L1 (LASSO), с точки зрения производительности. Один из примеров - если в вашей матрице дизайна есть только неотрицательные записи, что часто имеет место.

Стоит проверить, так как NNLS очень широко поддерживается и также будет легче / быстрее решать.

побитовое
источник