CE Parameter Reference¶
Canonical definitions for the five user-facing parameters where naming confusion is most likely. Read this page before filing a bug about unexpected behaviour involving thresholds, confidence values, or significance levels.
Cross-references: terminology.md, probabilistic_regression.md, ADR-038: Call-time Configuration Taxonomy.
Disambiguation table — floats in (0, 1)¶
Three parameters are all floats in (0, 1) and are mathematically related, but they are used in completely different contexts. Confusing them is the most common source of subtle bugs.
Legacy / removed name |
Canonical name |
Role |
Context |
User-settable? |
|---|---|---|---|---|
|
|
Reject coverage target: minimum p-value to accept a prediction |
|
YES |
|
|
Guard conformity threshold; |
|
YES (experimental) |
|
|
Regression coverage level; derived from |
Regression methods |
YES (alternative to |
Key relationship: significance and confidence (reject) are mathematical
inverses of the same conformal threshold concept. significance = 0.1 is the same
conformity requirement as confidence = 0.9. The rename is complete: use
GuardedOptions.confidence for guarded explanations and reject_confidence for
reject-policy prediction paths. The legacy names were removed in v0.11.5 and now
raise ConfigurationError in the v0.11.6 fail-fast paths.
threshold¶
Definition: The regression output value used to define a binary event for probabilistic regression. The explainer produces calibrated probabilities for P(y ≤ threshold).
Type and valid range: float, int, or array-like (one value per instance for
instance-specific thresholds). None means “not applicable” — used only in
regression mode.
Applies to: explain_factual, explore_alternatives, predict_proba (in
regression mode). Ignored for classification tasks.
Behavior: When set, the CE regression path calls
IntervalRegressor.predict_probability(x, y_threshold=threshold). The parameter is
renamed to y_threshold at the internal IntervalRegressor boundary to match the
crepes API convention; this split is an implementation detail and does not affect
the public interface.
Disambiguation:
NOT
confidence_level:confidence_levelspecifies the width of the calibrated interval (e.g., a 90 % interval), not a target output value. They are mutually exclusive: passing both raisesConfigurationError(enforced byEXCLUSIVE_PARAM_GROUPSinapi/params.py).NOT
confidence:confidenceis the reject coverage target and belongs to the reject path, not the regression path.
low_high_percentiles¶
Definition: A (low, high) percentile tuple that sets the width of the
calibrated uncertainty interval for regression. For example, (5, 95) produces a
90 % calibrated interval.
Type and valid range: Tuple of two floats, each in [0, 100], with
low < high. Default: (5, 95).
Applies to: All regression explanation methods (explain_factual,
explore_alternatives). Ignored for classification.
Behavior: Determines the lower and upper bounds of the calibrated interval.
The derived metric confidence_level = (high - low) / 100 represents the nominal
coverage probability of the interval.
Disambiguation:
NOT
threshold:thresholdis a target output value;low_high_percentilesgoverns interval width.
confidence_level¶
Definition: The nominal coverage probability of the calibrated regression
interval, expressed as a fraction in (0, 1). Derived from low_high_percentiles
as (high - low) / 100. For example, low_high_percentiles=(5, 95) yields
confidence_level=0.90.
Type and valid range: float in (0, 1). Default: derived from
low_high_percentiles=(5, 95), so 0.90.
Applies to: Regression explanation methods. May be passed directly as a
caller-specified value instead of low_high_percentiles.
Behavior: When passed directly, CE reverses the formula to reconstruct
low_high_percentiles: low = (1 - confidence_level) / 2 * 100,
high = 100 - low. This makes it an alternative input to low_high_percentiles,
not a derived output.
User-settable: YES — confidence_level and threshold are mutually exclusive
alternatives for specifying the regression configuration. Passing both raises a
ConfigurationError (enforced by EXCLUSIVE_PARAM_GROUPS in api/params.py).
Disambiguation:
NOT
confidence(reject path):confidenceis the reject coverage target and applies to the reject orchestrator, not regression intervals.NOT
significance:significanceis the guarded conformity p-value threshold and does not govern interval width.NOT
threshold: mutually exclusive alternatives — use one or the other.
confidence¶
confidencewas removed in v0.11.5. Usereject_confidence; v0.11.6 raisesConfigurationErrorfor the legacy alias.
Definition: The reject coverage target — the minimum calibrated probability
required to accept a prediction. A prediction with conformal p-value below
1 - confidence is rejected.
Type and valid range: float in (0, 1). Default: 0.95.
Applies to: predict_reject, apply_policy, and the reject orchestrator.
Behavior: Higher values are stricter (fewer predictions accepted). A value of
0.95 means predictions must have at least a 0.95 conformal coverage to be
accepted. Internally the reject path computes epsilon = 1 - confidence as the
conformal significance level.
Disambiguation:
NOT
significance: they are mathematical inverses (significance = 1 − confidence), butsignificancebelongs to the guarded explanation path, whileconfidencebelongs to the reject path. The completed rename keeps both surfaces on the coverage convention while preserving the inverse relationship conceptually.NOT
confidence_level:confidence_levelis a regression interval width parameter;confidenceis a reject decision threshold.
significance¶
significancewas removed in v0.11.5. Useguarded_options=GuardedOptions(confidence=...); v0.11.6 raisesConfigurationErrorfor the legacy kwarg.
Definition: The conformity significance level for the in-distribution guard.
The guard accepts a calibration bin if its KNN-based conformal p-value is ≥
significance; bins below this threshold are considered out-of-distribution and
pruned from the explanation.
Type and valid range: float in (0, 1]. Default: 0.1.
Applies to: explain_factual(..., guarded_options=GuardedOptions(confidence=...)),
explore_alternatives(..., guarded_options=GuardedOptions(confidence=...)), and the
internal _guarded_explain module. This parameter remains part of the
[EXPERIMENTAL] guarded explanation API, but the legacy significance= kwarg and
guarded=True call form were removed in v0.11.5.
Behavior: A larger significance value is stricter (fewer bins
accepted). This is the reverse of how reject_confidence works in the reject path:
for legacy significance, raising the value makes the guard harder to pass; for
reject_confidence, raising the value makes the reject threshold harder to pass.
GuardedOptions.confidence resolves this counter-intuitive direction by expressing
both surfaces as coverage values where higher = more inclusive.
Disambiguation:
NOT
confidence(reject path): mathematical inverse (significance = 1 − confidence), different path.NOT
confidence_level: unrelated;confidence_levelgoverns regression interval width, not conformity testing.