TN = np.sum((labels == 0) & (predicted_labels == 0)) FP = np.sum((labels == 0) & (predicted_labels == 1)) TPR.append(float(TP) / (TP + FN)) FPR.append(float(FP) / (TN + FP)) idx = np.argsort(probabilities) np.argsort(probs) return np.array(TPR)[idx], np.array(FPR)[idx], probabilities[idx] logit = LogisticRegression() logit.fit(X_train_rank, y_train_rank) probs = logit.predict_proba(X_test)[:, 1:] probs = np.array([x[0] for x in probs]) tpr, fpr, thresholds = roc_curve(probs, np.array(y_test)) plt.plot(fpr, tpr) plt.plot([0, 1], [0, 1], ls="--", c=".3", alpha=0.5) plt.xlabel("False Positive Rate (1 - Specificity)") plt.ylabel("True Positive Rate (Sensitivity, Recall)") plt.axvline(0.4) plt.axhline(0.6) plt.title("ROC plot of fake data") plt.show() logit = LogisticRegression() logit.fit(X_rank, y_rank)