Class EnsembleEvaluator

  • All Implemented Interfaces:
    adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.Randomizable, adams.core.SerializableObject, adams.core.ShallowCopySupporter<Evaluator>, adams.core.SizeOfHandler, adams.core.Stoppable, adams.core.StoppableWithFeedback, Evaluator, Serializable, Comparable

    public class EnsembleEvaluator
    extends AbstractSerializableEvaluator
    implements adams.core.Randomizable, adams.core.StoppableWithFeedback
    Builds an ensemble of classifiers on the training data to determine the MAE per classifier, to be used as normalization factor.
    At evaluation time, each classifier makes a prediction on the instance and the classification is divided by the normalization factor for this classifier. The range between min/max normalized prediction is the evaluation output.

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -missing-evaluation <float> (property: missingEvaluation)
        The value to use as replacement for missing evaluations.
        default: -999999.0
     
    -serialization-file <adams.core.io.PlaceholderFile> (property: serializationFile)
        The file to serialize the generated internal model to.
        default: ${CWD}
     
    -override-serialized-file <boolean> (property: overrideSerializedFile)
        If set to true, then any serialized file will be ignored and the setup for 
        serialization will be regenerated.
        default: false
     
    -classifier <weka.classifiers.Classifier> [-classifier ...] (property: classifiers)
        The classifiers to use in the ensemble.
        default: weka.classifiers.functions.LinearRegressionJ -S 0 -R 1.0E-8
     
    -seed <long> (property: seed)
        The seed value for the cross-validation.
        default: 1
     
    -num-folds <int> (property: numFolds)
        The number of folds to use for evaluating the classifiers.
        default: 10
        minimum: 2
     
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Classifiers

        protected weka.classifiers.Classifier[] m_Classifiers
        the classifiers to use.
      • m_ActualClassifiers

        protected weka.classifiers.Classifier[] m_ActualClassifiers
        the actual classifiers in use.
      • m_Seed

        protected long m_Seed
        the seed value.
      • m_NumFolds

        protected int m_NumFolds
        the number of folds to use for cross-validation.
      • m_Normalize

        protected double[] m_Normalize
        the normalization factor.
      • m_TrainingData

        protected weka.core.Instances m_TrainingData
        the training data.
      • m_Header

        protected weka.core.Instances m_Header
        the header.
      • m_Stopped

        protected boolean m_Stopped
        whether the execution was stopped.
      • m_Evaluation

        protected transient weka.classifiers.StoppableEvaluation m_Evaluation
        the current evaluation.
    • Constructor Detail

      • EnsembleEvaluator

        public EnsembleEvaluator()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.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:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class AbstractSerializableEvaluator
      • getDefaultMissingEvaluation

        protected float getDefaultMissingEvaluation()
        Returns the default value in case of missing evaluations.
        Specified by:
        getDefaultMissingEvaluation in class AbstractEvaluator
        Returns:
        the default value
      • setClassifiers

        public void setClassifiers​(weka.classifiers.Classifier[] value)
        Sets the classifiers to use.
        Parameters:
        value - the classifiers
      • getClassifiers

        public weka.classifiers.Classifier[] getClassifiers()
        Returns the classifiers in use.
        Returns:
        the classifiers
      • classifiersTipText

        public String classifiersTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setSeed

        public void setSeed​(long value)
        Sets the seed value.
        Specified by:
        setSeed in interface adams.core.Randomizable
        Parameters:
        value - the seed
      • getSeed

        public long getSeed()
        Returns the seed value.
        Specified by:
        getSeed in interface adams.core.Randomizable
        Returns:
        the seed
      • seedTipText

        public String seedTipText()
        Returns the tip text for this property.
        Specified by:
        seedTipText in interface adams.core.Randomizable
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setNumFolds

        public void setNumFolds​(int value)
        Sets the number of folds.
        Parameters:
        value - the number of folds
      • getNumFolds

        public int getNumFolds()
        Returns the number of folds.
        Returns:
        the number of folds
      • numFoldsTipText

        public String numFoldsTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • performBuild

        protected boolean performBuild​(weka.core.Instances data)
        Builds the evaluator.
        Specified by:
        performBuild in class AbstractEvaluator
        Parameters:
        data - the instance to check
        Returns:
        true if build successful
      • performEvaluate

        protected Float performEvaluate​(weka.core.Instance data)
        Performs the actual evaluation. Returns the range of the first confidence interval (upper - lower).
        Overrides:
        performEvaluate in class AbstractEvaluator
        Parameters:
        data - the instance to check
        Returns:
        evaluation metric, AbstractEvaluator.m_MissingEvaluation in case the class value is missing
      • initSerializationSetup

        public void initSerializationSetup()
        Regenerates all the objects that are necessary for serialization.
        Specified by:
        initSerializationSetup in interface adams.core.SerializableObject
      • retrieveSerializationSetup

        public Object[] retrieveSerializationSetup()
        Returns the member variables to serialize to a file.
        Specified by:
        retrieveSerializationSetup in interface adams.core.SerializableObject
        Returns:
        the objects to serialize
      • setSerializationSetup

        public void setSerializationSetup​(Object[] value)
        Updates the member variables with the provided objects obtained from deserialization.
        Specified by:
        setSerializationSetup in interface adams.core.SerializableObject
        Parameters:
        value - the deserialized objects
      • stopExecution

        public void stopExecution()
        Stops the execution. No message set.
        Specified by:
        stopExecution in interface adams.core.Stoppable
      • isStopped

        public boolean isStopped()
        Whether the execution has been stopped.
        Specified by:
        isStopped in interface adams.core.StoppableWithFeedback
        Returns:
        true if stopped
      • cleanUp

        public void cleanUp()
        Cleans up data structures, frees up memory.
        Specified by:
        cleanUp in interface adams.core.CleanUpHandler