Programei uma regressão logística usando o algoritmo IRLS . Gostaria de aplicar uma penalização do LASSO para selecionar automaticamente os recursos corretos. A cada iteração, o seguinte é resolvido:
Seja um número real não negativo. Não estou penalizando a interceptação, como sugerido em Os elementos de. Aprendizagem Estatística . O mesmo vale para os coeficientes já nulos. Caso contrário, subtraio um termo do lado direito:
No entanto, não tenho certeza sobre a modificação do algoritmo IRLS. É o caminho certo a fazer?
Edit: Embora eu não estava confiante sobre isso, aqui está uma das soluções que finalmente surgiu. O interessante é que essa solução corresponde ao que agora entendo sobre o LASSO. De fato, existem duas etapas em cada iteração, em vez de apenas uma:
- o primeiro passo é o mesmo de antes: fazemos uma iteração do algoritmo (como se na fórmula do gradiente acima),
- o segundo passo é o novo: aplicamos um limiar suave a cada componente (exceto o componente , que corresponde à interceptação) do vetor obtido na primeira etapa. Isso é chamado de algoritmo iterativo de limiar suave .