facet.inspection.shap.sklearn.LearnerShapCalculator#
- class facet.inspection.shap.sklearn.LearnerShapCalculator(model, *, explainer_factory, interaction_values, n_jobs=None, shared_memory=None, pre_dispatch=None, verbose=None)[source]#
Base class for SHAP calculators based on
sklearndf
supervised learners.- Bases
ShapCalculator
[~T_Learner]- Generic types
~T_Learner(bound=
Union
[RegressorMixin
,ClassifierMixin
])- Metaclasses
- Parameters
model (
ShapCalculator
) – the model for which to calculate SHAP valuesexplainer_factory (
ExplainerFactory
[ShapCalculator
]) – the explainer factory used to create the SHAP explainer for this calculatorinteraction_values (
bool
) – ifTrue
, calculate SHAP interaction values, otherwise calculate SHAP valuesn_jobs (
Optional
[int
]) – number of jobs to use in parallel; ifNone
, use joblib default (default:None
)shared_memory (
Optional
[bool
]) – ifTrue
, use threads in the parallel runs; ifFalse
orNone
, use multiprocessing (default:None
)pre_dispatch (
Union
[int
,str
,None
]) – number of batches to pre-dispatch; ifNone
, use joblib default (default:None
)verbose (
Optional
[int
]) – verbosity level used in the parallel computation; ifNone
, use joblib default (default:None
)
Method summary
Calculate the SHAP values.
Check that the given feature matrix is valid for this calculator.
Attribute summary
IDX_FEATURE
Name for the feature index (= column index) of the resulting SHAP data frame.
MULTI_OUTPUT_INDEX_NAME
Name of the index that is used to identify multiple outputs for which SHAP values are calculated.
The names of the inputs explained by this SHAP calculator, or
None
if no names are defined.[see superclass]
The main effects per observation and featuren (i.e., the diagonals of the interaction matrices), with shape \((n_\mathrm{observations}, n_\mathrm{outputs} \cdot n_\mathrm{features})\).
The names of the outputs explained by this SHAP calculator.
The SHAP interaction values per observation and feature pair, with shape \((n_\mathrm{observations} \cdot n_\mathrm{features}, n_\mathrm{outputs} \cdot n_\mathrm{features})\)
The SHAP values per observation and feature, with shape \((n_\mathrm{observations}, n_\mathrm{outputs} \cdot n_\mathrm{features})\)
n_jobs
Number of jobs to use in parallel; if
None
, use joblib default.shared_memory
If
True
, use threads in the parallel runs; ifFalse
orNone
, use multiprocessing.pre_dispatch
Number of batches to pre-dispatch; if
None
, use joblib default.verbose
Verbosity level used in the parallel computation; if
None
, use joblib default.model
The model for which to calculate SHAP values.
explainer_factory
The explainer factory used to create the SHAP explainer for this calculator.
shap_
The SHAP values for all observations this calculator has been fitted to.
feature_index_
The names of the features for which SHAP values were calculated.
Definitions
- fit(__X, **fit_params)#
Calculate the SHAP values.
- Parameters
- Return type
- Returns
self
- Raises
ValueError – if the observations are not a valid feature matrix for this calculator
- validate_features(features)#
Check that the given feature matrix is valid for this calculator.
- Parameters
features (
DataFrame
) – the feature matrix to validate- Raises
ValueError – if the feature matrix is not compatible with this calculator
- Return type
- property input_names: Optional[List[str]]#
The names of the inputs explained by this SHAP calculator, or
None
if no names are defined.
- property main_effects: pandas.DataFrame#
The main effects per observation and featuren (i.e., the diagonals of the interaction matrices), with shape \((n_\mathrm{observations}, n_\mathrm{outputs} \cdot n_\mathrm{features})\).
- Raises
AttributeError – this SHAP calculator does not support interaction values
- Return type
- abstract property output_names: List[str]#
The names of the outputs explained by this SHAP calculator.
- property shap_interaction_values: pandas.DataFrame#
The SHAP interaction values per observation and feature pair, with shape \((n_\mathrm{observations} \cdot n_\mathrm{features}, n_\mathrm{outputs} \cdot n_\mathrm{features})\)
- Raises
AttributeError – this SHAP calculator does not support interaction values
- Return type
- property shap_values: pandas.DataFrame#
The SHAP values per observation and feature, with shape \((n_\mathrm{observations}, n_\mathrm{outputs} \cdot n_\mathrm{features})\)
- Return type