MCPcopy Create free account
hub / github.com/InternScience/InternAgent / compute_metrics

Function compute_metrics

tasks/AutoTPPR/code/experiment.py:836–892  ·  view source on GitHub ↗

Given results from a model run and the ground truth, compute metrics

(results)

Source from the content-addressed store, hash-verified

834
835
836def compute_metrics(results):
837 """
838 Given results from a model run and the ground truth, compute metrics
839
840 """
841 metrics = {}
842 metrics_pert = {}
843
844 metric2fct = {
845 'mse': mse,
846 'pearson': pearsonr
847 }
848
849 for m in metric2fct.keys():
850 metrics[m] = []
851 metrics[m + '_de'] = []
852
853 for pert in np.unique(results['pert_cat']):
854
855 metrics_pert[pert] = {}
856 p_idx = np.where(results['pert_cat'] == pert)[0]
857
858 for m, fct in metric2fct.items():
859 if m == 'pearson':
860 val = fct(results['pred'][p_idx].mean(0), results['truth'][p_idx].mean(0))[0]
861 if np.isnan(val):
862 val = 0
863 else:
864 val = fct(results['pred'][p_idx].mean(0), results['truth'][p_idx].mean(0))
865
866 metrics_pert[pert][m] = val
867 metrics[m].append(metrics_pert[pert][m])
868
869
870 if pert != 'ctrl':
871
872 for m, fct in metric2fct.items():
873 if m == 'pearson':
874 val = fct(results['pred_de'][p_idx].mean(0), results['truth_de'][p_idx].mean(0))[0]
875 if np.isnan(val):
876 val = 0
877 else:
878 val = fct(results['pred_de'][p_idx].mean(0), results['truth_de'][p_idx].mean(0))
879
880 metrics_pert[pert][m + '_de'] = val
881 metrics[m + '_de'].append(metrics_pert[pert][m + '_de'])
882
883 else:
884 for m, fct in metric2fct.items():
885 metrics_pert[pert][m + '_de'] = 0
886
887 for m in metric2fct.keys():
888
889 metrics[m] = np.mean(metrics[m])
890 metrics[m + '_de'] = np.mean(metrics[m + '_de'])
891
892 return metrics, metrics_pert
893

Callers 1

trainMethod · 0.70

Calls 2

meanMethod · 0.80
itemsMethod · 0.45

Tested by

no test coverage detected