Contents

Description of demo_regression_SVR.m

Demonstrates Support Vector Regression with different epsilon-insensitive loss values

clear all
close all
generateData_spreadOut

usage of SVR regression with 0.3 epsilon

options_svr1 = [];
options_svr1.addBias = 1;
options_svr1.epsilon = 0.3;
options_svr1.method = 'sm';
model_svr1 = ml_regression_SVR(Xtrain, ytrain, options_svr1);
yhat_svr1 = model_svr1.predict(model_svr1, Xtest);
testError_svr1 = mean(abs(yhat_svr1 - ytest));
fprintf('Averaged absolute test error with %s is: %.3f\n', model_svr1.name, testError_svr1);
Averaged absolute test error with Support Vector Regression with 0.3 Epsilon is: 0.049

usage of SVR regression with 0.8 epsilon

options_svr2 = [];
options_svr2.addBias = 1;
options_svr2.epsilon = 0.8;
options_svr2.method = 'sm';
options_svr2.lambdaL2 = 0;
model_svr2 = ml_regression_SVR(Xtrain, ytrain, options_svr2);
yhat_svr2 = model_svr2.predict(model_svr2, Xtest);
testError_svr2 = mean(abs(yhat_svr2 - ytest));
fprintf('Averaged absolute test error with %s is: %.3f\n', model_svr2.name, testError_svr2);
Averaged absolute test error with Support Vector Regression with 0.8 Epsilon is: 0.279
plotRegression1D(Xtrain, ytrain, model_svr1);
hold on;
svs = plot(Xtrain(model_svr1.supportVector),ytrain(model_svr1.supportVector),'o','color','r');
eps1 = plot(Xtest, yhat_svr1 + model_svr1.epsilon, 'r--');
eps2 = plot(Xtest, yhat_svr1 - model_svr1.epsilon, 'r--');
legend([svs,eps1],{'Support Vectors', '\epsilon-Insensitive Tube'});
title(model_svr1.name)

plotRegression1D(Xtrain, ytrain, model_svr2);
hold on;
svs2 = plot(Xtrain(model_svr2.supportVector),ytrain(model_svr2.supportVector),'o','color','r');
eps3 = plot(Xtest, yhat_svr2 + model_svr2.epsilon, 'r--');
plot(Xtest, yhat_svr2 - model_svr2.epsilon, 'r--');
legend([svs2,eps3],{'Support Vectors', '\epsilon-Insensitive Tube'});
title(model_svr2.name)