求得θ值后用模型来预测 / 计算模型的精度
ex2.m部分程序
%% ============== Part 4: Predict and Accuracies ==============
% After learning the parameters, you'll like to use it to predict the outcomes% on unseen data. In this part, you will use the logistic regression model% to predict the probability that a student with score 45 on exam 1 and % score 85 on exam 2 will be admitted.%% Furthermore, you will compute the training and test set accuracies of % our model.%% Your task is to complete the code in predict.m% Predict probability for a student with score 45 on exam 1
% and score 85 on exam 2prob = sigmoid([1 45 85] * theta);
fprintf(['For a student with scores 45 and 85, we predict an admission ' ... 'probability of %f\n\n'], prob);% Compute accuracy on our training set
p = predict(theta, X);fprintf('Train Accuracy: %f\n', mean(double(p == y)) * 100); %若p==y,则返回1否则返回0;然后对这些0,1求平均值
fprintf('\nProgram paused. Press enter to continue.\n');
pause;
predict.m
function p = predict(theta, X)
%PREDICT Predict whether the label is 0 or 1 using learned logistic %regression parameters theta% p = PREDICT(theta, X) computes the predictions for X using a % threshold at 0.5 (i.e., if sigmoid(theta'*x) >= 0.5, predict 1)m = size(X, 1); % Number of training examples
% You need to return the following variables correctly
p = zeros(m, 1);% ====================== YOUR CODE HERE ======================
% Instructions: Complete the following code to make predictions using% your learned logistic regression parameters. % You should set p to a vector of 0's and 1's%for i=1:m if sigmoid(X(i,:) * theta) >=0.5 p(i) = 1; else p(i) = 0; endend% =========================================================================
end