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.