RocCurveDisplay#

classsklearn.metrics.RocCurveDisplay(*,fpr,tpr,roc_auc=None,name=None,pos_label=None,estimator_name='deprecated')[source]#

ROC Curve visualization.

It is recommended to usefrom_estimator orfrom_predictions orfrom_cv_results to createaRocCurveDisplay. All parameters arestored as attributes.

For general information regardingscikit-learn visualization tools, seetheVisualization Guide.For guidance on interpreting these plots, refer to theModelEvaluation Guide.

Parameters:
fprndarray or list of ndarrays

False positive rates. Each ndarray should contain values for a single curve.If plotting multiple curves, list should be of same length astpr.

Changed in version 1.7:Now accepts a list for plotting multiple curves.

tprndarray or list of ndarrays

True positive rates. Each ndarray should contain values for a single curve.If plotting multiple curves, list should be of same length asfpr.

Changed in version 1.7:Now accepts a list for plotting multiple curves.

roc_aucfloat or list of floats, default=None

Area under ROC curve, used for labeling each curve in the legend.If plotting multiple curves, should be a list of the same length asfprandtpr. IfNone, ROC AUC scores are not shown in the legend.

Changed in version 1.7:Now accepts a list for plotting multiple curves.

namestr or list of str, default=None

Name for labeling legend entries. The number of legend entries is determinedby thecurve_kwargs passed toplot, and is not affected byname.To label each curve, provide a list of strings. To avoid labelingindividual curves that have the same appearance, this cannot be used inconjunction withcurve_kwargs being a dictionary or None. If astring is provided, it will be used to either label the single legend entryor if there are multiple legend entries, label each individual curve withthe same name. If stillNone, no name is shown in the legend.

Added in version 1.7.

pos_labelint, float, bool or str, default=None

The class considered as the positive class when computing the roc aucmetrics. By default,estimators.classes_[1] is consideredas the positive class.

Added in version 0.24.

estimator_namestr, default=None

Name of estimator. If None, the estimator name is not shown.

Deprecated since version 1.7:estimator_name is deprecated and will be removed in 1.9. Usenameinstead.

Attributes:
line_matplotlib Artist or list of matplotlib Artists

ROC Curves.

Changed in version 1.7:This attribute can now be a list of Artists, for when multiple curvesare plotted.

chance_level_matplotlib Artist or None

The chance level line. It isNone if the chance level is not plotted.

Added in version 1.3.

ax_matplotlib Axes

Axes with ROC Curve.

figure_matplotlib Figure

Figure containing the curve.

See also

roc_curve

Compute Receiver operating characteristic (ROC) curve.

RocCurveDisplay.from_estimator

Plot Receiver Operating Characteristic (ROC) curve given an estimator and some data.

RocCurveDisplay.from_predictions

Plot Receiver Operating Characteristic (ROC) curve given the true and predicted values.

roc_auc_score

Compute the area under the ROC curve.

Examples

>>>importmatplotlib.pyplotasplt>>>importnumpyasnp>>>fromsklearnimportmetrics>>>y_true=np.array([0,0,1,1])>>>y_score=np.array([0.1,0.4,0.35,0.8])>>>fpr,tpr,thresholds=metrics.roc_curve(y_true,y_score)>>>roc_auc=metrics.auc(fpr,tpr)>>>display=metrics.RocCurveDisplay(fpr=fpr,tpr=tpr,roc_auc=roc_auc,...name='example estimator')>>>display.plot()<...>>>>plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-1.png
classmethodfrom_cv_results(cv_results,X,y,*,sample_weight=None,drop_intermediate=True,response_method='auto',pos_label=None,ax=None,name=None,curve_kwargs=None,plot_chance_level=False,chance_level_kwargs=None,despine=False)[source]#

Create a multi-fold ROC curve display given cross-validation results.

Added in version 1.7.

Parameters:
cv_resultsdict

Dictionary as returned bycross_validateusingreturn_estimator=True andreturn_indices=True (i.e., dictionaryshould contain the keys “estimator” and “indices”).

X{array-like, sparse matrix} of shape (n_samples, n_features)

