Matlab中的岭回归产生的结果与直接计算不同
我试图在Matlab中运行岭回归(岭):Matlab中的岭回归产生的结果与直接计算不同,matlab,Matlab,我试图在Matlab中运行岭回归(岭):L是一些矩阵,x是一些随机向量,y=Lx+αn是另一个向量。我希望ridge(y,L,α)返回与以下相同的结果: (LL'+α^2I)^(−1) 是的,但后者明显更好。我无法理解这个问题,因为我认为这正是ridge()所做的。我甚至尝试了α=1 例如: n = randn(N^2,1); n2 = randn(N^2,1); L = (some N^2*N^2 matrix); y = L*n + n2; x_ridge = ridge(y,L,1);
L
是一些矩阵,x
是一些随机向量,y=Lx+αn
是另一个向量。我希望ridge(y,L,α)
返回与以下相同的结果:
(LL'+α^2I)^(−1) 是的,但后者明显更好。我无法理解这个问题,因为我认为这正是ridge()
所做的。我甚至尝试了α=1
例如:
n = randn(N^2,1);
n2 = randn(N^2,1);
L = (some N^2*N^2 matrix);
y = L*n + n2;
x_ridge = ridge(y,L,1);
x_ls = (L*L' + eye(N^2))^-1*L'*y;
和x_-ls
和x_-ridge
显著不同
谢谢你的帮助 简单地说,你的公式是错误的,数值不稳定。这可能就是他们不同的原因。谢谢。我发现了问题所在,显然在Matlab中,我需要将k
乘以像素数,以获得等价性。