DatasetSplitter (Lucene 10.5.1 classification API)
Description: declaration: package: org.apache.lucene.classification.utils, class: DatasetSplitter

Package org.apache.lucene.classification.utils

# Class DatasetSplitter

java.lang.Object
org.apache.lucene.classification.utils.DatasetSplitter

public class DatasetSplitter extends Object
Utility class for creating training / test / cross validation indexes from the original index.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DatasetSplitter(double testRatio, double crossValidationRatio)`
  Create a `DatasetSplitter` by giving test and cross validation IDXs sizes

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `split(IndexReader originalIndex, Directory trainingIndex, Directory testIndex, Directory crossValidationIndex, Analyzer analyzer, boolean termVectors, String classFieldName, String... fieldNames)`
  Split a given index into 3 indexes for training, test and cross validation tasks respectively

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DatasetSplitter

    public DatasetSplitter(double testRatio, double crossValidationRatio)
    Create a `DatasetSplitter` by giving test and cross validation IDXs sizes
    Parameters:
      `testRatio` - the ratio of the original index to be used for the test IDX as a `double` between 0.0 and 1.0
      `crossValidationRatio` - the ratio of the original index to be used for the c.v. IDX as a `double` between 0.0 and 1.0

- ## Method Details

  - ### split

    public void split(IndexReader originalIndex, Directory trainingIndex, Directory testIndex, Directory crossValidationIndex, Analyzer analyzer, boolean termVectors, String classFieldName, String... fieldNames) throws IOException
    Split a given index into 3 indexes for training, test and cross validation tasks respectively
    Parameters:
      `originalIndex` - an `LeafReader` on the source index
      `trainingIndex` - a `Directory` used to write the training index
      `testIndex` - a `Directory` used to write the test index
      `crossValidationIndex` - a `Directory` used to write the cross validation index
      `analyzer` - `Analyzer` used to create the new docs
      `termVectors` - `true` if term vectors should be kept
      `classFieldName` - name of the field used as the label for classification; this must be indexed with sorted doc values
      `fieldNames` - names of fields that need to be put in the new indexes or `null` if all should be used
    Throws:
      `IOException` - if any writing operation fails on any of the indexes