[R] Re: Writing new kernel option in svm E1071
David Meyer
david.meyer at ci.tuwien.ac.at
Mon Jul 8 12:10:13 CEST 2002
I would like to add: If your problem is specifically to deal with small
fractions of positive examples, you might consider the weighting feature
of svm.
g.
-d
David Meyer wrote:
>
> Dear Adai,
>
> unfortunately, you currently can't extend the kernel set at the R level
> (and due to performance issues this probably will never be possible).
>
> (It's quite simple at the C-level, though).
>
> But I think an option for providing the computed kernel values would be
> a useful feature easy to add; I cc: this mail to Chih-Jen Lin, the
> author of LIBSVM, perhaps he agrees.
>
> g.,
> -d
>
> > Adaikalavan Ramasamy wrote:
> >
> > I am trying to use the svm function in E1071 package. It does come
> > with built in kernel functions like radial, linear etc. I wish to use
> > the radial basis function but with a constant added to the diagonal of
> > the kernel (or Gram) matrix. This was the suggested method in a paper
> > UCSC-CRL-99-09 Brown et al.
> >
> > So I wrote the following code, [which works correctly if I test on two
> > vectors manually]
> >
> > kernel.new.fn <- function(u,v)
> > { exp(-gamma*det(t(u-v)%*%(u-v), method="qr")) +
> > ifelse(identical(u, v), 0.1 ,0) }
> >
> > But when I try to run the code, I get the following error:
> >
> > > test.svm <- svm( X , Ysvm, kernel="kernel.new.fn")
> > Error in svm.default(X.complete, Ysvm[, 3], kernel = "kernel.new.fn")
> > :
> > wrong kernel specification!
> >
> > I am guessing the problem being svm.default does not recognise
> > "kernel.new.fn".
> > svm.default calls a C file "svmtrain" to do the calculations.
> >
> > Q1: Is there an exisiting option to add a constant to the diagonal of
> > the kernel ?
>
> no.
>
> > Q2: Is there a way I can get svm.default to recognise there is new
> > option called kernel.new.fn externally without meddling with C
> > file which I am not so familiar with.
>
> no.
>
> > [OR equivalently is there a way of feeding in the
> > computed kernel instead - I can do this manually using a loop]
>
> again, no.
>
> >
> > This is as much due to my lack of programming as it is to my lack of
> > experience with svm.
> >
> > Many thanks in advance, Adai.
> >
> >
> >
> >
> >
> >
>
> --
> Mag. David Meyer Wiedner Hauptstrasse 8-10
> Vienna University of Technology A-1040 Vienna/AUSTRIA
> Department of Tel.: (+431) 58801/10772
> Statistics and Probability Theory mail: david.meyer at ci.tuwien.ac.at
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
--
Mag. David Meyer Wiedner Hauptstrasse 8-10
Vienna University of Technology A-1040 Vienna/AUSTRIA
Department of Tel.: (+431) 58801/10772
Statistics and Probability Theory mail: david.meyer at ci.tuwien.ac.at
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list