cc.mallet.types
Class CrossValidationIterator
- java.lang.Object
-
- cc.mallet.types.CrossValidationIterator
-
- All Implemented Interfaces:
- java.io.Serializable, java.util.Iterator<InstanceList[]>
public class CrossValidationIterator extends java.lang.Object implements java.util.Iterator<InstanceList[]>, java.io.Serializable
An iterator which splits anInstanceListinto n-folds and iterates over the folds for use in n-fold cross-validation. For each iteration, list[0] contains aInstanceListwith n-1 folds typically used for training and list[1] contains anInstanceListwith 1 fold typically used for validation. This class usesMultiInstanceListto avoid creating a newInstanceListeach iteration. TODO - currently the distribution is completely random, an improvement would be to provide a stratified random distribution.- See Also:
MultiInstanceList,InstanceList, Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description CrossValidationIterator(InstanceList ilist, int _nfolds)Constructs a new n-fold cross-validation iteratorCrossValidationIterator(InstanceList ilist, int nfolds, java.util.Random r)Constructs a new n-fold cross-validation iterator
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidclear()Calls clear on each fold.booleanhasNext()InstanceList[]next()Returns the next training/testing split.InstanceList[]nextSplit()Returns the next training/testing split.InstanceList[]nextSplit(int numTrainFolds)Returns the next training/testing split.voidremove()
-
-
-
Constructor Detail
-
CrossValidationIterator
public CrossValidationIterator(InstanceList ilist, int nfolds, java.util.Random r)
Constructs a new n-fold cross-validation iterator- Parameters:
ilist- instance list to split into folds and iterate overnfolds- number of folds to split InstanceList intor- The source of randomness to use in shuffling.
-
CrossValidationIterator
public CrossValidationIterator(InstanceList ilist, int _nfolds)
Constructs a new n-fold cross-validation iterator- Parameters:
ilist- instance list to split into folds and iterate over_nfolds- number of folds to split InstanceList into
-
-
Method Detail
-
clear
public void clear()
Calls clear on each fold. It is recommended that this be always be called when the iterator is no longer needed so that implementations of InstanceList such as PagedInstanceList can clean up any temporary data they may have outside the JVM.
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfacejava.util.Iterator<InstanceList[]>
-
nextSplit
public InstanceList[] nextSplit()
Returns the next training/testing split.- Returns:
- A two element array of
InstanceList, whereInstanceList[0]contains n-1 folds for training andInstanceList[1]contains 1 fold for testing.
-
nextSplit
public InstanceList[] nextSplit(int numTrainFolds)
Returns the next training/testing split.- Returns:
- A two element array of
InstanceList, whereInstanceList[0]containsnumTrainingFoldsfolds for training andInstanceList[1]contains n -numTrainingFoldsfolds for testing.
-
next
public InstanceList[] next()
Returns the next training/testing split.- Specified by:
nextin interfacejava.util.Iterator<InstanceList[]>- Returns:
- A two element array of
InstanceList, whereInstanceList[0]contains n-1 folds for training andInstanceList[1]contains 1 fold for testing. - See Also:
Iterator.next()
-
remove
public void remove()
- Specified by:
removein interfacejava.util.Iterator<InstanceList[]>
-
-
DataMelt 3.0 © DataMelt by jWork.ORG