在给定自由度和输入矩阵的情况下,如何在岭回归中计算正则化参数?


11

设A 为自变量的ñ×p矩阵,而B为因变量的相应n ×矩阵。在岭回归,我们定义一个参数使得:。现在让[usv] = svd(A)和对角线输入s。我们定义自由度(df)=。岭回归缩小了低方差分量的系数,因此参数控制自由度。因此对于ñ×1个λβ=一种Ť一种+λ一世-1个一种Ťd一世=一世ŤH一世=1个ñd一世2d一世2+λλλ=0,这是正态回归df = n的情况,因此将考虑所有自变量。我面临的问题是找到给定'df'和矩阵's' 的值。我试图重新排列上面的方程式,但没有得到封闭形式的解决方案。请提供任何有用的指示。λ


嗯,我需要时间来回答这个问题(可能其他人会更快地帮助你),但大多数的见解可能采取stat.lsa.umich.edu/~kshedden/Courses/Stat600/Notes/...什么是中的定义自由度,因为我确实想念。λkλ
2011年

@Dmitrij:谢谢你的回答,我已经更新了问题,并用代替了“ k”λ
Amit

嗨,阿米特(Amit),您如何在计算正则化参数之前知道自由度是多少?
巴兹(Baz)

Answers:


9

牛顿-拉夫森/费舍尔评分/泰勒级数算法将适合于此。

你有公式计算ħ λ = p Σ= 1 d 2 λ 与衍生物 ħ

Hλ=一世=1个pd一世2d一世2+λ-dF=0
您然后得到: H ^λħλ0+λ-λ0ħ
Hλ=-一世=1个pd一世2d一世2+λ2
HλHλ0+λ-λ0Hλ|λ=λ0=0

重新安排你: λ = λ 0 - [ ^ hλ 设置迭代搜索。对于初始起始值,假设总和为d 2 i =1,则得到λ0=pdf

λ=λ0-[Hλ|λ=λ0]-1个Hλ0
d一世2=1个λ0=p-dFdF

λĴ+1个=λĴ+[一世=1个pd一世2d一世2+λĴ2]-1个[一世=1个pd一世2d一世2+λĴ-dF]

λλ


d一世2=1个

λ0λ0=0

(+1)无论如何我都会给出相同的数值解。
Dmitrij Celov 2011年

6

这是基于概率概率论证明的公式的小型Matlab代码:

function [lamda] = calculate_labda(Xnormalised,df)
    [n,p] = size(Xnormalised);   

    %Finding SVD of data
    [u s v]=svd(Xnormalised);
    Di=diag(s);
    Dsq=Di.^2;

    %Newton-rapson method to solve for lamda
    lamdaPrev=(p-df)/df;
    lamdaCur=Inf;%random large value
    diff=lamdaCur-lamdaPrev;   
    threshold=eps(class(XstdArray));    
    while (diff>threshold)          
        numerator=(sum(Dsq ./ (Dsq+lamdaPrev))-df);        
        denominator=sum(Dsq./((Dsq+lamdaPrev).^2));        
        lamdaCur=lamdaPrev+(numerator/denominator);        
        diff=lamdaCur-lamdaPrev;        
        lamdaPrev=lamdaCur;        
    end
    lamda=lamdaCur;
end

2
去队!
概率

一位未遂的编辑认为,while条件应为while ( abs(diff)>threshold )
gung-恢复莫妮卡

while( abs(diff) > threshold )-1001个Ë-16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.