La función roc_curve

Afortunadamente no es necesario hace todo esto para obtenerla: la función sklearn.metrics.roc_curve nos devuelve los FPR, TPR y los thresholds a partir de los valores reales de la variable objetivo y los scores dados a las muestras del dataset de pruebas:

from sklearn.metrics import roc_curve

FPR, TPR, Thresholds = roc_curve(y_test, scores)

fig, ax = plt.subplots(figsize = (8, 8))
plt.plot(FPR, TPR, linewidth = 2)
plt.plot([0, 1], [0, 1], 'k--')
ax.set_xlabel("False Positive Rate", fontsize = 15)
ax.set_ylabel("True Positive Rate", fontsize = 15)
ax.set_xticks(np.linspace(0, 1, 11));
ax.set_yticks(np.linspace(0, 1, 11));

ROC Curve