Input values.

yarray-like of shape (n_samples,)

Target values.

sample_weightarray-like of shape (n_samples,), default=None

Sample weights.

drop_intermediatebool, default=True

Whether to drop some suboptimal thresholds which would not appearon a plotted ROC curve. This is useful in order to create lighterROC curves.

response_method{‘predict_proba’, ‘decision_function’, ‘auto’} default=’auto’

Specifies whether to usepredict_proba ordecision_function as the target response. If set to ‘auto’,predict_proba is tried first and if it does not existdecision_function is tried next.

pos_labelint, float, bool or str, default=None

The class considered as the positive class when computing the ROC AUCmetrics. By default,estimators.classes_[1] is consideredas the positive class.

axmatplotlib axes, default=None

Axes object to plot on. IfNone, a new figure and axes iscreated.

namestr or list of str, default=None

Name for labeling legend entries. The number of legend entriesis determined bycurve_kwargs, and is not affected byname.To label each curve, provide a list of strings. To avoid labelingindividual curves that have the same appearance, this cannot be used inconjunction withcurve_kwargs being a dictionary or None. If astring is provided, it will be used to either label the single legend entryor if there are multiple legend entries, label each individual curve withthe same name. IfNone, no name is shown in the legend.

curve_kwargsdict or list of dict, default=None

Keywords arguments to be passed to matplotlib’splot functionto draw individual ROC curves. If a list is provided theparameters are applied to the ROC curves of each CV foldsequentially and a legend entry is added for each curve.If a single dictionary is provided, the same parameters are appliedto all ROC curves and a single legend entry for all curves is added,labeled with the mean ROC AUC score.

plot_chance_levelbool, default=False

Whether to plot the chance level.

chance_level_kwargsdict, default=None

Keyword arguments to be passed to matplotlib’splot for renderingthe chance level line.

despinebool, default=False

Whether to remove the top and right spines from the plot.

Returns:
displayRocCurveDisplay

The multi-fold ROC curve display.

See also

roc_curve

Compute Receiver operating characteristic (ROC) curve.

RocCurveDisplay.from_estimator

ROC Curve visualization given an estimator and some data.

RocCurveDisplay.from_predictions

ROC Curve visualization given the probabilities of scores of a classifier.

roc_auc_score

Compute the area under the ROC curve.

Examples

>>>importmatplotlib.pyplotasplt>>>fromsklearn.datasetsimportmake_classification>>>fromsklearn.metricsimportRocCurveDisplay>>>fromsklearn.model_selectionimportcross_validate>>>fromsklearn.svmimportSVC>>>X,y=make_classification(random_state=0)>>>clf=SVC(random_state=0)>>>cv_results=cross_validate(...clf,X,y,cv=3,return_estimator=True,return_indices=True)>>>RocCurveDisplay.from_cv_results(cv_results,X,y)<...>>>>plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-2.png
classmethodfrom_estimator(estimator,X,y,*,sample_weight=None,drop_intermediate=True,response_method='auto',pos_label=None,name=None,ax=None,curve_kwargs=None,plot_chance_level=False,chance_level_kw=None,despine=False,**kwargs)[source]#

Create a ROC Curve display from an estimator.

For general information regardingscikit-learn visualization tools,see theVisualization Guide.For guidance on interpreting these plots, refer to theModelEvaluation Guide.

Parameters:
estimatorestimator instance

Fitted classifier or a fittedPipelinein which the last estimator is a classifier.

X{array-like, sparse matrix} of shape (n_samples, n_features)

Input values.

yarray-like of shape (n_samples,)

Target values.

sample_weightarray-like of shape (n_samples,), default=None

Sample weights.

drop_intermediatebool, default=True

Whether to drop thresholds where the resulting point is collinearwith its neighbors in ROC space. This has no effect on the ROC AUCor visual shape of the curve, but reduces the number of plottedpoints.

response_method{‘predict_proba’, ‘decision_function’, ‘auto’} default=’auto’

Specifies whether to usepredict_proba ordecision_function as the target response. If set to ‘auto’,predict_proba is tried first and if it does not existdecision_function is tried next.

