Spaces:
Running on Zero
Running on Zero
| import numpy as np | |
| from metrics import bootstrap_confidence_intervals, calculate_metrics | |
| def test_calculate_metrics_constant_label_protection(): | |
| # Column 0 is constant 0, Column 1 is balanced | |
| y_true = np.array([[0, 0], [0, 1], [0, 0], [0, 1]], dtype=int) | |
| y_pred = np.array([[0.1, 0.2], [0.2, 0.8], [0.3, 0.1], [0.4, 0.9]], dtype=float) | |
| macro_auc, _micro_pr, per_class = calculate_metrics(y_true, y_pred, label_names=["ConstClass", "BalancedClass"]) | |
| assert per_class["ConstClass"] is None | |
| assert per_class["BalancedClass"] is not None | |
| assert macro_auc > 0.0 | |
| def test_bootstrap_confidence_intervals(): | |
| y_true = np.array([[1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0]], dtype=int) | |
| y_pred = np.array([[0.9, 0.1], [0.2, 0.8], [0.85, 0.15], [0.1, 0.9], [0.7, 0.8], [0.1, 0.1]], dtype=float) | |
| res = bootstrap_confidence_intervals(y_true, y_pred, n_bootstraps=50, ci=95.0) | |
| assert "macro_auroc_ci" in res | |
| assert "micro_auprc_ci" in res | |
| assert res["macro_auroc_ci"]["lower"] <= res["macro_auroc_ci"]["upper"] | |