Toggle Menu
Prev Up Next

scikit-learn 1.3.2
Other versions

Please cite us if you use the software.

# `sklearn.model_selection`.LeaveOneOut

class sklearn.model_selection.LeaveOneOut

  Leave-One-Out cross-validator

  Provides train/test indices to split data in train/test sets. Each sample is used once as a test set (singleton) while the remaining samples form the training set.

  Note: `LeaveOneOut()` is equivalent to `KFold(n_splits=n)` and `LeavePOut(p=1)` where `n` is the number of samples.

  Due to the high number of test sets (which is the same as the number of samples) this cross-validation method can be very costly. For large datasets one should favor `KFold`, `ShuffleSplit` or `StratifiedKFold`.

  Read more in the User Guide.

  See also

  `LeaveOneGroupOut`

    For splitting the data according to explicit, domain-specific stratification of the dataset.

  `GroupKFold`

    K-fold iterator variant with non-overlapping groups.

  Examples

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

  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.

    Returns:
      n_splits int

        Returns the number of splitting iterations in the cross-validator.

  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.