Поддерживает ли пакет glmnet многомерную сгруппированную регрессию лассо?
Я пытаюсь выполнить многомерную регрессию лассо для набора данных с 300 независимыми переменными и 11 переменными ответа, используя glmnet
библиотека. Я хотел бы сгруппировать некоторые входные переменные, а затем применить многомерную сгруппированную регрессию лассо, чтобы все сгруппированные переменные либо выбирались, либо отбрасывались моделью лассо в зависимости от их значимости. Как я могу этого добиться? Я заглянул вgrplasso
пакет, но он не поддерживает многомерную регрессию.
1 ответ
Я предполагаю, что вы имеете в виду полиномиальную регрессию, поскольку у вас есть проблема нескольких классов (11 классов). Кроме того, вы хотите применить групповое лассо. Я рекомендую использовать пакет msgl, потому что он поддерживает групповое лассо, разреженное групповое лассо и обычное лассо. Это можно сделать, указав альфа-параметр
Альфа: значение α 0 для группового лассо, 1 для лассо, от 0 до 1 дает штраф для разреженного группового лассо.
Вы можете использовать его для двоичной классификации или мультиклассовой классификации, как в вашей задаче. Вы также можете настроить лямбду с помощью перекрестной проверки, используя тот же пакет. Документация довольно ясна, а также есть хорошая страница для начала работы с примером того, как сгруппировать переменные и выполнить анализ. Согласно моему личному опыту работы с этим пакетом, он невероятно быстр, но не так удобен, как пакет glmnet.
Еще одна вещь, пакет зависит от другого необходимого пакета, который также необходимо установить, а именно sglOptim.