Source code for monte_carlo_analysis.strategies.ClassWiseStrategy

"""
**Author** : Robin Camarasa

**Institution** : Erasmus Medical Center

**Position** : PhD student

**Contact** : r.camarasa@erasmusmc.nl

**Date** : 2020-10-29

**Project** : monte_carlo_analysis

**Implement ClassWiseStrategy class**

"""
import numpy as np
from itertools import product
from monte_carlo_analysis.strategies import Strategy
from numba import jit


[docs]class ClassWiseStrategy(Strategy):
[docs] @staticmethod @jit def transformation( uncertainty_metric_transformation: callable, ensemble_output: np.array, counter: list ) -> np.array: # Get the dim size of the output uncertainty map uncertainty_map_shape = ensemble_output.shape[1:] # Initialize uncertainty metric uncertainty_map = np.zeros(uncertainty_map_shape) # Loop over the indexes of the output uncertainty metric for i in counter: for j in range(ensemble_output.shape[1]): uncertainty_map[(j,) + i] += uncertainty_metric_transformation( ensemble_output[(slice(None), j,) + i] ) return uncertainty_map