Evaluating performance measures of the classification model is often significantly trickier. There are many performance measures available. In the previous two tutorials, we discuss Confusion Matrix, Precision, Recall, and F1 score. So grab another coffee and get ready to learn one more performance measurement metrics.

The ROC(receiver operating characteristic) curve is used with binary classifiers. It is very similar to the precision/recall curve, but instead of plotting precision versus recall, the ROC curve plots TPR(the true positive rate) versus FPR (false positive rate).

The TPR is the ratio of positive instances that are correctly classified as positive while FPR is the ratio of negative instances that are incorrectly classified as positive. It is equal to 1-TNR(true negative rate), which is the ratio of negative instances that are correctly classified as negative.

To compute the ROC curve, you first need to have a set of predictions probability, so they can be compared to the actual targets. You could make predictions on the validation set.

``y_val_cat_prob=model.predict_proba(x_val)``

The `roc_curve()` function computed the TPR and FPR for various threshold values.

``````from sklearn.metrics import roc_curve,roc_auc_score

fpr , tpr , thresholds = roc_curve ( y_val_cat , y_val_cat_prob)``````

The first parameter to `roc_curve()` is the actual values for each sample, and the second parameter is the set of model-predicted probability values for each sample. The method produces the FPR and TPR.

Then you can plot the FPR against the TPR using Matplotlib.

``````def plot_roc_curve(fpr,tpr):
plt.plot(fpr,tpr)
plt.axis([0,1,0,1])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.show()

plot_roc_curve (fpr,tpr) ``````
``auc_score=roc_auc_score(y_val_cat,y_val_cat_prob)  #0.8822``