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
[str
,int
,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.
The type of the None singleton.
Attribute summary
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})\)
Number of jobs to use in parallel; if
None
, use joblib default.If
True
, use threads in the parallel runs; ifFalse
orNone
, use multiprocessing.Number of batches to pre-dispatch; if
None
, use joblib default.Verbosity level used in the parallel computation; if
None
, use joblib default.The model for which to calculate SHAP values.
The explainer factory used to create the SHAP explainer for this calculator.
The SHAP values for all observations this calculator has been fitted to.
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:
- IDX_FEATURE = 'feature'#
Name for the feature index (= column index) of the resulting SHAP data frame.
- MULTI_OUTPUT_INDEX_NAME = 'class'#
Multi-output SHAP values are determined by class.
-
explainer_factory:
ExplainerFactory
[TypeVar
(T_Classifier
, bound=ClassifierMixin
)]# The explainer factory used to create the SHAP explainer for this calculator.
- property input_names: list[str] | None#
The names of the inputs explained by this SHAP calculator, or
None
if no names are defined.
- property main_effects: 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
-
model:
TypeVar
(T_Classifier
, bound=ClassifierMixin
)# The model for which to calculate SHAP values.
-
pre_dispatch:
Union
[str
,int
,None
]# Number of batches to pre-dispatch; if
None
, use joblib default.
-
shap_:
Optional
[DataFrame
]# The SHAP values for all observations this calculator has been fitted to.
- property shap_interaction_values: 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
- property shap_values: DataFrame#
The SHAP values per observation and feature, with shape \((n_\mathrm{observations}, n_\mathrm{outputs} \cdot n_\mathrm{features})\)
If
True
, use threads in the parallel runs; ifFalse
orNone
, use multiprocessing.