sklearn.metrics.DetCurveDisplay

class sklearn.metrics.DetCurveDisplay(*, fpr, fnr, estimator_name=None, pos_label=None)[source]

DET curve visualization.

It is recommend to use from_estimator or from_predictions to create a visualizer. All parameters are stored as attributes.

Read more in the User Guide.

New in version 0.24.

Parameters:
fprndarray

False positive rate.

fnrndarray

False negative rate.

estimator_namestr, default=None

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

pos_labelstr or int, default=None

The label of the positive class.

Attributes:
line_matplotlib Artist

DET Curve.

ax_matplotlib Axes

Axes with DET Curve.

figure_matplotlib Figure

Figure containing the curve.

See also

det_curve

Compute error rates for different probability thresholds.

DetCurveDisplay.from_estimator

Plot DET curve given an estimator and some data.

DetCurveDisplay.from_predictions

Plot DET curve given the true and predicted labels.

Examples

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import det_curve, DetCurveDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.svm import SVC
>>> X, y = make_classification(n_samples=1000, random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.4, random_state=0)
>>> clf = SVC(random_state=0).fit(X_train, y_train)
>>> y_pred = clf.decision_function(X_test)
>>> fpr, fnr, _ = det_curve(y_test, y_pred)
>>> display = DetCurveDisplay(
...     fpr=fpr, fnr=fnr, estimator_name="SVC"
... )
>>> display.plot()
<...>
>>> plt.show()
../../_images/sklearn-metrics-DetCurveDisplay-1.png

Methods

from_estimator(estimator, X, y, *[, ...])

Plot DET curve given an estimator and data.

from_predictions(y_true, y_pred, *[, ...])

Plot the DET curve given the true and predicted labels.

plot([ax, name])

Plot visualization.

classmethod from_estimator(estimator, X, y, *, sample_weight=None, response_method='auto', pos_label=None, name=None, ax=None, **kwargs)[source]

Plot DET curve given an estimator and data.

Read more in the User Guide.

New in version 1.0.

Parameters:
estimatorestimator instance

Fitted classifier or a fitted Pipeline in 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.

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

Specifies whether to use predict_proba or decision_function as the predicted target response. If set to ‘auto’, predict_proba is tried first and if it does not exist decision_function is tried next.

pos_labelstr or int, default=None

The label of the positive class. When pos_label=None, if y_true is in {-1, 1} or {0, 1}, pos_label is set to 1, otherwise an error will be raised.

namestr, default=None

Name of DET curve for labeling. If None, use the name of the estimator.

axmatplotlib axes, default=None

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

**kwargsdict

Additional keywords arguments passed to matplotlib plot function.

Returns:
displayDetCurveDisplay

Object that stores computed values.

See also

det_curve

Compute error rates for different probability thresholds.

DetCurveDisplay.from_predictions

Plot DET curve given the true and predicted labels.

Examples

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import DetCurveDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.svm import SVC
>>> X, y = make_classification(n_samples=1000, random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.4, random_state=0)
>>> clf = SVC(random_state=0).fit(X_train, y_train)
>>> DetCurveDisplay.from_estimator(
...    clf, X_test, y_test)
<...>
>>> plt.show()
../../_images/sklearn-metrics-DetCurveDisplay-2.png
classmethod from_predictions(y_true, y_pred, *, sample_weight=None, pos_label=None, name=None, ax=None, **kwargs)[source]

Plot the DET curve given the true and predicted labels.

Read more in the User Guide.

New in version 1.0.

Parameters:
y_truearray-like of shape (n_samples,)

True labels.

y_predarray-like of shape (n_samples,)

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

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

Sample weights.

pos_labelstr or int, default=None

The label of the positive class. When pos_label=None, if y_true is in {-1, 1} or {0, 1}, pos_label is set to 1, otherwise an error will be raised.

namestr, default=None

Name of DET curve for labeling. If None, name will be set to "Classifier".

axmatplotlib axes, default=None

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

**kwargsdict

Additional keywords arguments passed to matplotlib plot function.

Returns:
displayDetCurveDisplay

Object that stores computed values.

See also

det_curve

Compute error rates for different probability thresholds.

DetCurveDisplay.from_estimator

Plot DET curve given an estimator and some data.

Examples

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import DetCurveDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.svm import SVC
>>> X, y = make_classification(n_samples=1000, random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.4, random_state=0)
>>> clf = SVC(random_state=0).fit(X_train, y_train)
>>> y_pred = clf.decision_function(X_test)
>>> DetCurveDisplay.from_predictions(
...    y_test, y_pred)
<...>
>>> plt.show()
../../_images/sklearn-metrics-DetCurveDisplay-3.png
plot(ax=None, *, name=None, **kwargs)[source]

Plot visualization.

Parameters:
axmatplotlib axes, default=None

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

namestr, default=None

Name of DET curve for labeling. If None, use estimator_name if it is not None, otherwise no labeling is shown.

**kwargsdict

Additional keywords arguments passed to matplotlib plot function.

Returns:
displayDetCurveDisplay

Object that stores computed values.