def METHOD_NAME(self, info: Dict[str, object], **kwargs) -> Dict[str, object]:
    log.info('Preparing to compute feature importance values with SHAP')
    ns = SimpleNamespace(**kwargs)
    output_dtype = ns.dtype_dict[ns.target]
    train_data: EncodedDs = ns.train_data
    if output_dtype in (dtype.integer, dtype.float, dtype.quantity):
        pass
    elif output_dtype in (dtype.binary, dtype.categorical, dtype.tags):
        self.label_encoder.fit(train_data.data_frame[ns.target].values)
    else:
        log.warning(f'ShapleyValues analyzers not supported for type: {output_dtype}')
        return info
    self.target = ns.target
    self.columns = list(set(ns.dtype_dict.keys()) - {self.target})
    input_df = train_data.data_frame[self.columns]
    def model(x: np.ndarray) -> np.ndarray:
        assert(isinstance(x, np.ndarray))
        df = pd.DataFrame(data=x, columns=self.columns)
        ds = EncodedDs(encoders=train_data.encoders, data_frame=df, target=train_data.target)
        decoded_predictions = ns.predictor(ds=ds, args=PredictionArguments())
        if output_dtype in (dtype.integer, dtype.float, dtype.quantity):
            encoded_predictions = decoded_predictions['prediction'].values
        elif output_dtype in (dtype.binary, dtype.categorical, dtype.tags):
            encoded_predictions = self.label_encoder.transform(decoded_predictions['prediction'].values)
        return encoded_predictions
    info['shap_explainer'] = shap.KernelExplainer(model=model, data=input_df)
    return info