Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中的岭回归产生的结果与直接计算不同_Matlab - Fatal编程技术网

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);

我试图在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); 
x_ls = (L*L' + eye(N^2))^-1*L'*y;
x_-ls
x_-ridge
显著不同


谢谢你的帮助

简单地说,你的公式是错误的,数值不稳定。这可能就是他们不同的原因。谢谢。我发现了问题所在,显然在Matlab中,我需要将
k
乘以像素数,以获得等价性。