pos_labelint, float, bool or str, default=None

The class considered as the positive class when computing the ROC AUC.By default,estimators.classes_[1] is consideredas the positive class.

namestr, default=None

Name of ROC Curve for labeling. IfNone, use the name of theestimator.

axmatplotlib axes, default=None

Axes object to plot on. IfNone, a new figure and axes is created.

curve_kwargsdict, default=None

Keywords arguments to be passed to matplotlib’splot function.

Added in version 1.7.

plot_chance_levelbool, default=False

Whether to plot the chance level.

Added in version 1.3.

chance_level_kwdict, default=None

Keyword arguments to be passed to matplotlib’splot for renderingthe chance level line.

Added in version 1.3.

despinebool, default=False

Whether to remove the top and right spines from the plot.

Added in version 1.6.

**kwargsdict

Keyword arguments to be passed to matplotlib’splot.

Deprecated since version 1.7:kwargs is deprecated and will be removed in 1.9. Pass matplotlibarguments tocurve_kwargs as a dictionary instead.

Returns:
displayRocCurveDisplay

The ROC Curve display.

See also

roc_curve

Compute Receiver operating characteristic (ROC) curve.

RocCurveDisplay.from_predictions

ROC Curve visualization given the probabilities of scores of a classifier.

roc_auc_score

Compute the area under the ROC curve.

Examples

>>>importmatplotlib.pyplotasplt>>>fromsklearn.datasetsimportmake_classification>>>fromsklearn.metricsimportRocCurveDisplay>>>fromsklearn.model_selectionimporttrain_test_split>>>fromsklearn.svmimportSVC>>>X,y=make_classification(random_state=0)>>>X_train,X_test,y_train,y_test=train_test_split(...X,y,random_state=0)>>>clf=SVC(random_state=0).fit(X_train,y_train)>>>RocCurveDisplay.from_estimator(...clf,X_test,y_test)<...>>>>plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-3.png
classmethodfrom_predictions(y_true,y_score=None,*,sample_weight=None,drop_intermediate=True,pos_label=None,name=None,ax=None,curve_kwargs=None,plot_chance_level=False,chance_level_kw=None,despine=False,y_pred='deprecated',**kwargs)[source]#

Plot ROC curve given the true and predicted values.

For general information regardingscikit-learn visualization tools,see theVisualization Guide.For guidance on interpreting these plots, refer to theModelEvaluation Guide.

Added in version 1.0.

Parameters:
y_truearray-like of shape (n_samples,)

True labels.

y_scorearray-like of shape (n_samples,)

Target scores, can either be probability estimates of the positiveclass, confidence values, or non-thresholded measure of decisions(as returned by “decision_function” on some classifiers).

Added in version 1.7:y_pred has been renamed toy_score.

sample_weightarray-like of shape (n_samples,), default=None

Sample weights.

drop_intermediatebool, default=True

Whether to drop thresholds where the resulting point is collinearwith its neighbors in ROC space. This has no effect on the ROC AUCor visual shape of the curve, but reduces the number of plottedpoints.

pos_labelint, float, bool or str, default=None

The label of the positive class when computing the ROC AUC.Whenpos_label=None, ify_true is in {-1, 1} or {0, 1},pos_labelis set to 1, otherwise an error will be raised.

namestr, default=None

Name of ROC curve for legend labeling. IfNone, name will be set to"Classifier".

axmatplotlib axes, default=None

Axes object to plot on. IfNone, a new figure and axes iscreated.

curve_kwargsdict, default=None

Keywords arguments to be passed to matplotlib’splot function.

Added in version 1.7.

plot_chance_levelbool, default=False

Whether to plot the chance level.

Added in version 1.3.

chance_level_kwdict, default=None

Keyword arguments to be passed to matplotlib’splot for renderingthe chance level line.

Added in version 1.3.

despinebool, default=False

Whether to remove the top and right spines from the plot.

Added in version 1.6.

y_predarray-like of shape (n_samples,)

Target scores, can either be probability estimates of the positiveclass, confidence values, or non-thresholded measure of decisions(as returned by “decision_function” on some classifiers).

