Seja A matriz de variáveis independentes e B seja a matriz n × 1 correspondente dos valores dependentes. Na regressão cume, nós definimos um parâmetro λ de forma que: β = ( A T A + X I ) - 1 A T B . Agora vamos [USV] = SVD (A) e de d i = i t h entrada diagonal de 's'. definimos graus de liberdade (df) = Σ n i = 1 ( d i ) 2 . A regressão de Ridge reduz os coeficientes dos componentes de baixa variância e, portanto, o parâmetroλcontrola os graus de liberdade.Portanto,paraλ=0, que é o caso da regressão normal, df = n, e, portanto, todas as variáveis independentes serão consideradas. O problema que estou enfrentando é encontrar o valor deλdado 'df' e a matriz 's'. Tentei reorganizar a equação acima, mas não estava obtendo uma solução de formulário fechado. Forneça qualquer indicação útil.
fonte
Respostas:
Um algoritmo de Newton-Raphson / Fisher-scoring / Taylor-series seria adequado para isso.
Você tem a equação para resolver para h ( λ ) = p ∑ i = 1 d 2 iλ
com derivada
∂h
fonte
Aqui está o pequeno código do Matlab com base na fórmula comprovada pela probabilityislogic:
fonte
while ( abs(diff)>threshold )
.while( abs(diff) > threshold )