skpro.utils.plotting.plot_crossplot_std#
- skpro.utils.plotting.plot_crossplot_std(y_true, y_pred, ax=None)[source]#
Probabilistic cross-plot for regression, error vs predictive standard deviation.
Plots:
x-axis: absolute error samples \(|y_i - \widehat{y}_i.\mu|\)
y-axis: predictive standard deviation \(\widehat{y}_i.\sigma\), of the prediction \(\widehat{y}_i\) corresponding to \(y_i\)
- Parameters:
- y_truearray-like, [n_samples, n_targets]
Ground truth values
- y_predskpro distribution, or predict_var return, [n_samples, n_targets]
Predicted values
- axmatplotlib axes, optional
Axes to plot on, if None, a new figure is created and returned
- Returns:
- axmatplotlib axes
Axes containing the plot If ax was None, a new figure is created and returned If ax was not None, the same ax is returned with plot added
Examples
>>> from skpro.utils.plotting import plot_crossplot_std >>> from skpro.regression.residual import ResidualDouble >>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.linear_model import LinearRegression >>> from sklearn.datasets import load_diabetes >>> >>> X, y = load_diabetes(return_X_y=True, as_frame=True) >>> reg_mean = LinearRegression() >>> reg_resid = RandomForestRegressor() >>> reg_proba = ResidualDouble(reg_mean, reg_resid) >>> >>> reg_proba.fit(X, y) ResidualDouble(...) >>> y_pred = reg_proba.predict_proba(X) >>> plot_crossplot_std(y, y_pred)