Source code for immuneML.ml_metrics.ClassificationMetric
fromenumimportEnum
[docs]classClassificationMetric(Enum):ACCURACY="accuracy_score"BALANCED_ACCURACY="balanced_accuracy_score"CONFUSION_MATRIX="confusion_matrix"F1_MICRO="f1_score_micro"F1_MACRO="f1_score_macro"F1_WEIGHTED="f1_score_weighted"PRECISION="precision_score"PRECISION_MICRO="precision_score_micro"PRECISION_MACRO="precision_score_macro"PRECISION_WEIGHTED="precision_score_weighted"RECALL_MICRO="recall_score_micro"RECALL_MACRO="recall_score_macro"RECALL_WEIGHTED="recall_score_weighted"AVERAGE_PRECISION="average_precision_score"BRIER_SCORE="brier_score_loss"RECALL="recall_score"AUC="roc_auc_score"AUC_OVO="roc_auc_score_ovo"AUC_OVR="roc_auc_score_ovr"LOG_LOSS="log_loss"SENSITIVITY="recall_score"# Sensitivity is equivalent to recallSPECIFICITY="specificity_score"# Specificity needs to be implemented separately
[docs]@staticmethoddefget_binary_only_metrics():"""Metrics that required binarized labels"""return{ClassificationMetric.AUC,ClassificationMetric.AVERAGE_PRECISION,ClassificationMetric.BRIER_SCORE,ClassificationMetric.AUC_OVR,ClassificationMetric.AUC_OVO}
[docs]@staticmethoddefget_metric(metric_name:str):try:returnClassificationMetric[metric_name.upper()]exceptKeyErrorase:raiseKeyError(f"'{metric_name}' is not a valid performance metric. Valid metrics are: {', '.join([m.nameforminClassificationMetric])}").with_traceback(e.__traceback__)