Evaluation¶
DeepECG-Kit provides metrics, visualization, and a high-level evaluator class for model assessment.
Quick Evaluation via ECGTrainer¶
The simplest way to evaluate after training:
results = trainer.test(data_module)
print(f"Test loss: {results['test_loss']:.4f}")
print(f"Test accuracy: {results['test_acc']:.4f}")
y_pred, y_true, y_prob = trainer.get_test_results()
ECGEvaluator¶
For more comprehensive evaluation:
from deepecgkit.evaluation import ECGEvaluator
evaluator = ECGEvaluator(metrics=["accuracy", "precision", "recall", "f1", "auc"])
results = evaluator.evaluate(model, test_loader)
ECGEvaluator supports passing a model + DataLoader, or pre-computed predictions + targets as numpy arrays.
Metrics¶
Classification Metrics¶
from deepecgkit.evaluation import calculate_classification_metrics
metrics = calculate_classification_metrics(y_true, y_prob)
Returns a dictionary with: accuracy, precision, recall, f1, auc, mcc.
Regression Metrics¶
from deepecgkit.evaluation import calculate_regression_metrics
metrics = calculate_regression_metrics(y_true, y_pred)
Returns: mse, mae, r2.
Confusion Matrix Analysis¶
from deepecgkit.evaluation import confusion_matrix_analysis
cm_results = confusion_matrix_analysis(y_true, y_pred)
Returns per-class precision, recall, and F1 scores.
Visualization¶
All plot functions accept a save_path or save_dir parameter to save figures to disk.
Confusion Matrix¶
from deepecgkit.evaluation import plot_confusion_matrix
plot_confusion_matrix(y_true, y_pred, title="Results", save_path="cm.png")
ROC Curve¶
from deepecgkit.evaluation import plot_roc_curve
plot_roc_curve(y_true, y_prob, save_path="roc.png")
Training Curves¶
Plot loss and accuracy from CSV logs:
from deepecgkit.evaluation import plot_training_curves
plot_training_curves("logs/metrics.csv", save_dir="plots/")
Calibration Curve¶
from deepecgkit.evaluation import plot_calibration_curve
plot_calibration_curve(y_true, y_prob, save_dir="plots/")
ECG Signal Visualization¶
from deepecgkit.evaluation import plot_ecg_signals
plot_ecg_signals(signals, labels=labels, save_path="ecg.png")
Prediction Visualization¶
from deepecgkit.evaluation import plot_predictions
plot_predictions(y_true, y_pred, save_path="predictions.png")
CLI Evaluation¶
See the CLI reference for all options.