Re: [R] svm regression/classification
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
Hi steve, Thank you so much for your reply.Im 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 updatedeven when youre 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
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
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.