[R] probabilities from predict.svm
Watling,James I
watlingj at ufl.edu
Thu Aug 19 23:00:16 CEST 2010
Hi Steve--
I spent some more time tuning the model with alternative gamma and cost values, but still kept coming back to the same issue re: probabilities. I spent some more time playing around with the code, and realized that the error did indeed have to do with the ifelse() function I used to feed the probabilities into the ascii file. I have rewritten the code with a replace() statement, and the probabilities have 'landed' in the correct place in the ascii file. The resulting map is exactly what I would expect.
Thanks for your helpful suggestions that forced me to figure this out!
Much appreciated
James
-----Original Message-----
From: Steve Lianoglou [mailto:mailinglist.honeypot at gmail.com]
Sent: Thursday, August 19, 2010 11:39 AM
To: Watling,James I
Cc: r-help at lists.R-project.org
Subject: Re: [R] probabilities from predict.svm
On Thu, Aug 19, 2010 at 10:56 AM, Watling,James I <watlingj at ufl.edu> wrote:
> Hi Steve--
>
> Thanks for your interest in helping me figure this out. I think the problem has to do with the values of the probabilities returned from the use of the model to predict occurrence in a new dataframe.
Ok, so if you're sure this is the problem, and not, say, getting the
correct values for the predictor variables at a given point, then I'd
be a bit more thorough when building your model.
Originally you said:
> I have used a training dataset to train the model, and tested it against a validation data set with good results: AUC is high, and the confusion matrix indicates low commission and omission errors.
Maybe your originally "good" AUC's was just a function of your train/test split?
Why not use all of your data and do something like 10 fold cross
validation to find:
(1) Your average accuracy over your folds
(2) The best value for your cost parameter; (how did you pick cost=10000)?
(3) or even the best kernel to use.
Doing 2 and 3 will likely be time consuming. To help with (2) you
might try looking at the svmpath package:
http://cran.r-project.org/web/packages/svmpath/index.html
It only works on 2-class classification problems, and (I think) using
a linear kernel (sorry, don't remember off hand, but it's written in
the package help and linked pubs).
You don't need to use svmpath, but then you'll need to define a "grid"
of C values (or maybe a 2d grid, if your svm + kernel combo has more
params) and train over these values ... takes lots of cpu time, but
not too much human time.
Does that make sense?
--
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
More information about the R-help
mailing list