Governance, pruning, and model cards

HUGIML is designed for audit-heavy workflows where model reviewers need to inspect rules, trace feature lineage, remove unsafe patterns, and package validation artifacts.

Governance Studio evidence

The Governance Studio review surface includes Workbench promotion, adaptive-binning configuration evidence, augmented-pair traceability, interaction-relaxed mining, survivor-led patterns, feature-family composition, pattern support coverage, cross-validation monitoring, validation score labeling, and export-ready governance summaries. These views complement the programmatic model-card and audit-artifact APIs below.

Binary feature evidence

Two-value numeric columns are treated as categorical indicators during feature preparation. This keeps binary flags visible as discrete model evidence in pattern inventories, case review, and governance summaries.

Model cards

from hugiml.governance import generate_model_card

card = generate_model_card(
    clf,
    model_id="credit-scorer-v1.0.0",
    intended_use="Credit risk assessment for SME lending.",
    training_data_description="German Credit dataset, 1000 samples",
)

print(card.to_markdown())
card.save("model_card.json")
card.save("model_card.md", fmt="markdown")

A starter template is included at docs/model_card_template.md and should be copied into validation packets or repository governance folders as needed.

Model-card-ready HUGIML explanations

Pattern pruning

Analysts may need to remove patterns that reference protected attributes, have excessive drift, encode operationally invalid logic, or fail model-risk review. PatternEditor provides a controlled remove/refit/calibrate/finalize workflow with a JSON audit trail.

from hugiml.pruning import PatternEditor

editor = PatternEditor(clf, operator_name="risk-team")
print(editor.list_patterns().head(10))

editor.remove([3, 7], reason="references protected attribute")
editor.remove_by_keyword("postcode", reason="high PSI during monitoring")
editor.remove_low_support(min_support=0.01, reason="low-support noise")

editor.refit(X_train, y_train)
editor.calibrate(X_calibration, y_calibration, method="isotonic")

governed_clf = editor.finalize()
editor.save_audit_report("pattern_pruning_audit.json")

Audit artifacts

from hugiml.governance import GovernanceMetadata, AuditArtifact

metadata = GovernanceMetadata(
    model_id="credit-scorer-v1",
    owner="model-risk-team",
    purpose="Credit application risk ranking",
)

audit = AuditArtifact.from_model(clf, metadata=metadata)
audit.save("training_audit.json")

Calibration

from hugiml.calibration import evaluate_calibration, reliability_diagram_data

result = evaluate_calibration(y_test, proba[:, 1])
print(result.summary())

diagram = reliability_diagram_data(y_test, proba[:, 1], n_bins=10)