shapiq_benchmark.setups.FeatureSelectionSetup

class shapiq_benchmark.setups.FeatureSelectionSetup(*, dataset, random_state=42, dataset_params=<factory>, test_size=0.2, model='decision_tree', preset=None, model_params=<factory>, metric=None, n_train=None, normalize=True)[source]

Bases: ModelSetup

A FeatureSelection game: a model retrained on feature subsets.

Variables:
  • model – The model name. Defaults to "decision_tree".

  • metric – The metric name, or None for the default of the task.

  • n_train – Use a seeded subset of this many training rows (None for all).

  • normalize – Whether to center the game. Defaults to True.

Examples

>>> FeatureSelectionSetup(dataset="breast_cancer", n_train=100).build().n_players
30
build()[source]

Build the game with the unfitted model; the game trains it per coalition.

Return type:

FeatureSelection

estimator(task, **overrides)

Return the unfitted, seeded model for a task.

Parameters:
  • task (Task) – "classification" or "regression".

  • **overrides (Any) – Hyperparameters overriding model_params.

Return type:

Any

fit(split)

Return the seeded model fitted on the training part of split.

Return type:

Any

load()

Load the dataset.

Return type:

Dataset

load_split()

Load the dataset and split it (seeded, stratified for classification).

Return type:

DatasetSplit

sample_rows(n_rows, n)

Return n sorted row indices out of n_rows, drawn with random_state.

All rows are returned if n is None or at least n_rows.

Return type:

ndarray

stratified_rows(y, n, task)

Return n sorted row indices, drawn with random_state and stratified by class.

The rows are stratified for classification where every class has enough rows. All rows are returned if n is None or 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()).

Return type:

dict[str, Any]

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.

metric = None
model = 'decision_tree'
model_params
n_train = None
name = 'feature_selection'

The registered name of the setup.

normalize = True
preset = None
random_state = 42
tasks = ('classification', 'regression')

The tasks of the datasets the setup accepts.

test_size = 0.2
version = 1

The version of build(), part of key.