Я запрограмував логістичну регресію за допомогою алгоритму IRLS . Я хотів би застосувати санкцію LASSO для автоматичного вибору потрібних функцій. При кожній ітерації вирішується наступне:
Нехай - невід'ємне дійсне число. Я не караю перехоплення, як пропонується в "Елементах". Статистичне навчання . Дітто для вже нульових коефіцієнтів. В іншому випадку я віднімаю термін з правого боку:
Однак я не впевнений у зміні алгоритму IRLS. Це правильний шлях?
Редагувати: Хоча я не був у цьому впевнений, ось одне з рішень, яке я нарешті придумав. Що цікаво, це рішення відповідає тому, що я зараз розумію про LASSO. На кожному етапі дійсно два кроки замість одного:
- перший крок такий же, як і раніше: робимо ітерацію алгоритму (як би у формулі для градієнта вище),
- другий крок - новий: ми застосовуємо м'який поріг до кожного компонента (за винятком компонента , який відповідає перехопленню) вектора отриманого на першому кроці. Це називається Ітераційним алгоритмом м'якого порогу . β