Regularization parameter in SVM in Matlab

I'm learning SVM in Matlab. Let be the hinge loss. I have data (X is a 200x2 matrix) and labels (Y is a 200x1 matrix). I want to use ‘fminunc.m’ to estimate the hyperplane that minimizes the hinge loss for different choices of λ. Here is my code in Matlab:
lambda = 1;
F = @(w)(w(1)^2+w(2)^2)+lambda*(max(0,1-sum(Y.*(w(1).*X(:,1)+w(2).*X(:,2)+w(3)))));
w0 = [0,0,0];
w = fminunc(F,w0);
y1 = (-w(:,1)*X(:,1)-w(3))/w(:,2);
plot (X(:,1),y1,'r', LineWidth', 2);
I tried to change the values of λ, however, the result (hyperplane parameters) hasn't changed. Are there any mistakes in the code?
Can anybody help with plotting the results on the data and the interpretation? Thank you.

 Réponse acceptée

Matt J
Matt J le 19 Nov 2018
Modifié(e) : Matt J le 19 Nov 2018
Assuming this formula is correct
your coding of it
F = @(w)(w(1)^2+w(2)^2)+lambda*(max(0,1-sum(Y.*(w(1).*X(:,1)+w(2).*X(:,2)+w(3)))));
does not match. The equation has a summation outside of the max operation, but your code has the summation inside. Also, your equation has a leading term of w(2)^2, but your code has a leading term of w(1)^2 as well.
Finally, you need a differentiable substitute for max(0,x). Perhaps the softmax function?

Plus de réponses (0)

Catégories

En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange

Produits

Version

R2018a

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by