3

ガウス過程回帰gaussprのパッケージからR関数を見ています。kernlabこのプロセスは、カーネル関数のハイパーパラメータとデータのノイズによって定義されます。私が指定できるドキュメントを見る

var:初期ノイズ分散(回帰の場合のみ)(デフォルト:0.001)

しかし、回帰が実行された後、推定値にアクセスする方法がわかりません。たとえば、いくつかの観測点があり、次の式で与えられる位置でy値を予測したいとしますX

obs <- data.frame(x = c(-4, -3, -1,  0,  2),
                  y = c(-2,  0,  1,  2, -1))
X <- seq(-5,5,len=50)

私はそのようにそうすることができますkernlab::gausspr

gp <- gausspr(obs$x, obs$y, kernel="rbfdot", scaled=FALSE, var=.09)
Ef <- predict(gp, X)

カーネルハイパーパラメータの推定値を取得できます。

gp@kernelf@kpar

しかし、ノイズパラメータの推定値を返す方法がわかりませんvar

4

1 に答える 1

3

私は何かを見落としているかもしれませんが、初期のノイズ分散varは何にも「適合」しているとは思いません。私はそれがパラメータだとは思いません(「初期」という言葉を使うと別のことを考えるようになることに同意しますが)。

他のソフトウェアについてこのページで説明されているように、ノイズ分散はトレーニングポイントの相関行列の対角線に追加されます。関数の定義を見ると、これはまさにそれが行っていることのように見えkernlabます。

# The only relevant line where 'var' is used
alpha(ret) <- solve(K + diag(rep(var, length = m))) %*% y

ノイズ分散によってエラー(または任意の適合度)を取得したい場合は、次のようにすることができます。

error.fun<-function(x) error(gausspr(obs$x, obs$y, kernel="rbfdot", scaled=FALSE, var=x))
noises<-seq(0.1,1,by=0.1)
y<-sapply(noises,error.fun)
plot(noises,y,type='l')

組み込みの相互検証は、私が言えることから、決して「適合」varしません。相互検証の唯一の関連行はここにあります:

cret <- gausspr(x[cind, ], y[cind], type = type(ret), 
                scaled = FALSE, kernel = kernel, var = var, 
                tol = tol, cross = 0, fit = FALSE)

varそして、あなたはそれが変更なしでちょうど入れられているのを見ることができます。

于 2012-11-29T00:57:04.900 に答える