Deprecated since version 1.7:y_pred is deprecated and will be removed in 1.9. Usey_score instead.

**kwargsdict

Additional keywords arguments passed to matplotlibplot function.

Deprecated since version 1.7:kwargs is deprecated and will be removed in 1.9. Pass matplotlibarguments tocurve_kwargs as a dictionary instead.

Returns:
displayRocCurveDisplay

Object that stores computed values.

See also

roc_curve

Compute Receiver operating characteristic (ROC) curve.

RocCurveDisplay.from_estimator

ROC Curve visualization given an estimator and some data.

roc_auc_score

Compute the area under the ROC curve.

Examples

>>>importmatplotlib.pyplotasplt>>>fromsklearn.datasetsimportmake_classification>>>fromsklearn.metricsimportRocCurveDisplay>>>fromsklearn.model_selectionimporttrain_test_split>>>fromsklearn.svmimportSVC>>>X,y=make_classification(random_state=0)>>>X_train,X_test,y_train,y_test=train_test_split(...X,y,random_state=0)>>>clf=SVC(random_state=0).fit(X_train,y_train)>>>y_score=clf.decision_function(X_test)>>>RocCurveDisplay.from_predictions(y_test,y_score)<...>>>>plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-4.png
plot(ax=None,*,name=None,curve_kwargs=None,plot_chance_level=False,chance_level_kw=None,despine=False,**kwargs)[source]#

Plot visualization.

Parameters:
axmatplotlib axes, default=None

Axes object to plot on. IfNone, a new figure and axes iscreated.

namestr or list of str, default=None

Name for labeling legend entries. The number of legend entriesis determined bycurve_kwargs, and is not affected byname.To label each curve, provide a list of strings. To avoid labelingindividual curves that have the same appearance, this cannot be used inconjunction withcurve_kwargs being a dictionary or None. If astring is provided, it will be used to either label the single legend entryor if there are multiple legend entries, label each individual curve withthe same name. IfNone, set toname provided atRocCurveDisplayinitialization. If stillNone, no name is shown in the legend.

Added in version 1.7.

curve_kwargsdict or list of dict, default=None

Keywords arguments to be passed to matplotlib’splot functionto draw individual ROC curves. For single curve plotting, should bea dictionary. For multi-curve plotting, if a list is provided theparameters are applied to the ROC curves of each CV foldsequentially and a legend entry is added for each curve.If a single dictionary is provided, the same parameters are appliedto all ROC curves and a single legend entry for all curves is added,labeled with the mean ROC AUC score.

Added in version 1.7.

plot_chance_levelbool, default=False

Whether to plot the chance level.

Added in version 1.3.

chance_level_kwdict, default=None

Keyword arguments to be passed to matplotlib’splot for renderingthe chance level line.

Added in version 1.3.

despinebool, default=False

Whether to remove the top and right spines from the plot.

Added in version 1.6.

**kwargsdict

Keyword arguments to be passed to matplotlib’splot.

Deprecated since version 1.7:kwargs is deprecated and will be removed in 1.9. Pass matplotlibarguments tocurve_kwargs as a dictionary instead.

Returns:
displayRocCurveDisplay

Object that stores computed values.

Gallery examples#

Feature transformations with ensembles of trees

Feature transformations with ensembles of trees

Visualizations with Display Objects

Visualizations with Display Objects

Evaluation of outlier detection estimators

Evaluation of outlier detection estimators

ROC Curve with Visualization API

ROC Curve with Visualization API

Post-tuning the decision threshold for cost-sensitive learning

Post-tuning the decision threshold for cost-sensitive learning

Detection error tradeoff (DET) curve

Detection error tradeoff (DET) curve

Multiclass Receiver Operating Characteristic (ROC)

Multiclass Receiver Operating Characteristic (ROC)

Receiver Operating Characteristic (ROC) with cross validation

Receiver Operating Characteristic (ROC) with cross validation

Release Highlights for scikit-learn 0.22

Release Highlights for scikit-learn 0.22

Release Highlights for scikit-learn 1.7

Release Highlights for scikit-learn 1.7