Package moa.classifiers.trees
Class EFDT
- java.lang.Object
-
- moa.AbstractMOAObject
-
- moa.options.AbstractOptionHandler
-
- moa.classifiers.AbstractClassifier
-
- moa.classifiers.trees.EFDT
-
- All Implemented Interfaces:
Configurable
,Serializable
,CapabilitiesHandler
,Classifier
,MultiClassClassifier
,AWTRenderable
,Learner<Example<Instance>>
,MOAObject
,OptionHandler
public class EFDT extends AbstractClassifier implements MultiClassClassifier
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EFDT.ActiveLearningNode
class
EFDT.EFDTLearningNode
static interface
EFDT.EFDTNode
class
EFDT.EFDTSplitNode
static class
EFDT.FoundNode
static class
EFDT.InactiveLearningNode
static class
EFDT.LearningNode
static class
EFDT.LearningNodeNB
static class
EFDT.LearningNodeNBAdaptive
static class
EFDT.Node
static class
EFDT.SplitNode
-
Field Summary
Fields Modifier and Type Field Description protected double
activeLeafByteSizeEstimate
protected int
activeLeafNodeCount
FlagOption
binarySplitsOption
protected double
byteSizeEstimateOverheadFraction
protected int
decisionNodeCount
IntOption
gracePeriodOption
protected boolean
growthAllowed
protected double
inactiveLeafByteSizeEstimate
protected int
inactiveLeafNodeCount
MultiChoiceOption
leafpredictionOption
IntOption
maxByteSizeOption
IntOption
memoryEstimatePeriodOption
IntOption
nbThresholdOption
ClassOption
nominalEstimatorOption
FlagOption
noPrePruneOption
ClassOption
numericEstimatorOption
protected int
numInstances
IntOption
reEvalPeriodOption
FlagOption
removePoorAttsOption
FloatOption
splitConfidenceOption
protected int
splitCount
ClassOption
splitCriterionOption
FlagOption
stopMemManagementOption
FloatOption
tieThresholdOption
protected EFDT.Node
treeRoot
-
Fields inherited from class moa.classifiers.AbstractClassifier
classifierRandom, modelContext, randomSeed, randomSeedOption, trainingWeightSeenByModel
-
Fields inherited from class moa.options.AbstractOptionHandler
config
-
-
Constructor Summary
Constructors Constructor Description EFDT()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
activateLearningNode(EFDT.InactiveLearningNode toActivate, EFDT.SplitNode parent, int parentBranch)
protected void
attemptToSplit(EFDT.ActiveLearningNode node, EFDT.SplitNode parent, int parentIndex)
int
calcByteSize()
static double
computeHoeffdingBound(double range, double confidence, double n)
void
deactivateAllLeaves()
protected void
deactivateLearningNode(EFDT.ActiveLearningNode toDeactivate, EFDT.SplitNode parent, int parentBranch)
void
enforceTrackerLimit()
void
estimateModelByteSizes()
protected EFDT.FoundNode[]
findLearningNodes()
protected void
findLearningNodes(EFDT.Node node, EFDT.SplitNode parent, int parentBranch, List<EFDT.FoundNode> found)
void
getModelDescription(StringBuilder out, int indent)
Returns a string representation of the model.protected Measurement[]
getModelMeasurementsImpl()
Gets the current measurements of this classifier.
The reason for ...Impl methods: ease programmer burden by not requiring them to remember calls to super in overridden methods.String
getPurposeString()
Dictionary with option texts and objectsdouble[]
getVotesForInstance(Instance inst)
Predicts the class memberships for a given instance.boolean
isRandomizable()
Gets whether this learner needs a random seed.int
measureByteSize()
Gets the memory size of this object.int
measureTreeDepth()
protected EFDT.LearningNode
newLearningNode()
protected EFDT.LearningNode
newLearningNode(double[] initialClassObservations)
protected AttributeClassObserver
newNominalClassObserver()
protected AttributeClassObserver
newNumericClassObserver()
protected EFDT.SplitNode
newSplitNode(InstanceConditionalTest splitTest, double[] classObservations)
protected EFDT.SplitNode
newSplitNode(InstanceConditionalTest splitTest, double[] classObservations, int size)
void
resetLearningImpl()
Resets this classifier.void
trainOnInstanceImpl(Instance inst)
Trains this classifier incrementally using the given instance.
The reason for ...Impl methods: ease programmer burden by not requiring them to remember calls to super in overridden methods.-
Methods inherited from class moa.classifiers.AbstractClassifier
contextIsCompatible, copy, correctlyClassifies, defineImmutableCapabilities, getAttributeNameString, getAWTRenderer, getClassLabelString, getClassNameString, getDescription, getModel, getModelContext, getModelMeasurements, getNominalValueString, getPredictionForInstance, getPredictionForInstance, getSubClassifiers, getSublearners, getVotesForInstance, modelAttIndexToInstanceAttIndex, modelAttIndexToInstanceAttIndex, prepareForUseImpl, resetLearning, setModelContext, setRandomSeed, trainingHasStarted, trainingWeightSeenByModel, trainOnInstance, trainOnInstance
-
Methods inherited from class moa.options.AbstractOptionHandler
getCLICreationString, getOptions, getPreparedClassOption, prepareClassOptions, prepareForUse, prepareForUse
-
Methods inherited from class moa.AbstractMOAObject
copy, measureByteSize, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface moa.capabilities.CapabilitiesHandler
getCapabilities
-
Methods inherited from interface moa.options.OptionHandler
getCLICreationString, getOptions, prepareForUse, prepareForUse
-
-
-
-
Field Detail
-
reEvalPeriodOption
public IntOption reEvalPeriodOption
-
maxByteSizeOption
public IntOption maxByteSizeOption
-
numericEstimatorOption
public ClassOption numericEstimatorOption
-
nominalEstimatorOption
public ClassOption nominalEstimatorOption
-
memoryEstimatePeriodOption
public IntOption memoryEstimatePeriodOption
-
gracePeriodOption
public IntOption gracePeriodOption
-
splitCriterionOption
public ClassOption splitCriterionOption
-
splitConfidenceOption
public FloatOption splitConfidenceOption
-
tieThresholdOption
public FloatOption tieThresholdOption
-
binarySplitsOption
public FlagOption binarySplitsOption
-
stopMemManagementOption
public FlagOption stopMemManagementOption
-
removePoorAttsOption
public FlagOption removePoorAttsOption
-
noPrePruneOption
public FlagOption noPrePruneOption
-
leafpredictionOption
public MultiChoiceOption leafpredictionOption
-
nbThresholdOption
public IntOption nbThresholdOption
-
treeRoot
protected EFDT.Node treeRoot
-
decisionNodeCount
protected int decisionNodeCount
-
activeLeafNodeCount
protected int activeLeafNodeCount
-
inactiveLeafNodeCount
protected int inactiveLeafNodeCount
-
inactiveLeafByteSizeEstimate
protected double inactiveLeafByteSizeEstimate
-
activeLeafByteSizeEstimate
protected double activeLeafByteSizeEstimate
-
byteSizeEstimateOverheadFraction
protected double byteSizeEstimateOverheadFraction
-
growthAllowed
protected boolean growthAllowed
-
numInstances
protected int numInstances
-
splitCount
protected int splitCount
-
-
Method Detail
-
getPurposeString
public String getPurposeString()
Description copied from class:AbstractOptionHandler
Dictionary with option texts and objects- Specified by:
getPurposeString
in interfaceOptionHandler
- Overrides:
getPurposeString
in classAbstractClassifier
- Returns:
- the string with the purpose of this object
-
calcByteSize
public int calcByteSize()
-
measureByteSize
public int measureByteSize()
Description copied from interface:MOAObject
Gets the memory size of this object.- Specified by:
measureByteSize
in interfaceMOAObject
- Overrides:
measureByteSize
in classAbstractMOAObject
- Returns:
- the memory size of this object
-
resetLearningImpl
public void resetLearningImpl()
Description copied from class:AbstractClassifier
Resets this classifier. It must be similar to starting a new classifier from scratch.
The reason for ...Impl methods: ease programmer burden by not requiring them to remember calls to super in overridden methods. Note that this will produce compiler errors if not overridden.- Specified by:
resetLearningImpl
in classAbstractClassifier
-
getVotesForInstance
public double[] getVotesForInstance(Instance inst)
Description copied from interface:Classifier
Predicts the class memberships for a given instance. If an instance is unclassified, the returned array elements must be all zero.- Specified by:
getVotesForInstance
in interfaceClassifier
- Specified by:
getVotesForInstance
in classAbstractClassifier
- Parameters:
inst
- the instance to be classified- Returns:
- an array containing the estimated membership probabilities of the test instance in each class
-
getModelMeasurementsImpl
protected Measurement[] getModelMeasurementsImpl()
Description copied from class:AbstractClassifier
Gets the current measurements of this classifier.
The reason for ...Impl methods: ease programmer burden by not requiring them to remember calls to super in overridden methods. Note that this will produce compiler errors if not overridden.- Specified by:
getModelMeasurementsImpl
in classAbstractClassifier
- Returns:
- an array of measurements to be used in evaluation tasks
-
measureTreeDepth
public int measureTreeDepth()
-
getModelDescription
public void getModelDescription(StringBuilder out, int indent)
Description copied from class:AbstractClassifier
Returns a string representation of the model.- Specified by:
getModelDescription
in classAbstractClassifier
- Parameters:
out
- the stringbuilder to add the descriptionindent
- the number of characters to indent
-
isRandomizable
public boolean isRandomizable()
Description copied from interface:Learner
Gets whether this learner needs a random seed. Examples of methods that needs a random seed are bagging and boosting.- Specified by:
isRandomizable
in interfaceLearner<Example<Instance>>
- Returns:
- true if the learner needs a random seed.
-
computeHoeffdingBound
public static double computeHoeffdingBound(double range, double confidence, double n)
-
newNominalClassObserver
protected AttributeClassObserver newNominalClassObserver()
-
newNumericClassObserver
protected AttributeClassObserver newNumericClassObserver()
-
enforceTrackerLimit
public void enforceTrackerLimit()
-
estimateModelByteSizes
public void estimateModelByteSizes()
-
deactivateAllLeaves
public void deactivateAllLeaves()
-
deactivateLearningNode
protected void deactivateLearningNode(EFDT.ActiveLearningNode toDeactivate, EFDT.SplitNode parent, int parentBranch)
-
activateLearningNode
protected void activateLearningNode(EFDT.InactiveLearningNode toActivate, EFDT.SplitNode parent, int parentBranch)
-
findLearningNodes
protected EFDT.FoundNode[] findLearningNodes()
-
findLearningNodes
protected void findLearningNodes(EFDT.Node node, EFDT.SplitNode parent, int parentBranch, List<EFDT.FoundNode> found)
-
attemptToSplit
protected void attemptToSplit(EFDT.ActiveLearningNode node, EFDT.SplitNode parent, int parentIndex)
-
trainOnInstanceImpl
public void trainOnInstanceImpl(Instance inst)
Description copied from class:AbstractClassifier
Trains this classifier incrementally using the given instance.
The reason for ...Impl methods: ease programmer burden by not requiring them to remember calls to super in overridden methods. Note that this will produce compiler errors if not overridden.- Specified by:
trainOnInstanceImpl
in classAbstractClassifier
- Parameters:
inst
- the instance to be used for training
-
newLearningNode
protected EFDT.LearningNode newLearningNode()
-
newLearningNode
protected EFDT.LearningNode newLearningNode(double[] initialClassObservations)
-
newSplitNode
protected EFDT.SplitNode newSplitNode(InstanceConditionalTest splitTest, double[] classObservations, int size)
-
newSplitNode
protected EFDT.SplitNode newSplitNode(InstanceConditionalTest splitTest, double[] classObservations)
-
-