How to Write Own RBF (Gaussian Kernel) For SVM

Hi guys,
To solve a non linear classification problem, I wanted to write my own gaussian kernel (RBF), but i think I did something wrong when I had implemented it in MATLAB.
I implemented the function in the image below:
Using Tylor Series Expansion, it yields:
And, I seperated the Gaussian Kernel like this:
K(x, x') = phi(x)' * phi(x')
The implementation of this thought is:
function phi = gaussianKernel(x, Sigma2)
gamma = 1 / (2 * Sigma2);
featDim = 10; % Length of Tylor Series; Gaussian Kernel Converge 0 so It doesn't have to Be Inf Dimension
phi = []; % Kernel Output, The Dimension will be (#Sample) x (featDim*2)
for k = 0 : (featDim - 1)
% Gaussian Kernel Trick Using Tylor Series Expansion
phi = [phi, exp( -gamma .* (x(:, 1)).^2) * sqrt(gamma^2 * 2^k / factorial(k)) .* x(:, 1).^k, ...
exp( -gamma .* (x(:, 2)).^2) * sqrt(gamma^2 * 2^k / factorial(k)) .* x(:, 2).^k];
end
end
The code doesn' t look like nice due to wrap, so here is as image:
In my implementation, samples are two dim vectors, so the argument "x" is the samples of the classes and N x 2 dim.
The argument "Sigma2" is the variance of the gaussian kernel (RBF).
If you know about RBF (Gaussian Kernel) please let me know how I can make it right..

1 Comment

Can you post your whole code including kernel call to help us troubleshoot well?Also please post your error

Sign in to comment.

Answers (1)

Hey I was looking to do the same thing? Did you figure it out how to implement the entire thing?

Asked:

on 12 Nov 2014

Answered:

on 3 Mar 2019

Community Treasure Hunt

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

Start Hunting!