pdstools.explanations.Plots

Classes

Module Contents

class Plots(explanations: pdstools.explanations.Explanations.Explanations)

Bases: pdstools.utils.namespaces.LazyNamespace

Parameters:

explanations (pdstools.explanations.Explanations.Explanations)

dependencies = ['numpy', 'plotly']
dependency_group = 'explanations'
X_AXIS_TITLE_DEFAULT = 'Contribution'
Y_AXIS_TITLE_DEFAULT = 'Predictor'
explanations
aggregate
contributions(top_n: int = 20, top_k: int = 20, *, return_df: bool = False, sort_by: pdstools.explanations.ExplanationsUtils.SortBy = 'contribution_abs', display_by: pdstools.explanations.ExplanationsUtils.DisplayBy = 'contribution', descending: bool = True, missing: bool = True, remaining: bool = True, include_numeric_single_bin: bool = False)

Plots contributions for the overall model or a selected context.

Args:
top_n (int):

Number of top predictors to display.

top_k (int):

Number of top unique values for each categorical predictor to display.

return_df (bool, keyword-only):

If True, skip plotting and return the underlying dataframes instead. When a context is selected, returns (predictor_df, predictor_value_df); otherwise returns the same pair computed against the overall model.

sort_by (str, keyword-only):

Column to rank/select top predictors. One of contribution, contribution_abs, contribution_weighted, contribution_weighted_abs. Default: "contribution_abs".

display_by (str, keyword-only):

Column to use for the chart axis values. Default: "contribution".

descending (bool, keyword-only):

Sort most- or least-impactful first. Default: True.

missing (bool, keyword-only):

Include missing-value bins. Default: True.

remaining (bool, keyword-only):

Include an aggregated “remaining” row. Default: True.

include_numeric_single_bin (bool, keyword-only):

Include numeric predictors that have only a single bin. Default: False.

Returns:
tuple[go.Figure, list[go.Figure]]:
  • left: context header if context is selected, otherwise None

  • right: overall contributions plot and a list of predictor contribution plots.

Parameters:
plot_contributions_for_overall(top_n: int = ..., top_k: int = ..., *, return_df: Literal[False] = ..., sort_by: pdstools.explanations.ExplanationsUtils.SortBy = ..., display_by: pdstools.explanations.ExplanationsUtils.DisplayBy = ..., descending: bool = ..., missing: bool = ..., remaining: bool = ..., include_numeric_single_bin: bool = ...) tuple[plotly.graph_objects.Figure, list[plotly.graph_objects.Figure]]
plot_contributions_for_overall(top_n: int = ..., top_k: int = ..., *, return_df: Literal[True], sort_by: pdstools.explanations.ExplanationsUtils.SortBy = ..., display_by: pdstools.explanations.ExplanationsUtils.DisplayBy = ..., descending: bool = ..., missing: bool = ..., remaining: bool = ..., include_numeric_single_bin: bool = ...) tuple[polars.DataFrame, polars.DataFrame]
plot_contributions_by_context(context: dict[str, str], top_n: int = ..., top_k: int = ..., *, return_df: Literal[False] = ..., sort_by: pdstools.explanations.ExplanationsUtils.SortBy = ..., display_by: pdstools.explanations.ExplanationsUtils.DisplayBy = ..., descending: bool = ..., missing: bool = ..., remaining: bool = ..., include_numeric_single_bin: bool = ...) tuple[plotly.graph_objects.Figure, plotly.graph_objects.Figure, list[plotly.graph_objects.Figure]]
plot_contributions_by_context(context: dict[str, str], top_n: int = ..., top_k: int = ..., *, return_df: Literal[True], sort_by: pdstools.explanations.ExplanationsUtils.SortBy = ..., display_by: pdstools.explanations.ExplanationsUtils.DisplayBy = ..., descending: bool = ..., missing: bool = ..., remaining: bool = ..., include_numeric_single_bin: bool = ...) tuple[polars.DataFrame, polars.DataFrame]
static _build_hover_customdata(df: polars.DataFrame, x_col: str)

Build customdata array and hovertemplate for contribution plots.

Expects df to contain a frequency_pct column.

Returns (customdata, hovertemplate) with columns: predictor_name, predictor_type, contribution (x_col value), frequency_pct.

Parameters:
  • df (polars.DataFrame)

  • x_col (str)

_plot_overall_contributions(df: polars.DataFrame, x_col: str, y_col: str, x_title: str = X_AXIS_TITLE_DEFAULT, y_title: str = Y_AXIS_TITLE_DEFAULT, context: pdstools.explanations.ExplanationsUtils.ContextInfo | None = None) plotly.graph_objects.Figure
Parameters:
Return type:

plotly.graph_objects.Figure

_plot_predictor_contributions(df: polars.DataFrame, x_col: str, y_col: str, x_title: str = X_AXIS_TITLE_DEFAULT, y_title: str = Y_AXIS_TITLE_DEFAULT) list[plotly.graph_objects.Figure]
Parameters:
  • df (polars.DataFrame)

  • x_col (str)

  • y_col (str)

  • x_title (str)

  • y_title (str)

Return type:

list[plotly.graph_objects.Figure]

static _plot_context_table(context_info: pdstools.explanations.ExplanationsUtils.ContextInfo) plotly.graph_objects.Figure
Parameters:

context_info (pdstools.explanations.ExplanationsUtils.ContextInfo)

Return type:

plotly.graph_objects.Figure