Toggle Menu
Prev Up Next

scikit-learn 1.3.2
Other versions

Please cite us if you use the software.

# `sklearn.model_selection`.LeavePOut

class sklearn.model_selection.LeavePOut(p)

  Leave-P-Out cross-validator

  Provides train/test indices to split data in train/test sets. This results in testing on all distinct samples of size p, while the remaining n - p samples form the training set in each iteration.

  Note: `LeavePOut(p)` is NOT equivalent to `KFold(n_splits=n_samples // p)` which creates non-overlapping test sets.

  Due to the high number of iterations which grows combinatorically with the number of samples this cross-validation method can be very costly. For large datasets one should favor `KFold`, `StratifiedKFold` or `ShuffleSplit`.

  Read more in the User Guide.

  Parameters:
    p int

      Size of the test sets. Must be strictly less than the number of samples.

  Examples

      >>> import numpy as np
      >>> from sklearn.model_selection import LeavePOut
      >>> X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
      >>> y = np.array([1, 2, 3, 4])
      >>> lpo = LeavePOut(2)
      >>> lpo.get_n_splits(X)
      6
      >>> print(lpo)
      LeavePOut(p=2)
      >>> for i, (train_index, test_index) in enumerate(lpo.split(X)):
      ...     print(f"Fold {i}:")
      ...     print(f"  Train: index={train_index}")
      ...     print(f"  Test:  index={test_index}")
      Fold 0:
        Train: index=[2 3]
        Test:  index=[0 1]
      Fold 1:
        Train: index=[1 3]
        Test:  index=[0 2]
      Fold 2:
        Train: index=[1 2]
        Test:  index=[0 3]
      Fold 3:
        Train: index=[0 3]
        Test:  index=[1 2]
      Fold 4:
        Train: index=[0 2]
        Test:  index=[1 3]
      Fold 5:
        Train: index=[0 1]
        Test:  index=[2 3]

  Methods

  `get_metadata_routing`() | Get metadata routing of this object.
  `get_n_splits`(X[, y, groups]) | Returns the number of splitting iterations in the cross-validator
  `split`(X[, y, groups]) | Generate indices to split data into training and test set.

  get_metadata_routing()

    Get metadata routing of this object.

    Please check User Guide on how the routing mechanism works.

    Returns:
      routing MetadataRequest

        A `MetadataRequest` encapsulating routing information.

  get_n_splits(X, y=None, groups=None)

    Returns the number of splitting iterations in the cross-validator

    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 object

        Always ignored, exists for compatibility.

      groups object

        Always ignored, exists for compatibility.

  split(X, y=None, groups=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,)

        The target variable for supervised learning problems.

      groups array-like of shape (n_samples,), default=None

        Group labels for the samples used while splitting the dataset into train/test set.

    Yields:
      train ndarray

        The training set indices for that split.

      test ndarray

        The testing set indices for that split.