nlsq.diagnostics.ModelHealthIssue

class nlsq.diagnostics.ModelHealthIssue(category, severity, code, message, affected_parameters, details, recommendation)[source]

Bases: object

A single detected model health issue.

This dataclass represents an actionable issue detected during diagnostic analysis, including its category, severity, and a recommendation for addressing it.

category

Category of the issue.

Type:

IssueCategory

severity

Severity level.

Type:

IssueSeverity

code

Unique issue code (e.g., “IDENT-001”, “GRAD-002”).

Type:

str

message

Human-readable description of the issue.

Type:

str

affected_parameters

Indices of affected parameters, if applicable.

Type:

tuple[int, …] | None

details

Additional issue-specific details.

Type:

dict[str, Any]

recommendation

Actionable recommendation for addressing the issue.

Type:

str

Examples

>>> issue = ModelHealthIssue(
...     category=IssueCategory.IDENTIFIABILITY,
...     severity=IssueSeverity.CRITICAL,
...     code="IDENT-001",
...     message="Parameters 0 and 1 are structurally unidentifiable",
...     affected_parameters=(0, 1),
...     details={"numerical_rank": 2, "n_params": 3},
...     recommendation="Consider reparameterizing the model",
... )
>>> issue.code
'IDENT-001'
>>> issue.severity
<IssueSeverity.CRITICAL: 3>
category: IssueCategory
severity: IssueSeverity
code: str
message: str
affected_parameters: tuple[int, ...] | None
details: dict[str, Any]
recommendation: str
__post_init__()[source]

Validate issue attributes after initialization.

__init__(category, severity, code, message, affected_parameters, details, recommendation)