code: def kshap_explainer(lr_classifier, adult_data):
      predictor = predict_fcn(
          predict_type="proba",
          clf=lr_classifier,
          preproc=adult_data["preprocessor"],
      )
      kshap = KernelShap(
          predictor=predictor,
          link="logit",
          feature_names=adult_data["metadata"]["feature_names"],
      )
      kshap.fit(adult_data["X_train"][:100])
      return kshap
  
imports: import numbers
  import sys
  import numpy
  from numpy.testing import assert_allclose
  import pytest
  from pytest_lazyfixture import lazy_fixture
  from sklearn.linear_model import LogisticRegression
  from sklearn.ensemble import RandomForestClassifier
  import tempfile
  import tensorflow
  from typing import List, Union
  from alibi.explainers import ALE, AnchorImage, AnchorTabular, AnchorText, IntegratedGradients, KernelShap, TreeShap, CounterfactualRLTabular, GradientSimilarity
  from alibi.explainers.integrated_gradients import LayerState
  from alibi.saving import load_explainer
  from alibi_testing.data import get_adult_data, get_iris_data, get_movie_sentiment_data
  import alibi_testing
  from alibi.utils.download import spacy_model
  from alibi.explainers.tests.utils import predict_fcn
label_desc: Use image node_id 18 for calling a global function with example usage: kshap_explainer(lr_classifier, adult_data) and returns: kshap