2012-11-16 7 views
3

Gaussian 프로세스 회귀에 대한 kernlab 패키지의 R 함수 gausspr을 봅니다. 프로세스는 커널 함수의 하이퍼 매개 변수와 데이터의 노이즈로 정의됩니다. 초기 잡음 분산 (단 회귀) (기본값 : 0.001) 나는kernlab :: gausspr 함수의 추정 변수에 액세스 R

VAR를 지정할 수있는 설명서를 참조

하지만 난에 액세스하는 방법을 볼 수 없어 추정 회귀가 실행 된 후 값. 예를 들어, 나는 몇 가지 관찰 된 점을 고려하고, X에 의해 주어진 위치에서 y 값을 예측하려면 :

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) 

내가 얻을 수 있습니다 커널 hyperparameter 예상 값 :

[email protected]@kpar 

하지만 소음 매개 변수의 추정 값을 반환 할 수 어떻게 표시되지 않습니다, var?

답변

3

나는 뭔가를 간과하고 있을지 모르지만 나는 초기 잡음의 분산이 var이 무엇이든 "적합"하다고 생각하지 않는다. 나는 그것이 매개 변수라고 생각하지 않는다. (나는 "초기"라는 단어를 사용하면 다르게 생각하게한다.)

노이즈 분산은 다른 소프트웨어에 대해 this page에서 설명한대로 교육 포인트의 상관 행렬의 대각선에 추가됩니다.

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

는 잡음 분산에 의한 오류 (또는 적합의 측정)을 얻기 위해 원하는 경우, 당신은 할 수 : 함수 정의를 통해 보면,이 정확히 무엇을뿐만 아니라 kernlab으로하고있다처럼 보인다 같은 :

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 단지 변경없이 넣어되는 것을 볼 수 있습니다 교차 검증에서 유일하게 관련 라인은 여기에있다.

+0

예, 저는 그것에 대해 궁금해하고 있습니다. 원칙적으로 교차 검증 방법이나 우도 (likelihood)에 따라 길이 척도를 추정하므로이 값을 추정 할 수 있습니다 (http://www.gaussianprocess.org/gpml/chapters/RW5.pdf, 예를 들어 , figure 5.9) – cboettig

+0

예, 'var'의 다른 값으로 적합성을 검사 할 수 있습니다. 이 함수는 그렇게하지 않습니다. – nograpes

+0

그래, 나는 단지 (에드) 확신하고 싶다. 그 파일에서'var'에 대한 유일한 언급이 있지만 교차 검증 방법이 내장되어 있고 다른 커널 매개 변수 (길이 스케일)를 추정하고 해당 파일에없는 서브 루틴을 호출합니다. 교차 유효성 검사를하고 길이 척도를 추정한다면 서브 루틴을 통해 var를 추정하지 않을 것입니까? – cboettig