title: one vs all regression
body: <p>I have been reviewing an example from the course of Andrew Ng in Machine Learning which I found in <a href="https://github.com/jcgillespie/Coursera-Machine-Learning/tree/master/ex3">https://github.com/jcgillespie/Coursera-Machine-Learning/tree/master/ex3</a>. The example deals with logistic regression and one-vs-all classification. I have a doubt about this function:</p>
  
  <pre><code>function [all_theta] = oneVsAll(X, y, num_labels, lambda)
  %ONEVSALL trains multiple logistic regression classifiers and returns all
  %the classifiers in a matrix all_theta, where the i-th row of all_theta 
  %corresponds to the classifier for label i
  %   [all_theta] = ONEVSALL(X, y, num_labels, lambda) trains num_labels
  %   logisitc regression classifiers and returns each of these classifiers
  %   in a matrix all_theta, where the i-th row of all_theta corresponds 
  %   to the classifier for label i
  
  % Some useful variables
  m = size(X, 1);
  n = size(X, 2);
  
  % You need to return the following variables correctly 
  all_theta = zeros(num_labels, n + 1);
  
  % Add ones to the X data matrix
  X = [ones(m, 1) X];
  
  % ====================== YOUR CODE HERE ======================
  % Instructions: You should complete the following code to train num_labels
  %               logistic regression classifiers with regularization
  %               parameter lambda. 
  %
  % Hint: theta(:) will return a column vector.
  %
  % Hint: You can use y == c to obtain a vector of 1's and 0's that tell use 
  %       whether the ground truth is true/false for this class.
  %
  % Note: For this assignment, we recommend using fmincg to optimize the cost
  %       function. It is okay to use a for-loop (for c = 1:num_labels) to
  %       loop over the different classes.
  %
  %       fmincg works similarly to fminunc, but is more efficient when we
  %       are dealing with large number of parameters.
  %
  % Example Code for fmincg:
  %
  %     % Set Initial theta
  %     initial_theta = zeros(n + 1, 1);
  %     
  %     % Set options for fminunc
  %     options = optimset('GradObj', 'on', 'MaxIter', 50);
  % 
  %     % Run fmincg to obtain the optimal theta
  %     % This function will return theta and the cost 
  %     [theta] = ...
  %         fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), ...
  %                 initial_theta, options);
  %
  
  initial_theta = zeros(n + 1, 1);
  
  options = optimset('GradObj', 'on', 'MaxIter', 50);
  
  for i = 1:num_labels
  
      c = i * ones(size(y));
      fprintf('valores')
      [theta] = fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), initial_theta, options);
      all_theta(i,:) = theta;
  
  end
  
  
  % =========================================================================
  
  
  end
  </code></pre>
  
  <p>I know that the lrCostFunction takes as parameters: theta, X, y and lambda, but I cannot figure it out from where the value of <strong>t</strong> comes from in the code that I posted above; specifically in this part:</p>
  
  <pre><code>[theta] = fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), initial_theta, options);
  </code></pre>
  
  <p>any help?</p>