[R] Help with SVM package Kernlab
David Winsemius
dwinsemius at comcast.net
Fri Dec 25 06:15:02 CET 2009
On Dec 24, 2009, at 11:42 PM, Vishal Thapar wrote:
> Hi useR's,
>
> I am resending this request since I got no response for my last post
> and I
> am new to the list so pardon me if I am violating the protocol.
>
> I am trying to use the "Kernlab" package for training and prediction
> using
> SVM's. I am getting the following error when I am trying to use the
> predict
> function:
I'm guessing that the package is really "kernlab".
>
>> predictSvm = predict(modelforSVM, testSeq);
> Error in `contrasts<-`(`*tmp*`, value = "contr.treatment") :
> contrasts can
> be applied only to factors with 2 or more levels
Sounds like R does not like the structure of your testSeq argument.
Perhaps it was expecting a factor argument with levels that matched
those used in the training set?
>
> The training file is a data frame with 501 columns: Col 1 is "Class"
> which
> is "+" or "-" and Cols V1 to V500 are "A/C/G/T" . There are 200
> seq's for
> training (100 + and - each). this is very similar to the
> "promotergene" data
> set included as example with the package.
>
> The model that I have generated is as follows:
>
> modelforSVM <- ksvm(Class ~ ., data = train500, kernel = "rbfdot",
> kpar =
> "automatic", C = 60, cross = 3, prob.model = TRUE)
>
> The testSeq is a vector of 500 characters casted as a data.frame. I
> tried
> adding the Class column as well later to the testSeq data frame but
> got the
> same error.
>
Why not offer the results of dput() on that object. Or you could offer
the output of str(testSeq) , even if you aren't going to create a
smaller test object that could be used for testing.
> I am using R with windows, 32 bit, version 2.9.0
>
> Any help that I can get is really appreciated.
>
> Thanks,
>
> Vishal
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list