Toggle Menu
Prev Up Next

scikit-learn 1.3.2
Other versions

Please cite us if you use the software.

# `sklearn.metrics`.PredictionErrorDisplay

class sklearn.metrics.PredictionErrorDisplay(*, y_true, y_pred)

  Visualization of the prediction error of a regression model.

  This tool can display “residuals vs predicted” or “actual vs predicted” using scatter plots to qualitatively assess the behavior of a regressor, preferably on held-out data points.

  See the details in the docstrings of `from_estimator` or `from_predictions` to create a visualizer. All parameters are stored as attributes.

  For general information regarding `scikit-learn` visualization tools, read more in the Visualization Guide. For details regarding interpreting these plots, refer to the Model Evaluation Guide.

  New in version 1.2.

  Parameters:
    y_true ndarray of shape (n_samples,)

      True values.

    y_pred ndarray of shape (n_samples,)

      Prediction values.

  Attributes:
    line_matplotlib Artist

      Optimal line representing `y_true == y_pred`. Therefore, it is a diagonal line for `kind="predictions"` and a horizontal line for `kind="residuals"`.

    errors_lines_matplotlib Artist or None

      Residual lines. If `with_errors=False`, then it is set to `None`.

    scatter_matplotlib Artist

      Scatter data points.

    ax_matplotlib Axes

      Axes with the different matplotlib axis.

    figure_matplotlib Figure

      Figure containing the scatter and lines.

  See also

  `PredictionErrorDisplay.from_estimator`

    Prediction error visualization given an estimator and some data.

  `PredictionErrorDisplay.from_predictions`

    Prediction error visualization given the true and predicted targets.

  Examples

      >>> import matplotlib.pyplot as plt
      >>> from sklearn.datasets import load_diabetes
      >>> from sklearn.linear_model import Ridge
      >>> from sklearn.metrics import PredictionErrorDisplay
      >>> X, y = load_diabetes(return_X_y=True)
      >>> ridge = Ridge().fit(X, y)
      >>> y_pred = ridge.predict(X)
      >>> display = PredictionErrorDisplay(y_true=y, y_pred=y_pred)
      >>> display.plot()
      <...>
      >>> plt.show()

  Methods

  `from_estimator`(estimator, X, y, *[, kind, ...]) | Plot the prediction error given a regressor and some data.
  `from_predictions`(y_true, y_pred, *[, kind, ...]) | Plot the prediction error given the true and predicted targets.
  `plot`([ax, kind, scatter_kwargs, line_kwargs]) | Plot visualization.

  classmethod from_estimator(estimator, X, y, *, kind='residual_vs_predicted', subsample=1000, random_state=None, ax=None, scatter_kwargs=None, line_kwargs=None)

    Plot the prediction error given a regressor and some data.

    For general information regarding `scikit-learn` visualization tools, read more in the Visualization Guide. For details regarding interpreting these plots, refer to the Model Evaluation Guide.

    New in version 1.2.

    Parameters:
      estimator estimator instance

        Fitted regressor or a fitted `Pipeline` in which the last estimator is a regressor.

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

        Input values.

      y array-like of shape (n_samples,)

        Target values.

      kind{“actual_vs_predicted”, “residual_vs_predicted”}, default=”residual_vs_predicted”

        The type of plot to draw:

        - “actual_vs_predicted” draws the the observed values (y-axis) vs. the predicted values (x-axis).

        - “residual_vs_predicted” draws the residuals, i.e difference between observed and predicted values, (y-axis) vs. the predicted values (x-axis).

      subsample float, int or None, default=1_000

        Sampling the samples to be shown on the scatter plot. If `float`, it should be between 0 and 1 and represents the proportion of the original dataset. If `int`, it represents the number of samples display on the scatter plot. If `None`, no subsampling will be applied. by default, a 1000 samples or less will be displayed.

      random_state int or RandomState, default=None

        Controls the randomness when `subsample` is not `None`. See Glossary for details.

      ax matplotlib axes, default=None

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

      scatter_kwargs dict, default=None

        Dictionary with keywords passed to the `matplotlib.pyplot.scatter` call.

      line_kwargs dict, default=None

        Dictionary with keyword passed to the `matplotlib.pyplot.plot` call to draw the optimal line.

    Returns:
      display `PredictionErrorDisplay`

        Object that stores the computed values.

    See also

    `PredictionErrorDisplay`

      Prediction error visualization for regression.

    `PredictionErrorDisplay.from_predictions`

      Prediction error visualization given the true and predicted targets.

    Examples

        >>> import matplotlib.pyplot as plt
        >>> from sklearn.datasets import load_diabetes
        >>> from sklearn.linear_model import Ridge
        >>> from sklearn.metrics import PredictionErrorDisplay
        >>> X, y = load_diabetes(return_X_y=True)
        >>> ridge = Ridge().fit(X, y)
        >>> disp = PredictionErrorDisplay.from_estimator(ridge, X, y)
        >>> plt.show()

  classmethod from_predictions(y_true, y_pred, *, kind='residual_vs_predicted', subsample=1000, random_state=None, ax=None, scatter_kwargs=None, line_kwargs=None)

    Plot the prediction error given the true and predicted targets.

    For general information regarding `scikit-learn` visualization tools, read more in the Visualization Guide. For details regarding interpreting these plots, refer to the Model Evaluation Guide.

    New in version 1.2.

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

        True target values.

      y_pred array-like of shape (n_samples,)

        Predicted target values.

      kind{“actual_vs_predicted”, “residual_vs_predicted”}, default=”residual_vs_predicted”

        The type of plot to draw:

        - “actual_vs_predicted” draws the the observed values (y-axis) vs. the predicted values (x-axis).

        - “residual_vs_predicted” draws the residuals, i.e difference between observed and predicted values, (y-axis) vs. the predicted values (x-axis).

      subsample float, int or None, default=1_000

        Sampling the samples to be shown on the scatter plot. If `float`, it should be between 0 and 1 and represents the proportion of the original dataset. If `int`, it represents the number of samples display on the scatter plot. If `None`, no subsampling will be applied. by default, a 1000 samples or less will be displayed.

      random_state int or RandomState, default=None

        Controls the randomness when `subsample` is not `None`. See Glossary for details.

      ax matplotlib axes, default=None

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

      scatter_kwargs dict, default=None

        Dictionary with keywords passed to the `matplotlib.pyplot.scatter` call.

      line_kwargs dict, default=None

        Dictionary with keyword passed to the `matplotlib.pyplot.plot` call to draw the optimal line.

    Returns:
      display `PredictionErrorDisplay`

        Object that stores the computed values.

    See also

    `PredictionErrorDisplay`

      Prediction error visualization for regression.

    `PredictionErrorDisplay.from_estimator`

      Prediction error visualization given an estimator and some data.

    Examples

        >>> import matplotlib.pyplot as plt
        >>> from sklearn.datasets import load_diabetes
        >>> from sklearn.linear_model import Ridge
        >>> from sklearn.metrics import PredictionErrorDisplay
        >>> X, y = load_diabetes(return_X_y=True)
        >>> ridge = Ridge().fit(X, y)
        >>> y_pred = ridge.predict(X)
        >>> disp = PredictionErrorDisplay.from_predictions(y_true=y, y_pred=y_pred)
        >>> plt.show()

  plot(ax=None, *, kind='residual_vs_predicted', scatter_kwargs=None, line_kwargs=None)

    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.

      kind{“actual_vs_predicted”, “residual_vs_predicted”}, default=”residual_vs_predicted”

        The type of plot to draw:

        - “actual_vs_predicted” draws the the observed values (y-axis) vs. the predicted values (x-axis).

        - “residual_vs_predicted” draws the residuals, i.e difference between observed and predicted values, (y-axis) vs. the predicted values (x-axis).

      scatter_kwargs dict, default=None

        Dictionary with keywords passed to the `matplotlib.pyplot.scatter` call.

      line_kwargs dict, default=None

        Dictionary with keyword passed to the `matplotlib.pyplot.plot` call to draw the optimal line.

    Returns:
      display `PredictionErrorDisplay`

        Object that stores computed values.

## Examples using `sklearn.metrics.PredictionErrorDisplay`

Plotting Cross-Validated Predictions

Plotting Cross-Validated Predictions

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

Release Highlights for scikit-learn 1.2

Release Highlights for scikit-learn 1.2

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

Combine predictors using stacking

Combine predictors using stacking

Time-related feature engineering

Time-related feature engineering

Common pitfalls in the interpretation of coefficients of linear models

Common pitfalls in the interpretation of coefficients of linear models

Plotting Cross-Validated Predictions

Plotting Cross-Validated Predictions

Effect of transforming the targets in regression model

Effect of transforming the targets in regression model