create_precision_recall_curve()

Creates a Precision-Recall curve.

Usage

Source

create_precision_recall_curve(
    probs,
    reals,
    by=0.01,
    stratified_by=["probability_threshold"],
    size=600,
    color_values=["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#07004D", "#E6AB02", "#FE5F55", "#54494B", "#006E90", "#BC96E6", "#52050A", "#1F271B", "#BE7C4D", "#63768D", "#08A045", "#320A28", "#82FF9E", "#2176FF", "#D1603D", "#585123"]
)

This function generates a Precision-Recall curve, which is a common alternative to the ROC curve, particularly for imbalanced datasets. It plots precision (Positive Predictive Value) against recall (True Positive Rate) for a binary classifier at different probability thresholds.

Parameters

probs: Dict[str, np.ndarray]

A dictionary mapping model or dataset names to 1-D numpy arrays of predicted probabilities.

reals: Union[np.ndarray, Dict[str, np.ndarray]]

The true binary labels (0 or 1). Can be a single array or a dictionary mapping names to label arrays.

by: float = 0.01

The step size for the probability thresholds. Defaults to 0.01.

stratified_by: Sequence[str] = ["probability_threshold"]

Variables for stratification. Defaults to ["probability_threshold"].

size: int = 600

The width and height of the plot in pixels. Defaults to 600.

color_values: List[str] = [
    "#1b9e77",
    "#d95f02",
    "#7570b3",
    "#e7298a",
    "#07004D",
    "#E6AB02",
    "#FE5F55",
    "#54494B",
    "#006E90",
    "#BC96E6",
    "#52050A",
    "#1F271B",
    "#BE7C4D",
    "#63768D",
    "#08A045",
    "#320A28",
    "#82FF9E",
    "#2176FF",
    "#D1603D",
    "#585123",
]
A list of hex color strings for the plot lines.

Returns

Figure
A Plotly Figure object representing the Precision-Recall curve.