Toggle Menu
Prev Up Next

scikit-learn 1.3.2
Other versions

Please cite us if you use the software.

# `sklearn.metrics`.RocCurveDisplay

class sklearn.metrics.RocCurveDisplay(*, fpr, tpr, roc_auc=None, estimator_name=None, pos_label=None)

  ROC Curve visualization.

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

  Read more in the User Guide.

  Parameters:
    fpr ndarray

      False positive rate.

    tpr ndarray

      True positive rate.

    roc_auc float, default=None

      Area under ROC curve. If None, the roc_auc score is not shown.

    estimator_name str, default=None

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

    pos_label int, float, bool or str, default=None

      The class considered as the positive class when computing the roc auc metrics. By default, `estimators.classes_[1]` is considered as the positive class.

      New in version 0.24.

  Attributes:
    line_matplotlib Artist

      ROC Curve.

    chance_level_matplotlib Artist or None

      The chance level line. It is `None` if the chance level is not plotted.

      New 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

      >>> import matplotlib.pyplot as plt
      >>> import numpy as np
      >>> from sklearn import metrics
      >>> y = np.array([0, 0, 1, 1])
      >>> pred = np.array([0.1, 0.4, 0.35, 0.8])
      >>> fpr, tpr, thresholds = metrics.roc_curve(y, pred)
      >>> roc_auc = metrics.auc(fpr, tpr)
      >>> display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc,
      ...                                   estimator_name='example estimator')
      >>> display.plot()
      <...>
      >>> plt.show()

  Methods

  `from_estimator`(estimator, X, y, *[, ...]) | Create a ROC Curve display from an estimator.
  `from_predictions`(y_true, y_pred, *[, ...]) | Plot ROC curve given the true and predicted values.
  `plot`([ax, name, plot_chance_level, ...]) | Plot visualization.

  classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, **kwargs)

    Create a ROC Curve display from an estimator.

    Parameters:
      estimator estimator 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.

      y array-like of shape (n_samples,)

        Target values.

      sample_weight array-like of shape (n_samples,), default=None

        Sample weights.

      drop_intermediate bool, default=True

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

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

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

      pos_label int, float, bool or str, default=None

        The class considered as the positive class when computing the roc auc metrics. By default, `estimators.classes_[1]` is considered as the positive class.

      name str, default=None

        Name of ROC Curve for labeling. If `None`, use the name of the estimator.

      ax matplotlib axes, default=None

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

      plot_chance_level bool, default=False

        Whether to plot the chance level.

        New in version 1.3.

      chance_level_kw dict, default=None

        Keyword arguments to be passed to matplotlib’s `plot` for rendering the chance level line.

        New in version 1.3.

      **kwargs dict

        Keyword arguments to be passed to matplotlib’s `plot`.

    Returns:
      display `RocCurveDisplay`

        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

        >>> import matplotlib.pyplot as plt
        >>> from sklearn.datasets import make_classification
        >>> from sklearn.metrics import RocCurveDisplay
        >>> from sklearn.model_selection import train_test_split
        >>> from sklearn.svm import SVC
        >>> 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()

  classmethod from_predictions(y_true, y_pred, *, sample_weight=None, drop_intermediate=True, pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, **kwargs)

    Plot ROC curve given the true and predicted values.

    Read more in the User Guide.

    New in version 1.0.

    Parameters:
      y_true array-like of shape (n_samples,)

        True labels.

      y_pred array-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_weight array-like of shape (n_samples,), default=None

        Sample weights.

      drop_intermediate bool, default=True

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

      pos_label int, float, bool or str, 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.

      name str, default=None

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

      ax matplotlib axes, default=None

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

      plot_chance_level bool, default=False

        Whether to plot the chance level.

        New in version 1.3.

      chance_level_kw dict, default=None

        Keyword arguments to be passed to matplotlib’s `plot` for rendering the chance level line.

        New in version 1.3.

      **kwargs dict

        Additional keywords arguments passed to matplotlib `plot` function.

    Returns:
      display `RocCurveDisplay`

        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

        >>> import matplotlib.pyplot as plt
        >>> from sklearn.datasets import make_classification
        >>> from sklearn.metrics import RocCurveDisplay
        >>> from sklearn.model_selection import train_test_split
        >>> from sklearn.svm import SVC
        >>> 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_pred = clf.decision_function(X_test)
        >>> RocCurveDisplay.from_predictions(
        ...    y_test, y_pred)
        <...>
        >>> plt.show()

  plot(ax=None, *, name=None, plot_chance_level=False, chance_level_kw=None, **kwargs)

    Plot visualization.

    Extra keyword arguments will be passed to matplotlib’s `plot`.

    Parameters:
      ax matplotlib axes, default=None

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

      name str, default=None

        Name of ROC Curve for labeling. If `None`, use `estimator_name` if not `None`, otherwise no labeling is shown.

      plot_chance_level bool, default=False

        Whether to plot the chance level.

        New in version 1.3.

      chance_level_kw dict, default=None

        Keyword arguments to be passed to matplotlib’s `plot` for rendering the chance level line.

        New in version 1.3.

      **kwargs dict

        Keyword arguments to be passed to matplotlib’s `plot`.

    Returns:
      display `RocCurveDisplay`

        Object that stores computed values.

## Examples using `sklearn.metrics.RocCurveDisplay`

Evaluation of outlier detection estimators

Evaluation of outlier detection estimators

Visualizations with Display Objects

Visualizations with Display Objects

## Examples using `sklearn.metrics.RocCurveDisplay.from_estimator`

Release Highlights for scikit-learn 0.22

Release Highlights for scikit-learn 0.22

Feature transformations with ensembles of trees

Feature transformations with ensembles of trees

ROC Curve with Visualization API

ROC Curve with Visualization API

Detection error tradeoff (DET) curve

Detection error tradeoff (DET) curve

Receiver Operating Characteristic (ROC) with cross validation

Receiver Operating Characteristic (ROC) with cross validation

## Examples using `sklearn.metrics.RocCurveDisplay.from_predictions`

Evaluation of outlier detection estimators

Evaluation of outlier detection estimators

Multiclass Receiver Operating Characteristic (ROC)

Multiclass Receiver Operating Characteristic (ROC)