code: def get_alibi_tree_pd_explanation(
      predictor: BaseEstimator,
      X: np.ndarray,
      features: List[Union[int, Tuple[int, int]]],
      percentiles: Tuple[float, float],
      grid_resolution: int,
      feature_names: Optional[List[str]] = None,
      categorical_names: Optional[Dict[int, List[str]]] = None,
  ):
      """Computes `alibi` tree pd explanation."""
      # compute `alibi` explanation
      explainer = TreePartialDependence(
          predictor=predictor,
          feature_names=feature_names,
          categorical_names=categorical_names,
      )
  
      return explainer.explain(
          X=X,
          features=features,
          percentiles=percentiles,
          grid_resolution=grid_resolution,
      )
  
imports: import re
  import sys
  from copy import deepcopy
  from typing import Dict, List, Optional, Tuple, Union
  from packaging import version
  import matplotlib.pyplot
  import numpy
  import pandas
  import pytest
  from pytest_lazyfixture import lazy_fixture
  from sklearn.base import BaseEstimator
  from sklearn.datasets import make_classification
  from sklearn.ensemble import GradientBoostingClassifier
  from sklearn.exceptions import NotFittedError
  from sklearn.inspection import partial_dependence
  from sklearn.model_selection import train_test_split
  from sklearn.multioutput import MultiOutputClassifier
  from sklearn.pipeline import Pipeline
  from sklearn.utils import Bunch, shuffle
  import sklearn
  from alibi.api.defaults import DEFAULT_DATA_PD, DEFAULT_META_PD
  from alibi.api.interfaces import Explanation
  from alibi.explainers import PartialDependence, TreePartialDependence, plot_pd
  from alibi.explainers.partial_dependence import _plot_one_pd_cat, _plot_one_pd_num, _plot_two_pd_cat_cat, _plot_two_pd_num_cat, _plot_two_pd_num_num, _process_pd_ice, _sample_ice
label_desc: Use image node_id 15 for calling a global function with example usage: get_alibi_tree_pd_explanation(predictor, X, features, percentiles, grid_resolution, feature_names, categorical_names) and returns: explainer