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​(ObjectStream<E> inElements, int numberOfPartitions)` | Initializes `CrossValidationPartitioner` instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### CrossValidationPartitioner

          public CrossValidationPartitioner​(ObjectStream<E> inElements,
                                            int numberOfPartitions)

      Initializes `CrossValidationPartitioner` instance.
      Parameters:
        `inElements` - The `ObjectStream` 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` that provides the elements.
        `numberOfPartitions` - The number of partitions. Must be greater than `0`.

  - ### Method Detail

    - #### 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`