Machine Learning Online Class

Exercise 6 | Support Vector Machines
Instructions
------------
This file contains code that helps you get started on the
exercise. You will need to complete the following functions:
gaussianKernel.m
dataset3Params.m
processEmail.m
emailFeatures.m
For this exercise, you will not need to change any code in this file,
or any other files other than those mentioned above.

Initialization

clear ; close all; clc;

=============== Part 1: Loading and Visualizing Data ================

We start the exercise by first loading and visualizing the dataset.
The following code will load the dataset into your environment and plot
the data.
fprintf('Loading and Visualizing Data ...\n')
Loading and Visualizing Data ...
% Load from ex6data1:
% You will have X, y in your environment
load('ex6data1.mat');
% Plot training data
plotData(X, y);

==================== Part 2: Training Linear SVM ====================

The following code will train a linear SVM on the dataset and plot the
decision boundary learned.
% Load from ex6data1:
% You will have X, y in your environment
load('ex6data1.mat');
fprintf('\nTraining Linear SVM ...\n')
Training Linear SVM ...
% You should try to change the C value below and see how the decision
% boundary varies (e.g., try C = 1000)
C = 100;
model = svmTrain(X, y, C, @linearKernel, 1e-3, 20);
Training ......................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
..... Done!
visualizeBoundaryLinear(X, y, model);

=============== Part 3: Implementing Gaussian Kernel ===============

You will now implement the Gaussian kernel to use
with the SVM. You should complete the code in gaussianKernel.m
fprintf('\nEvaluating the Gaussian Kernel ...\n')
Evaluating the Gaussian Kernel ...
x1 = [1 2 1];
x2 = [0 4 -1];
sigma = 2;
sim = gaussianKernel(x1, x2, sigma);
fprintf(['Gaussian Kernel between x1 = [1; 2; 1], x2 = [0; 4; -1], sigma = %f :' ...
'\n\t%f\n(for sigma = 2, this value should be about 0.324652)\n'], sigma, sim);
Gaussian Kernel between x1 = [1; 2; 1], x2 = [0; 4; -1], sigma = 2.000000 :
0.324652
(for sigma = 2, this value should be about 0.324652)

=============== Part 4: Visualizing Dataset 2 ================

The following code will load the next dataset into your environment and
plot the data.
fprintf('Loading and Visualizing Data ...\n')
Loading and Visualizing Data ...
% Load from ex6data2:
% You will have X, y in your environment
load('ex6data2.mat');
% Plot training data
plotData(X, y);

========== Part 5: Training SVM with RBF Kernel (Dataset 2) ==========

After you have implemented the kernel, we can now use it to train the
SVM classifier.
fprintf('\nTraining SVM with RBF Kernel (this may take 1 to 2 minutes) ...\n');
Training SVM with RBF Kernel (this may take 1 to 2 minutes) ...
% SVM Parameters
C = 1;
sigma = 0.1;
% We set the tolerance and max_passes lower here so that the code will run
% faster. However, in practice, you will want to run the training to
% convergence.
model= svmTrain(X, y, C, @(x1, x2) gaussianKernel(x1, x2, sigma));
Training ......................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
.................................................. Done!
visualizeBoundary(X, y, model);

=============== Part 6: Visualizing Dataset 3 ================

The following code will load the next dataset into your environment and
plot the data.
fprintf('Loading and Visualizing Data ...\n')
Loading and Visualizing Data ...
% Load from ex6data3:
% You will have X, y in your environment
load('ex6data3.mat');
% Plot training data
plotData(X, y);

========== Part 7: Training SVM with RBF Kernel (Dataset 3) ==========

% This is a different dataset that you can use to experiment with. Try
% different values of C and sigma here.
%
% Try different SVM Parameters here
% 选择误差最小的C和sigma
[C, sigma] = dataset3Params(X, y, Xval, yval);
Training ......... Done!


Training ...................................................... Done!


Training .................................................... Done!


Training .............................................................. Done!


Training ................................ Done!


Training ............................. Done!


Training ........................................ Done!


Training .................................... Done!


Training ......... Done!


Training ....................................................... Done!


Training .................................................................... Done!


Training ......................................................................
Done!


Training ........................ Done!


Training ................................................... Done!


Training .................................................. Done!


Training ............................................ Done!


Training ......... Done!


Training .............................................. Done!


Training ......................................................................
...............................................................................
................................... Done!


Training .............................................................. Done!


Training .......................................................... Done!


Training .......................................................... Done!


Training .......................... Done!


Training .............................................. Done!


Training ......... Done!


Training ......................................................................
..... Done!


Training ......................................................................
...............................................................................
...............................................................................
.................. Done!


Training ......................................................................
................................. Done!


Training .................................................. Done!


Training ........................................ Done!


Training ........................ Done!


Training ......................................... Done!


Training ......... Done!


Training ......................................................................
................................................................... Done!


Training ......................................................................
...............................................................................
...............................................................................
.. Done!


Training ......................................................................
...............................................................................
.................................... Done!


Training .................................................................... Done!


Training ......................................................................
..... Done!


Training ............................................... Done!


Training ................................... Done!


Training .......... Done!


Training ......................................................................
........................................... Done!


Training ......................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
......... Done!


Training ......................................................................
...............................................................................
...............................................................................
............... Done!


Training ......................................................................
................ Done!


Training ......................................................... Done!


Training ...................................................... Done!


Training .................................................. Done!


Training ......... Done!


Training ......................................................................
...................... Done!


Training ......................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
........................... Done!


Training ......................................................................
...............................................................................
...............................................................................
.... Done!


Training ......................................................................
...............................................................................
................... Done!


Training ......................................................................
. Done!


Training ......................................................................
.. Done!


Training ........................................ Done!


Training ......... Done!


Training ......................................................................
...............................................................................
... Done!


Training ......................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
............................................... Done!


Training ......................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
......................................... Done!


Training ......................................................................
............................ Done!


Training ......................................................................
......... Done!


Training ............................................................ Done!


Training ...................................................... Done!
% Train the SVM
model= svmTrain(X, y, C, @(x1, x2) gaussianKernel(x1, x2, sigma));
Training ......................................................................
...............................................................................
...............................................................................
......................................................... Done!
visualizeBoundary(X, y, model);