[R] Predict function for 'newdata' of different dimension in svm
mcbride at duke.edu
mcbride at duke.edu
Fri Mar 31 00:20:36 CEST 2006
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.
cd1.svm<-svm(boot.dist.dat$Acode~boot.dist.dat$EXT+boot.dist.dat$TOF,cost=100,gamma=20)
## 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
observations:
new.dat<-data.frame(TOF=Cd1[cand.adult,]$TOF,EXT=Cd1[cand.adult,]$EXT,Acode=rep(0,175),row.names=NULL)
## 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sandra McBride
Research Scientist
Nicholas School of the Environment and
Earth Sciences (NSEES)
Box 90328 Duke University
Levine Science Research Center
Durham, NC 27708-0328
(919) 622 3663
More information about the R-help
mailing list