<a id="skfolio-model-selection-basecombinatorialcv"></a>

# skfolio.model_selection.BaseCombinatorialCV

<a id="skfolio.model_selection.BaseCombinatorialCV"></a>

### *class* skfolio.model_selection.BaseCombinatorialCV

Base class for all combinatorial cross-validators.

Implementations must define `split` or `get_path_ids`.

### Methods

| [`get_path_ids`](#skfolio.model_selection.BaseCombinatorialCV.get_path_ids)()   | Return the path id of each test sets in each split.        |
|-------------------------------------------------------------------|------------------------------------------------------------|
| [`split`](#skfolio.model_selection.BaseCombinatorialCV.split)(X[, y])    | Generate indices to split data into training and test set. |

<a id="skfolio.model_selection.BaseCombinatorialCV.get_path_ids"></a>

#### *abstractmethod* get_path_ids()

Return the path id of each test sets in each split.

<a id="skfolio.model_selection.BaseCombinatorialCV.split"></a>

#### *abstractmethod* split(X, y=None)

Generate indices to split data into training and test set.

* **Parameters:**
  **X** *array-like of shape (n_samples, n_features)*
  : Training data, where `n_samples` is the number of samples and `n_features`
    is the number of features.

  **y** *array-like of shape (n_samples,), optional*
  : The (multi-)target variable.
* **Yields:**
  **train** *ndarray*
  : The training set indices for that split.

  **test** *list[ndarray]*
  : The testing set indices of each test group for that split.

