1
0
Fork 0

Compute the test set error

master
neingeist 10 years ago
parent 78830aaea7
commit 2ab445f9a8

@ -3,7 +3,7 @@
%
% Instructions
% ------------
%
%
% This file contains code that helps you get started on the
% exercise. You will need to complete the following functions:
%
@ -19,7 +19,7 @@
clear ; close all; clc
%% =========== Part 1: Loading and Visualizing Data =============
% We start the exercise by first loading and visualizing the dataset.
% 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.
%
@ -27,7 +27,7 @@ clear ; close all; clc
% Load Training Data
fprintf('Loading and Visualizing Data ...\n')
% Load from ex5data1:
% Load from ex5data1:
% You will have X, y, Xval, yval, Xtest, ytest in your environment
load ('ex5data1.mat');
@ -43,8 +43,8 @@ fprintf('Program paused. Press enter to continue.\n');
pause;
%% =========== Part 2: Regularized Linear Regression Cost =============
% You should now implement the cost function for regularized linear
% regression.
% You should now implement the cost function for regularized linear
% regression.
%
theta = [1 ; 1];
@ -57,7 +57,7 @@ fprintf('Program paused. Press enter to continue.\n');
pause;
%% =========== Part 3: Regularized Linear Regression Gradient =============
% You should now implement the gradient for regularized linear
% You should now implement the gradient for regularized linear
% regression.
%
@ -74,10 +74,10 @@ pause;
%% =========== Part 4: Train Linear Regression =============
% Once you have implemented the cost and gradient correctly, the
% trainLinearReg function will use your cost function to train
% trainLinearReg function will use your cost function to train
% regularized linear regression.
%
% Write Up Note: The data is non-linear, so this will not give a great
%
% Write Up Note: The data is non-linear, so this will not give a great
% fit.
%
@ -98,10 +98,10 @@ pause;
%% =========== Part 5: Learning Curve for Linear Regression =============
% Next, you should implement the learningCurve function.
% Next, you should implement the learningCurve function.
%
% Write Up Note: Since the model is underfitting the data, we expect to
% see a graph with "high bias" -- slide 8 in ML-advice.pdf
% see a graph with "high bias" -- slide 8 in ML-advice.pdf
%
lambda = 0;
@ -159,7 +159,7 @@ pause;
%% =========== Part 7: Learning Curve for Polynomial Regression =============
% Now, you will get to experiment with polynomial regression with multiple
% values of lambda. The code below runs polynomial regression with
% values of lambda. The code below runs polynomial regression with
% lambda = 0. You should try running the code with different values of
% lambda to see how the fit and learning curve change.
%
@ -196,7 +196,7 @@ fprintf('Program paused. Press enter to continue.\n');
pause;
%% =========== Part 8: Validation for Selecting Lambda =============
% You will now implement validationCurve to test various values of
% You will now implement validationCurve to test various values of
% lambda on a validation set. You will then use this to select the
% "best" lambda value.
%
@ -218,3 +218,11 @@ end
fprintf('Program paused. Press enter to continue.\n');
pause;
% Computing test set error
[~, best_i] = min(error_val, [], 1);
lambda_best = lambda_vec(best_i);
theta_best = trainLinearReg(X_poly, y, lambda_best);
error_test = linearRegCostFunction(X_poly_test, ytest, theta_best, 0);
fprintf('Test set error for best lambda = %f: %f\n', ...
lambda_best, error_test);