Plotting & Visualization

Overview

PyMARS includes comprehensive visualization tools for understanding model behavior, diagnostics, and interpreting results.

Basic Imports

from pymars.plots import (
    plot_basis_functions,
    plot_predictions,
    plot_residuals,
    plot_feature_importance,
    plot_partial_effects,
    plot_anova_decomposition
)

Feature Importance

Visualize which variables matter most:

from pymars.plots import plot_feature_importance

plot_feature_importance(model, figsize=(10, 5))
plt.title('Feature Importances')
plt.show()

Predictions vs Actual

Compare predictions with true values:

from pymars.plots import plot_predictions

plot_predictions(model, X, y, figsize=(12, 5))
plt.suptitle('Model Predictions')
plt.show()

Residual Diagnostics

Assess model assumptions:

from pymars.plots import plot_residuals

plot_residuals(model, X, y, figsize=(15, 10))
plt.suptitle('Residual Diagnostics')
plt.show()

Partial Effects

Univariate slice plots:

from pymars.plots import plot_partial_effects

plot_partial_effects(model, X, features=[0, 1, 2], figsize=(12, 4))
plt.suptitle('Partial Effects Plots')
plt.show()

ANOVA Decomposition

Visualize interaction effects:

from pymars.plots import plot_anova_decomposition

plot_anova_decomposition(model, figsize=(10, 6))
plt.show()

Full API Reference

Visualization tools for MARS models

Functions for plotting basis functions, model predictions, and diagnostics.

pymars.plots.plot_univariate_effects(model, X: ndarray, feature_idx: int, n_points: int = 100, ax: Axes | None = None) Axes[source]

Plot the effect of a single feature on predictions

Parameters:
  • model (MARS) – Fitted MARS model

  • X (array) – Reference data for other features

  • feature_idx (int) – Index of feature to plot

  • n_points (int) – Number of points to evaluate

  • ax (matplotlib axes, optional) – Axes to plot on

Returns:

ax

Return type:

matplotlib axes

pymars.plots.plot_bivariate_effect(model, X: ndarray, feature1: int, feature2: int, n_points: int = 50, plot_type: str = 'contour', ax: Axes | None = None) Axes[source]

Plot interaction effect between two features

Parameters:
  • model (MARS) – Fitted MARS model

  • X (array) – Reference data

  • feature1 (int) – Indices of features to plot

  • feature2 (int) – Indices of features to plot

  • n_points (int) – Grid resolution

  • plot_type (str) – ‘contour’ or ‘surface’

  • ax (matplotlib axes, optional)

Returns:

ax

Return type:

matplotlib axes

pymars.plots.plot_basis_functions(model, X: ndarray, max_plot: int = 6, figsize: Tuple[int, int] = (12, 8))[source]

Plot individual basis functions

Parameters:
  • model (MARS) – Fitted MARS model

  • X (array) – Data to evaluate on

  • max_plot (int) – Maximum number of basis functions to plot

  • figsize (tuple) – Figure size

pymars.plots.plot_feature_importances(model, feature_names: List[str] | None = None, figsize: Tuple[int, int] = (8, 5)) Figure[source]

Bar plot of feature importances

Parameters:
  • model (MARS) – Fitted model

  • feature_names (list of str, optional) – Names for features

  • figsize (tuple) – Figure size

Returns:

fig

Return type:

matplotlib figure

pymars.plots.plot_predictions(model, X: ndarray, y: ndarray, figsize: Tuple[int, int] = (8, 6)) Figure[source]

Scatter plot of predictions vs actual values

Parameters:
  • model (MARS) – Fitted model

  • X (arrays) – Data to predict on

  • y (arrays) – Data to predict on

  • figsize (tuple) – Figure size

Returns:

fig

Return type:

matplotlib figure

pymars.plots.plot_anova_summary(model, figsize: Tuple[int, int] = (10, 6)) Figure[source]

Summary plot of ANOVA decomposition

Parameters:
  • model (MARS) – Fitted model

  • figsize (tuple) – Figure size

Returns:

fig

Return type:

matplotlib figure