shapiq_benchmark.setups.InterventionalTreeSetup¶
- class shapiq_benchmark.setups.InterventionalTreeSetup(*, dataset, random_state=42, dataset_params=<factory>, test_size=0.2, model='decision_tree', preset=None, model_params=<factory>, x=0, n_reference=100, class_index=None, normalize=False)[source]¶
Bases:
ModelSetupAn
InterventionalTreeGameof a tree model trained on a dataset.The reference data is a seeded random subset of the training split; the explained point is taken from the test split.
- Variables:
model – A tree model name (see
PathDependentTreeSetup). Defaults to"decision_tree".x – The index of the explained point in the test split. Defaults to
0.n_reference – The number of reference rows. Defaults to
100.class_index – The explained class for classifiers (
Nonemeans class1).normalize – Whether to center the game. Defaults to
False.
Examples
>>> setup = InterventionalTreeSetup(dataset="xor", n_reference=20) >>> setup.build().reference_data.shape (20, 4)
- estimator(task, **overrides)¶
Return the unfitted, seeded model for a task.
- Parameters:
task (
Task) –"classification"or"regression".**overrides (
Any) – Hyperparameters overridingmodel_params.
- Return type:
- load_split()¶
Load the dataset and split it (seeded, stratified for classification).
- Return type:
- sample_rows(n_rows, n)¶
Return
nsorted row indices out ofn_rows, drawn withrandom_state.All rows are returned if
nisNoneor at leastn_rows.- Return type:
- stratified_rows(y, n, task)¶
Return
nsorted row indices, drawn withrandom_stateand stratified by class.The rows are stratified for classification where every class has enough rows. All rows are returned if
nisNoneor at least the number of rows.- Return type:
GenericAlias[integer]
- to_dict()¶
Return the setup as a JSON-serializable dictionary (the inverse of
setup_from_dict()).
- class_index = None¶
- dataset¶
- dataset_params¶
- property key¶
A stable identifier of the game this setup builds, used as its cache key.
It is a digest of the setup’s name,
version,RECIPE_VERSION, and fields (runtime fields excluded), so it is the same across processes and machines.
- model = 'decision_tree'¶
- model_params¶
- n_reference = 100¶
- name = 'interventional_tree'¶
The registered name of the setup.
- normalize = False¶
- preset = None¶
- random_state = 42¶
- tasks = ('classification', 'regression')¶
The tasks of the datasets the setup accepts.
- test_size = 0.2¶
- x = 0¶