예제 #1
0
        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)