validate

Deployment gate. Check a model against performance rules and optionally compare to a baseline model. Returns pass/fail with reasons.

Signature

ml.validate(model, *, test, rules=None, baseline=None, tolerance=0.0)
ml_validate(model, test, rules = NULL, baseline = NULL, tolerance = 0.0)

Parameters

ParameterTypeDefaultDescription
modelModelModel to validate
testDataFrameTest data
rulesdict | NoneNonePerformance thresholds, e.g. {"accuracy": ">0.85"}
baselineModel | NoneNonePrevious model to check for regressions
tolerancefloat0.0Allowed degradation from baseline

Returns

ValidateResult with:

  • .passedTrue if all rules pass and no regressions
  • .failures — list of failed rules
  • .improvements / .degradations — vs baseline

Examples

With rules

result = ml.validate(
    model,
    test=s.test,
    rules={"accuracy": ">0.80", "roc_auc": ">=0.85"},
)
print(result.passed)   # True or False
print(result.failures) # [] or ["accuracy: 0.78 < 0.80"]
result <- ml_validate(
  model, s$test,
  rules = list(accuracy = ">0.80", roc_auc = ">=0.85")
)
result$passed
result$failures

Against a baseline

result = ml.validate(
    new_model,
    test=s.test,
    baseline=old_model,
)
result <- ml_validate(new_model, s$test, baseline = old_model)