[R] Help in SVM prediction

Divyam divyamurali13 at gmail.com
Tue Sep 13 16:42:55 CEST 2011


Hello,

I am trying to use SVM from e1071 package for doing binary classification 
and I am having problems in prediction using SVM. I ran a SVM for 
X~as.factor(X1)+as.factor(X2)+as.factor(X3),data=data1,cross=10. 

str(data1) gives me

data.frame':	5040 obs. of  5 variables:
 $ X4: int  1 2 3 4 5 6 7 8 9 10 ...
 $ X : int  0 1 0 1 0 0 1 1 1 1 ...
 $ X2: int  1 8 15 18 1 14 10 9 8 8 ...
 $ X3 : int  9 9 13 13 9 1 1 9 9 9 ...
 $ X1 : num  29105 29105 29105 29105 29105 ...

As factors, X has 2 levels 0,1
X1 has 3 levels 29104.91,29526.78,10401.78
X2 has 19 levels  and
X3 has 24 levels

The test data details are as follows:
 str(test)

data.frame':	6267 obs. of  4 variables:
 $ X4: int  1 2 3 4 5 6 7 8 9 10 ...
 $ X2 : int  10 1 18 18 18 5 14 8 8 16 ...
 $ X3: int  25 25 27 33 10 10 17 17 33 6 ...
 $ X1 : num  29105 29105 29105 29105 29105 ..


I want the prediction of X consolidated on the basis of X4 into a separate
data frame. The loop that I wrote for this is:

len<-nrow(test);

prediction<-data.frame(t(rep(NA,2)));
names(prediction)<-c("X4","PredictionX");
prediction<-prediction[-1,];


for(j in 1:len)
{
	prediction[j,1]<-test[j,1];
	Forecast.List[j,2]<-predict(X,test[j,]);
}

when I do this I get the following error: Error in `contrasts<-`(`*tmp*`,
value = "contr.treatment") : 
  contrasts can be applied only to factors with 2 or more levels.

However, when I simply say predict(X,test), it works. When in the loop it
throws the above error. In the test data, I didn't declare the X1,X2,X3 to
be factors. Is it a factor problem? Where am I going wrong here?
 Also, I want the svm predict function to not omit the NA's and keep the
missing value predictions as NA and give the prediction for the rest. In
short I do not want the function to omit the missing values from the
prediction data frame. How to resolve this?

Thanks

Divya

--
View this message in context: http://r.789695.n4.nabble.com/Help-in-SVM-prediction-tp3810256p3810256.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list