class_docstr: Black-box implementation of partial dependence for tabular datasets.
  Supports multiple feature interactions. 
class_docstr_tok: ["Black-box","implementation","of","partial","dependence","for","tabular","datasets",".","Supports","multiple","feature","interactions","."]
docstr: Initialize black-box model implementation of partial dependence.
  
  Parameters
  ----------
  predictor
      A prediction function which receives as input a `numpy` array of size `N x F` and outputs a
      `numpy` array of size `N` (i.e. `(N, )`) or `N x T`, where `N` is the number of input
      instances, `F` is the number of features and `T` is the number of targets.
  feature_names
      A list of feature names used for displaying results.
  categorical_names
      Dictionary where keys are feature columns and values are the categories for the feature. Necessary to
      identify the categorical features in the dataset. An example for `categorical_names` would be::
  
          category_map = {0: ["married", "divorced"], 3: ["high school diploma", "master's degree"]}
  
  target_names
      A list of target/output names used for displaying results.
  verbose
      Whether to print the progress of the explainer.
  
  Notes
  -----
  The length of the `target_names` should match the number of columns returned by a call to the `predictor`.
  For example, in the case of a binary classifier, if the predictor outputs a decision score (i.e. uses
  the `decision_function` method) which returns one column, then the length of the `target_names` should be one.
  On the other hand, if the predictor outputs a prediction probability (i.e. uses the `predict_proba` method)
  which returns two columns (one for the negative class and one for the positive class), then the length of
  the `target_names` should be two.
docstr_tok: ["Initialize","black-box","model","implementation","of","partial","dependence",".","Parameters","--","--","--","--","--","predictor","A","prediction","function","which","receives","as","input","a","`","numpy","`","array","of","size","`","N","x","F","`","and","outputs","a","`","numpy","`","array","of","size","`","N","`","(","i.e",".","`","(","N",",",")","`",")","or","`","N","x","T","`",",","where","`","N","`","is","the","number","of","input","instances",",","`","F","`","is","the","number","of","features","and","`","T","`","is","the","number","of","targets",".","feature_names","A","list","of","feature","names","used","for","displaying","results",".","categorical_names","Dictionary","where","keys","are","feature","columns","and","values","are","the","categories","for","the","feature",".","Necessary","to","identify","the","categorical","features","in","the","dataset",".","An","example","for","`","categorical_names","`","would","be",":",":","category_map","=","{","0",":","[","``","married","''",",","``","divorced","''","]",",","3",":","[","``","high","school","diploma","''",",","``","master","'s","degree","''","]","}","target_names","A","list","of","target\/output","names","used","for","displaying","results",".","verbose","Whether","to","print","the","progress","of","the","explainer",".","Notes","--","--","-","The","length","of","the","`","target_names","`","should","match","the","number","of","columns","returned","by","a","call","to","the","`","predictor","`",".","For","example",",","in","the","case","of","a","binary","classifier",",","if","the","predictor","outputs","a","decision","score","(","i.e",".","uses","the","`","decision_function","`","method",")","which","returns","one","column",",","then","the","length","of","the","`","target_names","`","should","be","one",".","On","the","other","hand",",","if","the","predictor","outputs","a","prediction","probability","(","i.e",".","uses","the","`","predict_proba","`","method",")","which","returns","two","columns","(","one","for","the","negative","class","and","one","for","the","positive","class",")",",","then","the","length","of","the","`","target_names","`","should","be","two","."]
code: def __init__(
      self,
      predictor: Callable[[np.ndarray], np.ndarray],
      feature_names: Optional[List[str]] = None,
      categorical_names: Optional[Dict[int, List[str]]] = None,
      target_names: Optional[List[str]] = None,
      verbose: bool = False,
  ):
      """
      Initialize black-box model implementation of partial dependence.
  
      Parameters
      ----------
      predictor
          A prediction function which receives as input a `numpy` array of size `N x F` and outputs a
          `numpy` array of size `N` (i.e. `(N, )`) or `N x T`, where `N` is the number of input
          instances, `F` is the number of features and `T` is the number of targets.
      feature_names
          A list of feature names used for displaying results.
      categorical_names
          Dictionary where keys are feature columns and values are the categories for the feature. Necessary to
          identify the categorical features in the dataset. An example for `categorical_names` would be::
  
              category_map = {0: ["married", "divorced"], 3: ["high school diploma", "master's degree"]}
  
      target_names
          A list of target/output names used for displaying results.
      verbose
          Whether to print the progress of the explainer.
  
      Notes
      -----
      The length of the `target_names` should match the number of columns returned by a call to the `predictor`.
      For example, in the case of a binary classifier, if the predictor outputs a decision score (i.e. uses
      the `decision_function` method) which returns one column, then the length of the `target_names` should be one.
      On the other hand, if the predictor outputs a prediction probability (i.e. uses the `predict_proba` method)
      which returns two columns (one for the negative class and one for the positive class), then the length of
      the `target_names` should be two.
      """
      if not callable(predictor):
          raise ValueError("The predictor must be a callable.")
  
      super().__init__(
          predictor=predictor,
          feature_names=feature_names,
          categorical_names=categorical_names,
          target_names=target_names,
          verbose=verbose,
      )
  
imports: import copy
  import logging
  import math
  import numbers
  import sys
  from abc import ABC, abstractmethod
  from enum import Enum
  from typing import Callable, Dict, Iterable, List, Optional, Tuple, Union, no_type_check
  import matplotlib.pyplot
  import numpy
  from scipy.stats.mstats import mquantiles
  from sklearn.base import BaseEstimator, is_classifier, is_regressor
  from sklearn.ensemble import RandomForestRegressor
  from sklearn.ensemble._gb import BaseGradientBoosting
  from sklearn.ensemble._hist_gradient_boosting.gradient_boosting import BaseHistGradientBoosting
  from sklearn.tree import DecisionTreeRegressor
  from sklearn.utils.extmath import cartesian
  from sklearn.utils.validation import check_is_fitted
  from tqdm import tqdm
  from alibi.api.defaults import DEFAULT_DATA_PD, DEFAULT_META_PD
  from alibi.api.interfaces import Explainer, Explanation
  from alibi.explainers.ale import get_quantiles
  from alibi.utils import _get_options_string
label_desc: Use image node_id 1 to create a new PartialDependence object from inherited base classes: PartialDependenceBase with example: obj = PartialDependence(predictor, feature_names, categorical_names, target_names, verbose)