scitex_ml.classification.reporters.reporter_utils.data_models

Data models for classification reporting using dataclasses.

Provides type-safe, validated data structures for metrics and reports.

Classes

ExperimentConfig(name, output_dir[, ...])

Configuration for an experiment.

ExperimentResults(config[, fold_results, ...])

Complete results for an experiment.

FoldResults(fold_id[, balanced_accuracy, ...])

Results for a single fold.

MetricResult(metric_name, value[, fold, ...])

Single metric result with metadata.

class scitex_ml.classification.reporters.reporter_utils.data_models.MetricResult(metric_name, value, fold=None, timestamp=<factory>, metadata=<factory>)[source]

Single metric result with metadata.

metric_name: str
value: float | ndarray | DataFrame
fold: int | None = None
timestamp: datetime
metadata: Dict[str, Any]
to_dict()[source]

Convert to dictionary for JSON serialization.

Return type:

Dict[str, Any]

to_json()[source]

Convert to JSON string.

Return type:

str

save(path)[source]

Save metric to file based on type.

Return type:

None

__init__(metric_name, value, fold=None, timestamp=<factory>, metadata=<factory>)
class scitex_ml.classification.reporters.reporter_utils.data_models.FoldResults(fold_id, balanced_accuracy=None, mcc=None, confusion_matrix=None, classification_report=None, roc_auc=None, pr_auc=None, custom_metrics=<factory>)[source]

Results for a single fold.

fold_id: int
balanced_accuracy: MetricResult | None = None
mcc: MetricResult | None = None
confusion_matrix: MetricResult | None = None
classification_report: MetricResult | None = None
roc_auc: MetricResult | None = None
pr_auc: MetricResult | None = None
custom_metrics: Dict[str, MetricResult]
is_complete(required_metrics)[source]

Check if all required metrics are present.

Return type:

bool

get_available_metrics()[source]

Get list of available metrics.

Return type:

List[str]

to_dict()[source]

Convert to dictionary.

Return type:

Dict[str, Any]

__init__(fold_id, balanced_accuracy=None, mcc=None, confusion_matrix=None, classification_report=None, roc_auc=None, pr_auc=None, custom_metrics=<factory>)
class scitex_ml.classification.reporters.reporter_utils.data_models.ExperimentConfig(name, output_dir, n_folds=5, required_metrics=<factory>, classifier='unknown', dataset='unknown', features=<factory>, parameters=<factory>, random_seed=42, timestamp=<factory>)[source]

Configuration for an experiment.

name: str
output_dir: Path
n_folds: int = 5
required_metrics: List[str]
classifier: str = 'unknown'
dataset: str = 'unknown'
features: List[str]
parameters: Dict[str, Any]
random_seed: int = 42
timestamp: datetime
to_dict()[source]

Convert to dictionary.

Return type:

Dict[str, Any]

save()[source]

Save configuration to output directory.

Return type:

None

__init__(name, output_dir, n_folds=5, required_metrics=<factory>, classifier='unknown', dataset='unknown', features=<factory>, parameters=<factory>, random_seed=42, timestamp=<factory>)
class scitex_ml.classification.reporters.reporter_utils.data_models.ExperimentResults(config, fold_results=<factory>, summary_statistics=None)[source]

Complete results for an experiment.

config: ExperimentConfig
fold_results: List[FoldResults]
summary_statistics: Dict[str, Any] | None = None
add_fold(fold_result)[source]

Add results for a fold.

Return type:

None

validate_completeness()[source]

Validate that all required metrics are present for all folds.

Return type:

Dict[str, Any]

calculate_summary_statistics()[source]

Calculate summary statistics across folds.

Return type:

Dict[str, Any]

to_dataframe()[source]

Convert results to a DataFrame for easy analysis.

Return type:

DataFrame

save()[source]

Save all results to the output directory.

Return type:

None

__init__(config, fold_results=<factory>, summary_statistics=None)