Package weka.classifiers
Class GroupedRandomSplitGenerator
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- weka.classifiers.AbstractSplitGenerator
-
- weka.classifiers.GroupedRandomSplitGenerator
-
- All Implemented Interfaces:
adams.core.Destroyable,adams.core.GlobalInfoSupporter,adams.core.logging.LoggingLevelHandler,adams.core.logging.LoggingSupporter,adams.core.option.OptionHandler,adams.core.Randomizable,adams.core.SizeOfHandler,adams.data.splitgenerator.RandomSplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>,adams.data.splitgenerator.SplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>,InstancesViewSupporter,Serializable,Iterator<WekaTrainTestSetContainer>,RandomSplitGenerator,SplitGenerator
public class GroupedRandomSplitGenerator extends AbstractSplitGenerator implements RandomSplitGenerator
Generates random splits of datasets, making sure that groups of instances stay together (identified via a regexp).- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanm_Generatedwhether the split was generated.protected adams.data.splitgenerator.generic.randomsplit.RandomSplitGeneratorm_Generatorthe underlying scheme for generating the split.protected Stringm_Groupthe group expression.protected WekaAttributeIndexm_Indexthe index to use for grouping.protected doublem_Percentagethe percentage.protected booleanm_PreserveOrderwhether to preserve the order.protected adams.core.base.BaseRegExpm_RegExpthe regular expression for the nominal/string attribute.-
Fields inherited from class weka.classifiers.AbstractSplitGenerator
m_Data, m_Initialized, m_OriginalIndices, m_OriginalIndicesPerFold, m_Seed, m_UseViews
-
-
Constructor Summary
Constructors Constructor Description GroupedRandomSplitGenerator()Initializes the generator.GroupedRandomSplitGenerator(weka.core.Instances data, long seed, double percentage, boolean preserveOrder, WekaAttributeIndex index, adams.core.base.BaseRegExp regExp, String group)Initializes the generator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancanRandomize()Returns whether randomization is enabled.protected booleancheckNext()Returns true if the iteration has more elements.protected WekaTrainTestSetContainercreateNext()Creates the next result.voiddefineOptions()Adds options to the internal list of options.protected voiddoInitializeIterator()Initializes the iterator, randomizes the data if required.StringgetGroup()Returns the replacement string to use as group (eg '$2').WekaAttributeIndexgetIndex()Returns the attribute index to use for grouping.doublegetPercentage()Returns the split percentage.booleangetPreserveOrder()Returns whether to preserve the order.adams.core.base.BaseRegExpgetRegExp()Returns the regular expression for identifying the group (eg '^(.*)-([0-9]+)-(.*)$').StringglobalInfo()Returns a string describing the object.StringgroupTipText()Returns the tip text for this property.StringindexTipText()Returns the tip text for this property.StringpercentageTipText()Returns the tip text for this property.StringpreserveOrderTipText()Returns the tip text for this property.StringregExpTipText()Returns the tip text for this property.voidsetGroup(String value)Sets the replacement string to use as group (eg '$2').voidsetIndex(WekaAttributeIndex value)Sets the attribute index to use for grouping.voidsetPercentage(double value)Sets the split percentage.voidsetPreserveOrder(boolean value)Sets whether to preserve the order.voidsetRegExp(adams.core.base.BaseRegExp value)Sets the regular expression for identifying the group (eg '^(.*)-([0-9]+)-(.*)$').StringtoString()Returns a short description of the generator.-
Methods inherited from class weka.classifiers.AbstractSplitGenerator
getData, getSeed, getUseViews, hasNext, initialize, initializeIterator, next, randomize, remove, reset, seedTipText, setData, setSeed, setUseViews, useViewsTipText
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, destroy, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.data.weka.InstancesViewSupporter
getUseViews, setUseViews
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager, toCommandLine
-
Methods inherited from interface weka.classifiers.SplitGenerator
getData, hasNext, initializeIterator, next, remove, setData
-
-
-
-
Field Detail
-
m_Percentage
protected double m_Percentage
the percentage.
-
m_PreserveOrder
protected boolean m_PreserveOrder
whether to preserve the order.
-
m_Generated
protected boolean m_Generated
whether the split was generated.
-
m_Index
protected WekaAttributeIndex m_Index
the index to use for grouping.
-
m_RegExp
protected adams.core.base.BaseRegExp m_RegExp
the regular expression for the nominal/string attribute.
-
m_Group
protected String m_Group
the group expression.
-
m_Generator
protected adams.data.splitgenerator.generic.randomsplit.RandomSplitGenerator m_Generator
the underlying scheme for generating the split.
-
-
Constructor Detail
-
GroupedRandomSplitGenerator
public GroupedRandomSplitGenerator()
Initializes the generator.
-
GroupedRandomSplitGenerator
public GroupedRandomSplitGenerator(weka.core.Instances data, long seed, double percentage, boolean preserveOrder, WekaAttributeIndex index, adams.core.base.BaseRegExp regExp, String group)Initializes the generator. Does not preserve the order.- Parameters:
data- the dataset to splitseed- the seed value to use for randomizationpercentage- the percentage of the training set (0-1)preserveOrder- whether to preserve the orderindex- the attribute indexregExp- the regular expression to apply to the attribute valuesgroup- the regexp group to use as group
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceadams.core.GlobalInfoSupporter- Specified by:
globalInfoin classadams.core.option.AbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceadams.core.option.OptionHandler- Overrides:
defineOptionsin classAbstractSplitGenerator
-
setPercentage
public void setPercentage(double value)
Sets the split percentage.- Specified by:
setPercentagein interfaceadams.data.splitgenerator.RandomSplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>- Specified by:
setPercentagein interfaceRandomSplitGenerator- Parameters:
value- the percentage (0-1)
-
getPercentage
public double getPercentage()
Returns the split percentage.- Specified by:
getPercentagein interfaceadams.data.splitgenerator.RandomSplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>- Specified by:
getPercentagein interfaceRandomSplitGenerator- Returns:
- the percentage (0-1)
-
percentageTipText
public String percentageTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setPreserveOrder
public void setPreserveOrder(boolean value)
Sets whether to preserve the order.- Specified by:
setPreserveOrderin interfaceadams.data.splitgenerator.RandomSplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>- Specified by:
setPreserveOrderin interfaceRandomSplitGenerator- Parameters:
value- true if to preserve order
-
getPreserveOrder
public boolean getPreserveOrder()
Returns whether to preserve the order.- Specified by:
getPreserveOrderin interfaceadams.data.splitgenerator.RandomSplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>- Specified by:
getPreserveOrderin interfaceRandomSplitGenerator- Returns:
- true if to preserve order
-
preserveOrderTipText
public String preserveOrderTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setIndex
public void setIndex(WekaAttributeIndex value)
Sets the attribute index to use for grouping.- Parameters:
value- the index
-
getIndex
public WekaAttributeIndex getIndex()
Returns the attribute index to use for grouping.- Returns:
- the index
-
indexTipText
public String indexTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRegExp
public void setRegExp(adams.core.base.BaseRegExp value)
Sets the regular expression for identifying the group (eg '^(.*)-([0-9]+)-(.*)$').- Parameters:
value- the expression
-
getRegExp
public adams.core.base.BaseRegExp getRegExp()
Returns the regular expression for identifying the group (eg '^(.*)-([0-9]+)-(.*)$').- Returns:
- the expression
-
regExpTipText
public String regExpTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setGroup
public void setGroup(String value)
Sets the replacement string to use as group (eg '$2').- Parameters:
value- the group
-
getGroup
public String getGroup()
Returns the replacement string to use as group (eg '$2').- Returns:
- the group
-
groupTipText
public String groupTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
canRandomize
protected boolean canRandomize()
Returns whether randomization is enabled.- Specified by:
canRandomizein classAbstractSplitGenerator- Returns:
- true if to randomize
-
doInitializeIterator
protected void doInitializeIterator()
Initializes the iterator, randomizes the data if required.- Specified by:
doInitializeIteratorin classAbstractSplitGenerator- See Also:
AbstractSplitGenerator.canRandomize()
-
checkNext
protected boolean checkNext()
Returns true if the iteration has more elements. (In other words, returns true if next would return an element rather than throwing an exception.)- Specified by:
checkNextin classAbstractSplitGenerator- Returns:
- true if the iterator has more elements.
-
createNext
protected WekaTrainTestSetContainer createNext()
Creates the next result.- Specified by:
createNextin classAbstractSplitGenerator- Returns:
- the next result
-
toString
public String toString()
Returns a short description of the generator.- Specified by:
toStringin interfaceadams.data.splitgenerator.SplitGenerator<weka.core.Instances,WekaTrainTestSetContainer>- Specified by:
toStringin interfaceSplitGenerator- Overrides:
toStringin classAbstractSplitGenerator- Returns:
- a short description
-
-