Emiliano Guevara
2009-Oct-06 10:03 UTC
[R] Kernlab: multidimensional targets in rvm(), ksvm(), gausspr()
Hi there, I'm trying to do a regression experiment on a multidimensional dataset where both x and y in the model are multidimensional vectors. I'm using R version 2.9.2, updated packages, on a Linux box. I've tried gausspr(), ksvm() and rvm(), and the models are computed fine, but I'm always getting the same error message when I try to use predict(): "Error in .local(object, ...) : test vector does not match model !" I realize that maybe kernlab does not support the kind of operation I'm trying to do, but I still haven't found any explicit statement saying that multidimensional targets are not supported... Do you have any suggestions? Is there a way to avoid the error in kernlab? Any alternative approaches (other that drastically reducing dimensionality...)? Thanks a lot for your support! E.G. Here's a toy example that produces the error message: # build x and y matrices > x <- sample(seq(-20,20,0.1), 100) > y <- sin(x)/x + rnorm(100,sd=0.05) > x <- matrix(x, nrow=25, ncol=4) > y <- matrix(y, nrow=25, ncol=4) # build the model: seems successful > foo <- rvm(x, y) # same with ksvm(), gausspr(), ecc. Using automatic sigma estimation (sigest) for RBF or laplace kernel > foo Relevance Vector Machine object of class "rvm" Problem type: regression Gaussian Radial Basis kernel function. Hyperparameter : sigma = 0.00179432103430767 Number of Relevance Vectors : 7 Variance : 0.05937295 Training error : 0.049660537 # but predict fails... > predict(foo, x) Error in .local(object, ...) : test vector does not match model ! ********************************************************************** Emiliano R. Guevara Institutt for lingvistiske og nordiske studier -- Universitetet i Oslo PO Box 1102, Blindern, 0317 Oslo, Norway