Re: [R] svm regression/classification

2009-12-29 Thread Steve Lianoglou
Hi Nancy,

Comments in line:

On Sun, Dec 27, 2009 at 3:34 AM, Nancy Adam nancyada...@hotmail.com wrote:

 Hi everyone,

 Can anyone please tell whether there is a difference between the code for 
 using svm in regression and code for using svm in classification?

 This is my code for regression, should I change it to do classification?:

I'm not sure how to answer your question ... are you asking how you
can explicitly tell the `svm` function to do classification vs.
regression? Or are you asking if classification is better suited for
your problem than regression?

Are you trying to predict a label or some range of real valued
numbers? Can you show us your `y` vector?

-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

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] svm regression/classification

2009-12-29 Thread Nancy Adam

Hi steve,
Thank you so much for your reply.I’m asking about the difference between two 
cases:1) when I use svm in a regression system and 2) when I use svm in a 
classification system. Is the code of using svm in these two cases the 
same?This is the code for a regression system:
my_svm_model - function(myformula, mydata, mytestdata) 
{
  mymodel - svm(myformula, data=mydata)   
mytest - predict(mymodel, mytestdata)
error - mytest - mytestdata[,1]
-sqrt(mean(error**2))
}Many thanks,
Nancy
 Date: Tue, 29 Dec 2009 10:36:36 -0500
 Subject: Re: [R] svm regression/classification
 From: mailinglist.honey...@gmail.com
 To: nancyada...@hotmail.com
 CC: r-help@r-project.org
 
 Hi Nancy,
 
 Comments in line:
 
 On Sun, Dec 27, 2009 at 3:34 AM, Nancy Adam nancyada...@hotmail.com wrote:
 
  Hi everyone,
 
  Can anyone please tell whether there is a difference between the code for 
  using svm in regression and code for using svm in classification?
 
  This is my code for regression, should I change it to do classification?:
 
 I'm not sure how to answer your question ... are you asking how you
 can explicitly tell the `svm` function to do classification vs.
 regression? Or are you asking if classification is better suited for
 your problem than regression?
 
 Are you trying to predict a label or some range of real valued
 numbers? Can you show us your `y` vector?
 
 -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
  
_
Keep your friends updated—even when you’re not signed in.

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] svm regression/classification

2009-12-29 Thread Steve Lianoglou
Hi Nancy,

2009/12/30 Nancy Adam nancyada...@hotmail.com:
 Hi steve,

 Thank you so much for your reply.

 I’m asking about the difference between two cases:

 1) when I use svm in a regression system and

 2) when I use svm in a classification system.

  Is the code of using svm in these two cases the same?

Getting the `svm` function to perform classification vs. regression
can be controlled by setting its `type` parameter. The help page for
the function ?svm suggests that this is automatically picked depending
on what type of element your y vector is, eg. it defaults to
classification if your `y` is a vector of factors.

That having been said, you can set this parameter explicitly so that
you're sure of what the function is doing, eg:

## classification:
mymodel - svm(myformula, data=mydata, type='C-classification')

## regression
mymodel - svm(myformula, data=mydata, type='eps-regression')

 This is the code for a regression system:

 my_svm_model - function(myformula, mydata, mytestdata)

     {

   mymodel - svm(myformula, data=mydata)

     mytest - predict(mymodel, mytestdata)

     error - mytest - mytestdata[,1]

     -sqrt(mean(error**2))

     }

That's not really code for a regression system -- as I said above,
performing regression vs. classification depends on what type of
vector your `y` labels turns out to be, given your formula (unless you
explicitly set type='something').

It looks like your `my_svm_model` is a function that calculates (the
negative of) the root-mean-squared-error (why negative, btw?). This
performance calculation is appropriate for regression, but not for
classification. For classification you probably want to report the
accuracy of the labels, eg something like:

mytest - predict(mymodel, mytestdata, type='C-classification')
accuracy - sum(mytest == mytestdata[,1]) / length(mytest)

As I said in my earlier email, it's not really appropriate to try,
say, regression and report accuracy like as its defined for
classification.

I'm not sure if I'm answering your question, partly because I'm not
really sure what you're really asking, ie. I'm not sure if you're
confused as to whether or not you should be doing classification or
regression, or do you know which of the two you want to do but you
don't understand how to get `svm` to perform the one you want?

Please clarify the above point if you still need more help.

Hope that helps,
-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

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


[R] svm regression/classification

2009-12-27 Thread Nancy Adam

 
 
Hi everyone,
 
Can anyone please tell whether there is a difference between the code for using 
svm in regression and code for using svm in classification?
 
This is my code for regression, should I change it to do classification?:
 
train - read.table(trainingset.txt,sep=;)
test - read.table(testset.txt,sep=;)
 
 
svmmodelfitness - function(myformula,mydata,mytestdata) 
{
   
 mymodel - svm(myformula,data=mydata) 
 
  mytest - predict(mymodel, mytestdata)
  error - mytest - mytestdata[,1]
  -sqrt(mean(error**2))
}
 
Many thanks,
Nancy 
_


[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.