facet.inspection.shap.sklearn.ClassifierShapCalculator#
- class facet.inspection.shap.sklearn.ClassifierShapCalculator(model, *, explainer_factory, interaction_values, n_jobs=None, shared_memory=None, pre_dispatch=None, verbose=None)[source]#
Calculates SHAP (interaction) values for classification models.
- Bases
LearnerShapCalculator
[~T_Classifier]- Generic types
~T_Classifier(bound=
ClassifierMixin
)- Metaclasses
- Parameters
model (
ClassifierShapCalculator
) – the model for which to calculate SHAP valuesexplainer_factory (
ExplainerFactory
[ClassifierShapCalculator
]) – 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.
validate_learner
- rtype
Attribute summary
IDX_FEATURE
Name for the feature index (= column index) of the resulting SHAP data frame.
Multi-output SHAP values are determined by class.
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
- MULTI_OUTPUT_INDEX_NAME = 'class'#
Multi-output SHAP values are determined by class.
- 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
- 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