[R] Predict function for 'newdata' of different dimension in svm

David Meyer david.meyer at wu-wien.ac.at
Fri Mar 31 23:56:09 CEST 2006


hard to tell where the error message originates from without having the data
at hand (perhaps you could provide that to me off-list?), but I am almost
sure things will work when you train the model the "standard" way:

cd1.svm<-svm(Acode~EXT+TOF, data = boot.dist.dat, cost=100, gamma=20)

and then do the predictions.


I am using the "predict" function on a support vector machine (svm)
object, and I don't understand why I can't predict on a dataset with more
observations than the training dataset.

I think this problem is a generic "predict" problem, but I'm not sure.

The original svm was fit on 50 observations.


## for these training data,
> names(boot.dist.dat)
[1] "TOF"   "EXT"   "Acode"
> dim(boot.dist.dat)
[1] 50  3

Now I want to use the svm classifier on a new dataset with 175


## for the new dataset,
> names(new.dat)
[1] "TOF"   "EXT"   "Acode"
> dim(new.dat)
[1] 175   3

Now try to predict:

> predict(cd1.svm,newdata=new.dat)

Error in "names<-.default"(`*tmp*`, value = c("1", "2", "3", "4", "5",  :
        'names' attribute [175] must be the same length as the vector [50]

What am I missing?  Why would the row names have to be the same?

Thanks so much,
Sandra McBride
Dr. David Meyer
Department of Information Systems and Operations

Vienna University of Economics and Business Administration
Augasse 2-6, A-1090 Wien, Austria, Europe
Tel: +43-1-313 36 4393
Fax: +43-1-313 36 90 4393 
HP:  http://wi.wu-wien.ac.at/~meyer/

More information about the R-help mailing list