Я запрограммировал логистическую регрессию, используя алгоритм IRLS . Я хотел бы применить штраф LASSO для автоматического выбора правильных функций. На каждой итерации решается следующее:
Пусть - неотрицательное действительное число. Я не наказываю перехват как предложено в Элементах. Статистическое обучение . То же самое для уже нулевых коэффициентов. В противном случае я вычитаю термин из правой части:
Однако я не уверен насчет модификации алгоритма IRLS. Это правильный способ сделать?
Изменить: Хотя я не был уверен в этом, вот одно из решений, которые я наконец-то придумал. Что интересно, это решение соответствует тому, что я теперь понимаю о LASSO. На каждой итерации действительно два шага, а не один:
- первый шаг такой же, как и раньше: мы делаем итерацию алгоритма (как если бы в формуле для градиента выше),
- второй шаг - новый: мы применяем мягкую настройку порога к каждому компоненту (за исключением компонента , который соответствует точке пересечения) вектора полученного на первом шаге. Это называется итеративный алгоритм мягкого определения порога .