Explainer

Explainer

class Explainer.Explainer(hierarchical_model: HierarchicalClassifier, data: None, n_jobs: int = 1, algorithm: str = 'auto', mode: str = '')

Explainer class for returning shap values for each of the three hierarchical classifiers.

__init__(hierarchical_model: HierarchicalClassifier, data: None, n_jobs: int = 1, algorithm: str = 'auto', mode: str = '')

Initialize the SHAP explainer for a hierarchical model.

Parameters
  • hierarchical_model (HierarchicalClassifier) – The hierarchical classification model to explain.

  • data (array-like or None, default=None) – The dataset used for creating the SHAP explainer.

  • n_jobs (int, default=1) – The number of jobs to run in parallel.

  • algorithm (str, default="auto") – The algorithm to use for SHAP explainer. Possible values are ‘linear’, ‘tree’, ‘auto’, ‘permutation’, or ‘partition’

  • mode (str, default="") – The mode of the SHAP explainer. Can be ‘tree’, ‘gradient’, ‘deep’, ‘linear’, or ‘’ for default SHAP explainer.

Examples

>>> from sklearn.ensemble import RandomForestClassifier
>>> import numpy as np
>>> from hiclass import LocalClassifierPerParentNode, Explainer
>>> rfc = RandomForestClassifier()
>>> lcppn = LocalClassifierPerParentNode(local_classifier=rfc, replace_classifiers=False)
>>> x_train = np.array([[1, 3], [2, 5]])
>>> y_train = np.array([[1, 2], [3, 4]])
>>> x_test = np.array([[4, 6]])
>>> lcppn.fit(x_train, y_train)
>>> explainer = Explainer(lcppn, data=x_train, mode="tree")
>>> explanations = explainer.explain(x_test)
<xarray.Dataset>
Dimensions:          (class: 3, sample: 1, level: 2, feature: 2)
Coordinates:
  * class            (class) <U1 '1' '3' '4'
  * level            (level) int64 0 1
Dimensions without coordinates: sample, feature
Data variables:
    node             (sample, level) <U13 'hiclass::root' '3'
    predicted_class  (sample, level) <U1 '3' '4'
    predict_proba    (sample, level, class) float64 0.29 0.71 nan nan nan 1.0
    classes          (sample, level, class) object '1' '3' nan nan nan '4'
    shap_values      (level, class, sample, feature) float64 -0.135 ... 0.0
explain(X)

Generate SHAP values for each node in the hierarchy for the given data.

Parameters

X (array-like) – Training data to fit the SHAP explainer.

Returns

explanation – An xarray.Dataset object representing the explanations for each sample passed.

Return type

xarray.Dataset