3
我想在R中實現內核嶺迴歸。我的問題是,我不知道如何生成內核值,我不知道如何使用它們進行嶺迴歸。我想用下面的內核函數:在R中實現內核嶺迴歸
kernel.eval <- function(x1,x2,ker) { k=0 if (kertype == 'RBF') {
# RBF kernel
k=exp(-sum((x1-x2)*(x1-x2)/(2*kerparam^2))) } else { # polynomial kernel k=(1+sum(x1*x2))^ker$param } return(k) }
而且,我知道,嶺迴歸公式爲:
myridge.fit <- function(X,y,lambda) { w= solve((t(X) %% X) +(lambdadiag(dim(X)[2])), (t(X) %*% y)) return(w) }
實例訓練數據:
[,1] [,2]
[1,] -1.3981847 -1.3358413
[2,] 0.2698321 1.0661275
[3,] 0.3429286 0.8805642
[4,] 0.5210577 1.1228635
[5,] 1.5755659 0.2230754
[6,] -1.2167197 -0.6700215
例測試數據: (我不知道現在是否需要這些)
[,1] [,2]
[1,] -2.05 -2.050
[2,] -2.05 -2.009
[3,] -2.05 -1.968
[4,] -2.05 -1.927
[5,] -2.05 -1.886
[6,] -2.05 -1.845
有沒有人能夠幫助我完成第一步。我必須爲RBF內核和多項式內核做Ridge迴歸。