# [R] How to get w and b in SVR? (package e1071)

Steve Lianoglou mailinglist.honeypot at gmail.com
Mon Aug 3 15:59:40 CEST 2009

Hi Marlene,

On Aug 3, 2009, at 8:59 AM, marlene marchena wrote:

> Dear R users,
>
> I'm running a SVR in package e1071 but I did not able to calculate the
> parameters w and b of the regression. I don't know how to do that
> and if it
> is possible to do it with this package.
>
> Someone have some idea. Any help would be much appreciated.

While you're not given the W vector directly, you can recover it from
the support vectors, no? In LaTeX form, W looks like:

\vec{W} = \sum_{i=1}^N \alpha_i y_i \vec{x}_i

If "model" was the object returned from your SVM: alpha_i's are the
weights of each vector (model$coefs[i]) and x_i are the support vectors (model$SV[i,]).

You can use some matrix multiplication to calculate this very quickly:

W <- t(model$coefs) %*% model$SV

By default, the x's and y's are scaled when you call svm(..) so I
think, by definition, your y intercept (b) should be zero. I think the
values in model\$y.scale might be what you're looking for, though (not
sure).

Hope that helps,
-steve

--
Steve Lianoglou