[R] svm plot question

David Meyer david.meyer at wu-wien.ac.at
Fri Dec 8 13:32:00 CET 2006


Aimin:

1) Please do not spam the r-help list---one request per issue (and two
private mails to the code author) really suffice. Not all contributors
to the R-project are on-line 24/24, and have time to provide immediate
answers.

2) The error occurs because plot.svm() currently does not set valid
defaults for categorical dimensions you are conditioning on for your
2D-plot (in your example: 'P' and 'Aa') which certainly is a bug. I will
commit a fix for the next release of e1071. For the time being, you will
have to explicitly specify the levels of 'P' and 'Aa':

plot(m.svm,p5.new,As~Cur, slice = list(P = factor("821p", levels =
levels(P)), Aa = factor("ALA", levels = levels(Aa))))

(Note that the defaults for the "slice" argument are completely
arbitrary anyway).

Thanks for pointing this out,

David

Aimin Yan wrote:
> I have a question about svm in R
> 
> I run the following code, all other is ok,
> but plot(m.svm,p5.new,As~Cur) is not ok
> 
> Do you know why?
> 
> install.packages("e1071")
> library(e1071)
> library(MASS)
> p5 <- read.csv("http://www.public.iastate.edu/~aiminy/data/p_5_2.csv")
> p5.new<-subset(p5,select=-Ms)
> p5.new$Y<-factor(p5.new$Y)
> levels(p5.new$Y) <- list(Out=c(1), In=c(0))
> attach(p5.new)
> m.svm<-svm(Y~P+Aa+As+Cur,data=p5.new)
> summary(m.svm)
> plot(m.svm,p5.new,As~Cur)
> 
> Here is output:
> 
>> install.packages("e1071")
> --- Please select a CRAN mirror for use in this session ---
> trying URL
> 'http://rh-mirror.linux.iastate.edu/CRAN/bin/windows/contrib/2.4/e1071_1.5-16.zip'
> 
> Content type 'application/zip' length 592258 bytes
> opened URL
> downloaded 578Kb
> 
> package 'e1071' successfully unpacked and MD5 sums checked
> 
> The downloaded packages are in
>         C:\Documents and Settings\aiminy\Local
> Settings\Temp\RtmpY0B2qb\downloaded_packages
> updating HTML package descriptions
>> library(e1071)
> Loading required package: class
>> library(MASS)
>> p5 <- read.csv("http://www.public.iastate.edu/~aiminy/data/p_5_2.csv")
>> p5.new<-subset(p5,select=-Ms)
>> p5.new$Y<-factor(p5.new$Y)
>> levels(p5.new$Y) <- list(Out=c(1), In=c(0))
>> attach(p5.new)
>> m.svm<-svm(Y~P+Aa+As+Cur,data=p5.new)
>> summary(m.svm)
> 
> Call:
> svm(formula = Y ~ P + Aa + As + Cur, data = p5.new)
> 
> 
> Parameters:
>    SVM-Type:  C-classification
>  SVM-Kernel:  radial
>        cost:  1
>       gamma:  0.04
> 
> Number of Support Vectors:  758
> 
>  ( 382 376 )
> 
> 
> Number of Classes:  2
> 
> Levels:
>  Out In
> 
> 
> 
>> plot(m.svm,p5.new,As~Cur)
> Error in scale(newdata[, object$scaled, drop = FALSE], center =
> object$x.scale$"scaled:center",  :
>         (subscript) logical subscript too long
>>
>>
> 
> 
> 

-- 
Dr. David Meyer
Department of Information Systems and Operations

Vienna University of Economics and Business Administration
Augasse 2-6, A-1090 Wien, Austria, Europe
Tel: +43-1-313 36 4393
Fax: +43-1-313 36 90 4393
HP:  http://wi.wu-wien.ac.at/~meyer/




More information about the R-help mailing list