annotate trainLinearReg.m @ 5:eddd33e57f6a default tip

Justify loop in trainLinearReg
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Sun, 27 Nov 2011 15:58:14 -0500
parents 0f14514e907f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 function [theta] = trainLinearReg(X, y, lambda)
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
2 %TRAINLINEARREG Trains linear regression given a dataset (X, y) and a
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
3 %regularization parameter lambda
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
4 % [theta] = TRAINLINEARREG (X, y, lambda) trains linear regression using
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
5 % the dataset (X, y) and regularization parameter lambda. Returns the
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6 % trained parameters theta.
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
7 %
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
9 % Initialize Theta
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
10 initial_theta = zeros(size(X, 2), 1);
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
11
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
12 % Create "short hand" for the cost function to be minimized
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
13 costFunction = @(t) linearRegCostFunction(X, y, t, lambda);
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
14
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
15 % Now, costFunction is a function that takes in only one argument
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
16 options = optimset('MaxIter', 200, 'GradObj', 'on');
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
17
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
18 % Minimize using fmincg
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
19 theta = fmincg(costFunction, initial_theta, options);
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
20
0f14514e907f initial commit
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
21 end