Eu tenho duas implementações diferentes ridge
no MATLAB. Um é simplesmente
(como visto na página de regressão de cume da Wikipedia ), com sendo a matriz de identidade das colunas de tamanho ( ) column ( ) e
Estou simplesmente chamando o "cume" de Matlab com
x = ridge(A, b, lambda)
Meu problema é que ambos retornam resultados diferentes. (1) retorna os resultados que eu quero (sei disso comparando resultados com outras pessoas), mas por que (2) não retorna os mesmos resultados?
Minha matriz é esparsa, é preenchida com 1% 1 e 99% 0. Algumas colunas contêm quase nenhum número 1. A maior diferença parece ser que o coeficiente para as colunas com muito poucos 1s está muito próximo de 0 em (1), mas pode estar bem longe de 0 em (2)
Alguém tem alguma idéia de por que é diferente e como posso modificar a chamada em (2) para fornecer os mesmos resultados que (1)?
ridge
ridge
(de acordo com a documentação do MATLAB) indica que (como é padrão): Por padrão, b é calculado após a centralização e escalar os preditores de ter média 0 e desvio padrão 1. O modelo não inclui um termo constante e X não deve conter uma coluna de 1s. .