code: def kernel_explainer_with_ct(self):
      try:
          # classification case
          pred_fcn = lambda x: self.model.predict_proba(
              self.ct.transform(x)
          )
          explainer = shap.KernelExplainer(
              pred_fcn,
              shap.sample(self.input_data, 100),
              link="logit",
              feature_names=self.input_data.columns,
              seed=0,
          )
          pred = lambda x: self.model.predict(self.ct.transform(x))
          return explainer, pred, pred_fcn
  
      except:
          pred_fcn = lambda x: self.model.predict(self.ct.transform(x))
          explainer = shap.KernelExplainer(
              pred_fcn,
              shap.sample(self.input_data, 100),
              link="identity",
              feature_names=self.input_data.columns,
              seed=0,
          )
          return explainer, pred_fcn
  
file_path: explainx/lib/frameworks/shapley_values.py
imports: from operator import is_
  import shap
  from explainx.lib.utils import is_classification
  import pandas
  import numpy
label_desc: Use image node_id 4 for calling the ShapleyValues obj's underlying member method code with example usage: obj.kernel_explainer_with_ct() and returns: explainer,  pred,  pred_fcn, explainer,  pred_fcn