Path: blob/master/Week 6/Programming Assignment - 5/machine-learning-ex5/ex5/validationCurve.m
864 views
function [lambda_vec, error_train, error_val] = ...1validationCurve(X, y, Xval, yval)2%VALIDATIONCURVE Generate the train and validation errors needed to3%plot a validation curve that we can use to select lambda4% [lambda_vec, error_train, error_val] = ...5% VALIDATIONCURVE(X, y, Xval, yval) returns the train6% and validation errors (in error_train, error_val)7% for different values of lambda. You are given the training set (X,8% y) and validation set (Xval, yval).9%1011% Selected values of lambda (you should not change this)12lambda_vec = [0 0.001 0.003 0.01 0.03 0.1 0.3 1 3 10]';1314% You need to return these variables correctly.15error_train = zeros(length(lambda_vec), 1);16error_val = zeros(length(lambda_vec), 1);1718% ====================== YOUR CODE HERE ======================19% Instructions: Fill in this function to return training errors in20% error_train and the validation errors in error_val. The21% vector lambda_vec contains the different lambda parameters22% to use for each calculation of the errors, i.e,23% error_train(i), and error_val(i) should give24% you the errors obtained after training with25% lambda = lambda_vec(i)26%27% Note: You can loop over lambda_vec with the following:28%29% for i = 1:length(lambda_vec)30% lambda = lambda_vec(i);31% % Compute train / val errors when training linear32% % regression with regularization parameter lambda33% % You should store the result in error_train(i)34% % and error_val(i)35% ....36%37% end38%39%404142for i = 1:length(lambda_vec)43lambda = lambda_vec(i);44theta = trainLinearReg(X,y,lambda);45error_train(i) = linearRegCostFunction(X,y,theta,0);46error_val(i) = linearRegCostFunction(Xval,yval,theta,0);47end;4849% =========================================================================5051end525354