Package opennlp.tools.util.eval

# Class CrossValidationPartitioner<E>

java.lang.Object
opennlp.tools.util.eval.CrossValidationPartitioner<E>

public class CrossValidationPartitioner<E> extends Object
Provides access to training and test partitions for n-fold cross validation.

Cross validation is used to evaluate the performance of a classifier when only training data is available. The training set is split into n parts and the training / evaluation is performed `n` times on these parts. The training partition always consists of `n - 1` parts and one part is used for testing.

To use the `CrossValidationPartitioner` a client iterates over the n `stream`. Each `CrossValidationPartitioner.TrainingSampleStream` represents one partition and is used first for training and afterwards for testing. The `CrossValidationPartitioner.TestSampleStream` can be obtained via the `CrossValidationPartitioner.TrainingSampleStream.getTestSampleStream()` method.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `CrossValidationPartitioner.TrainingSampleStream<E>`
  The `CrossValidationPartitioner.TrainingSampleStream` which iterates over all training elements.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CrossValidationPartitioner(Collection<E> elements, int numberOfPartitions)`
  Initializes `CrossValidationPartitioner` instance.
  `CrossValidationPartitioner(opennlp.tools.util.ObjectStream<E> inElements, int numberOfPartitions)`
  Initializes `CrossValidationPartitioner` instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `hasNext()`
  Checks if there are more partitions available.
  `CrossValidationPartitioner.TrainingSampleStream<E>`
  `next()`
  Retrieves the next training and test partitions.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### CrossValidationPartitioner

    public CrossValidationPartitioner(opennlp.tools.util.ObjectStream<E> inElements, int numberOfPartitions)
    Initializes `CrossValidationPartitioner` instance.
    Parameters:
      `inElements` - The `opennlp.tools.util.ObjectStream<E>` that provides the elements.
      `numberOfPartitions` - The number of partitions. Must be greater than `0`.

  - ### CrossValidationPartitioner

    public CrossValidationPartitioner(Collection<E> elements, int numberOfPartitions)
    Initializes `CrossValidationPartitioner` instance.
    Parameters:
      `elements` - A `Collection<E>` that provides the elements.
      `numberOfPartitions` - The number of partitions. Must be greater than `0`.

- ## Method Details

  - ### hasNext

    public boolean hasNext()
    Checks if there are more partitions available.

  - ### next

    public CrossValidationPartitioner.TrainingSampleStream<E> next() throws IOException
    Retrieves the next training and test partitions.
    Throws:
      `IOException`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`