Model Complexity

The model_complexity module scores a GP model’s structural complexity using three complementary strategies: "default" (composite inverse-lengthscale and noise-ratio heuristic), "geometric" (effective rank via kernel eigenvalues), and "bayesian" (gradient-based sensitivity). A high score signals an over-parameterised kernel; a low score may indicate under-fitting.

When to use: after training, to audit kernel complexity before deployment or to compare model variants (simpler vs. composite kernels).

import gpclarity

result = gpclarity.compute_complexity_score(model, X, strategy="geometric")
print(result["score"], result["category"], result["recommendations"])

# Full diagnostics dataclass
metrics = gpclarity.compute_complexity_score(
    model, X, return_diagnostics=True
)
print(metrics.roughness_score, metrics.noise_ratio)

Enums & Configuration

Data Classes

Classes

Functions