Thanks Steve,

1) That helps.  Exactly what I need.

2) I'm coming from RapidMinder, so am still getting used to how data is 
handled in R.  (In RM, everything is like the R data.frame and 
predictions are automatically appended as new columns to the data.)

What I'd like is this:

Starting with data frame of:
label, v1, v2, v3

After svm prediction, ending up with data frame of:
label, v1, v2, v3, prediction, probability

Thanks again!

-N


On 8/3/09 8:15 PM, Steve Lianoglou wrote:
> Hi,
>
> On Aug 3, 2009, at 10:55 PM, Noah Silverman wrote:
>
>> Hello,
>>
>> I'm using the e1071 package for training an SVM.  It seems to be working
>> well.
>>
>> This question has two parts:
>>
>> 1) Once I've trained an SVM model, I want to USE it within R at a later
>> date to predict various new data.  I see the write.svm command, but
>> don't know how to LOAD the model back in so that I can use it tomorrow.
>> How can I do this?
>
> You can circumvent the e1071-specific write functions and just use R's 
> builtin save() method. Eg,
>
> R> save(mymodel, file='mymodel.rda')
>
> You can load it later like so:
>
> R> load('mymodel.rda')
>
>> 2) I would like to add the prediction values(confidence) as a column in
>> my original data.frame.  (Again, to be used for more analysis at a later
>> date.)  I am using "predictions <- prediction(model,traindata)" and that
>> gives me a huge object with all the predictions.  Is there a single
>> command that would just add the predictions, or do I need to do some
>> clever data manipulation?
>
> What do you mean "a huge object"? By default you should just be 
> getting a vector of length Nx1 where N is the number of examples to 
> predict over, and the value is the class it belongs to -- which seems 
> like what you're after.
>
> If you call predict.svm with decision.values=TRUE, you'll get an N x 
> NUMBER_OF_CLASSES matrix. In that case, what do you mean by "a command 
> that just add[s] the predictions"? If you want to add all decision 
> values to your original data, you can use cbind. If you want to return 
> the max value for each data point, play with the apply function and 
> its MARGIN parameter along with the max/which.max functions -- but if 
> you're just adding the max value, you're losing the decision label.
>
> Anyway -- the predict.svm function just returns a vector/matrix. You 
> can use the standard R vector/matrix manipulation methods to do what 
> you want. If you're still having trouble with that, please post an 
> example of what you're after -- and simply use the code/data from the 
> ?predict.svm example section so we can play along.
>
> -steve
>
> -- 
> Steve Lianoglou
> Graduate Student: Computational Systems Biology
>   |  Memorial Sloan-Kettering Cancer Center
>   |  Weill Medical College of Cornell University
> Contact Info: http://cbio.mskcc.org/~lianos/contact
>

	[[alternative HTML version deleted]]


