# TODO: calculate the probability of a student being admitted with score of 45,85 # replace pred_prob = 0 with pred_prob = expression for that probability pred_prob = theta_opt.dot(np.array([1, 45, 85])) print "For a student with 45 on exam 1 and 85 on exam 2, the probability of admission = ", pred_prob # compute accuracy on the training set predy = log_reg1.predict(XX) # TODO: calculate the accuracy of predictions on training set (hint: compare predy and y) accuracy = 1. * sum([predy[i] == y[i] for i in xrange(len(y))]) / len(y) print "Accuracy on the training set = ", accuracy # plot the decision surface plot_utils.plot_decision_boundary(X,y,theta_opt,'Exam 1 score', 'Exam 2 score',['Not Admitted','Admitted']) plt.savefig('fig2.pdf') # Compare with sklearn logistic regression # note the parameters fed into the LogisticRegression call from sklearn import linear_model sk_logreg = linear_model.LogisticRegression(C=1e5,solver='lbfgs',fit_intercept=False) sk_logreg.fit(XX,y) print "Theta found by sklearn: ", sk_logreg.coef_ plot_utils.plot_decision_boundary_sklearn(X,y,sk_logreg,'Exam 1 score', 'Exam 2 score',['Not Admitted','Admitted']) plt.savefig('fig2_sk.pdf')