File Exchange

image thumbnail

SVM for nonlinear classification

version (91.8 KB) by Bhartendu
SVM on (Non-linearly Seperable Data) using polynomial Kernel


Updated 19 May 2017

View License

Refer: An Introduction to Support Vector Machines and Other Kernel-based Learning Methods by Nello Cristianini and John Shawe-Taylor]
The training algorithm only depend on the data through dot products in H, i.e. on functions of the form Φ(x_i)·Φ(x_j). Now if there were a “kernel function” K such that
K(x_i,x_j) = Φ(x_i)·Φ(x_j),
we would only need to use K in the training algorithm, and would never need to explicitly even know what Φ is. One example is radial basis functions (RBF) or gaussian kernels where, H is infinite dimensional, so it would not be very easy to work with Φ explicitly.
Training the model requires the choice of:
• the kernel function, that determines the shape of the decision surface
• parameters in the kernel function (eg: for gaussian kernel:variance of the Gaussian, for polynomial kernel: degree of the polynomial)
• the regularization parameter λ.

Comments and Ratings (10)


@Luji tel : Try the following changes:
1. In grad-Ascend,
w1=(alp_old.*Y).*X; ==> w1=(alp_old.*Y)'*X;
w2=(alpha.*Y).*X; ==> w2=(alpha.*Y)'*X;

Check comments here:


I see no bugs. Better brush-up your skills.

Yueyin Zhou

bug exist

Luji tel

Hi.When I run svm_NonLinear.m using the given dataset 'conical.csv'. I am just testing the program and not changing anything and getting this error at line 12:
Error using .*
Matrix dimensions must agree.

Error in grad_asc_poly (line 12)

Error in svm_NonLinear (line 32)
alpha = grad_asc_poly(Xtrain,Ytr,c,2);

Vidhula M.V

Santhana Raj


The non linear SVM is unable to classify the dataset generated as below. Can you help me on this?

N1 = 50; N2 = 60; N3=65;% Class sizes
x = [randn(N1,no_feat);rand(N2,no_feat)+6;rand(N3,no_feat)+12];
y = [repmat(-1,N1,1);repmat(1,N2,1);repmat(-1,N3,1)];


MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux