Plot model predictions vs observed outcomes
# S3 method for predicted_df plot( x, caption = TRUE, title = NULL, font_size = 11, outcomes = NULL, fixed_aspect = attr(x, "model_info")$type == "Regression", print = TRUE, ... ) plot_regression_predictions(x, point_size = 1, point_alpha = 1, target) plot_classification_predictions( x, fill_colors = c("firebrick", "steelblue"), fill_alpha = 0.7, curve_flex = 1, add_labels = TRUE, target ) plot_multiclass_predictions( x, conf_colors = c("black", "steelblue"), text_color = "yellow", text_size = 3, text_angle = 60, diag_color = "red", target )
data frame as returned `predict.model_list`
Put model performance in plot caption? TRUE (default) prints all available metrics, FALSE prints nothing. Can also provide metric name (e.g. "RMSE"), in which case the caption will include only that metric.
Character: Plot title, default NULL produces no title.
Number: Relative size of all font in plot, default = 11
Vector of outcomes if not present in x
Logical: If TRUE (default for regression only), units of the x- and y-axis will have the same spacing.
Logical, if TRUE (default) the plot is printed on the current graphics device. The plot is always (silently) returned.
Parameters specific to plot_regression_predictions or plot_classification_predictions; listed below. These must be named.
Number: Point size, relative to 1
Number in [0, 1] giving point opacity
Not meant to be set by user. outcome column name
Length-2 character vector: colors to fill density curves.
Default is c("firebrick", "steelblue"). If named, names must match
Number in [0, 1] giving opacity of fill colors.
Numeric. Kernal adjustment for density curves. Default is 1. Less than 1 makes curves more flexible, analogous to smaller bins in a histogram; greater than 1 makes curves more rigid.
If TRUE (default) and a predicted_group column was added to
predictions by specifying
Length-2 character vector: colors to fill density curves. Default is c("black", "steelblue").
Character: color to write percent correct. Default is "yellow".
Numeric or logical: size of percent correct text. Defaults to 3, a readable size. Greater than 20 classes might need smaller text. Text can be turned off by setting to FALSE.
Numeric or logical: angle to rotate x axis text. Defaults to 60 degrees. Setting to FALSE will turn text horizontal.
Character: color to highlight main diagonal. These are correct predictions. Default is "red".
A ggplot object
Note that a ggplot object is returned, so you can do additional customization of the plot. See the third example.
# Some regression examples models <- machine_learn(pima_diabetes[1:50, ], patient_id, outcome = plasma_glucose, models = "rf", tune = FALSE)#>#>#> #>#> #>#>#>#> #>#>plot(predictions, caption = "Rsquared", title = "This model's predictions regress to the mean", point_size = 3, point_alpha = .7, font_size = 9)p <- plot(predictions, print = FALSE) p + theme_classic()# A classification example with risk groups class_models <- machine_learn(pima_diabetes, patient_id, outcome = diabetes, models = "xgb", tune = FALSE)#>#>#> #>#> #>#>#>#> #>#>