Class ConsensusOrVote

  • All Implemented Interfaces:
    Serializable, Cloneable, AbstainingClassifier, weka.classifiers.Classifier, weka.core.BatchPredictor, weka.core.CapabilitiesHandler, weka.core.CapabilitiesIgnorer, weka.core.CommandlineRunnable, ModelOutputHandler, weka.core.OptionHandler, weka.core.RevisionHandler

    public class ConsensusOrVote
    extends weka.classifiers.MultipleClassifiersCombiner
    implements ModelOutputHandler, AbstainingClassifier
    If the required minimum number of classifiers of the ensemble agree on a label, then this label is predicted. Otherwise, Vote with majority rule is used.

    Valid options are:

     -support <value>
      The percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it
      (default: 1.0)
     -suppress-model-output
      If enabled, suppresses any large model output.
     -B <classifier specification>
      Full class name of classifier to include, followed
      by scheme options. May be specified multiple times.
      (default: "weka.classifiers.rules.ZeroR")
     -output-debug-info
      If set, classifier is run in debug mode and
      may output additional info to the console
     -do-not-check-capabilities
      If set, classifier capabilities are not checked before classifier is built
      (use with caution).
     -num-decimal-places
      The number of decimal places for the output of numbers in the model (default 2).
     -batch-size
      The desired batch size for batch prediction  (default 100).
     Options specific to classifier weka.classifiers.rules.ZeroR:
     
     -output-debug-info
      If set, classifier is run in debug mode and
      may output additional info to the console
     -do-not-check-capabilities
      If set, classifier capabilities are not checked before classifier is built
      (use with caution).
     -num-decimal-places
      The number of decimal places for the output of numbers in the model (default 2).
     -batch-size
      The desired batch size for batch prediction  (default 100).
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int m_ActualSupport
      the actual number of classifiers that need to support the label.
      protected double m_Support
      the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
      protected boolean m_SuppressModelOutput
      whether to suppress the model output.
      protected weka.classifiers.meta.Vote m_Vote
      the ensemble.
      static String SUPPORT  
      static String SUPPRESS_MODEL_OUTPUT  
      • Fields inherited from class weka.classifiers.MultipleClassifiersCombiner

        m_Classifiers
      • Fields inherited from class weka.classifiers.AbstractClassifier

        BATCH_SIZE_DEFAULT, m_BatchSize, m_Debug, m_DoNotCheckCapabilities, m_numDecimalPlaces, NUM_DECIMAL_PLACES_DEFAULT
    • Constructor Summary

      Constructors 
      Constructor Description
      ConsensusOrVote()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void buildClassifier​(weka.core.Instances data)
      Builds the ensemble.
      boolean canAbstain()
      Whether abstaining is possible, e.g., used in meta-classifiers.
      double classifyInstance​(weka.core.Instance instance)
      Predicts the class label index for the given instance.
      double[] distributionForInstance​(weka.core.Instance instance)
      Predicts the class memberships for a given instance.
      double getAbstentionClassification​(weka.core.Instance inst)
      The prediction that made the classifier abstain.
      double[] getAbstentionDistribution​(weka.core.Instance inst)
      The class distribution that made the classifier abstain.
      weka.core.Capabilities getCapabilities()
      Returns the ensemble's capabilities.
      protected double getDefaultSupport()
      Returns the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
      String[] getOptions()
      Gets the current option settings for the OptionHandler.
      double getSupport()
      Returns the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
      boolean getSuppressModelOutput()
      Returns whether to output the model with the toString() method or not.
      String globalInfo()
      Returns a string describing classifier
      protected boolean isAbstaining​(weka.core.Instance instance)
      Determines whether to abstain from the prediction.
      Enumeration listOptions()
      Returns an enumeration describing the available options.
      void setOptions​(String[] options)
      Sets the OptionHandler's options using the given list.
      void setSupport​(double value)
      Sets the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
      void setSuppressModelOutput​(boolean value)
      Sets whether to output the model with the toString() method or not.
      String supportTipText()
      Returns the tip text for this property.
      String suppressModelOutputTipText()
      Returns the tip text for this property.
      String toString()
      Outputs the ensemble model.
      • Methods inherited from class weka.classifiers.MultipleClassifiersCombiner

        classifiersTipText, getClassifier, getClassifiers, getClassifierSpec, postExecution, preExecution, setClassifiers
      • Methods inherited from class weka.classifiers.AbstractClassifier

        batchSizeTipText, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, getRevision, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
    • Field Detail

      • m_Support

        protected double m_Support
        the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
      • m_ActualSupport

        protected int m_ActualSupport
        the actual number of classifiers that need to support the label.
      • m_Vote

        protected weka.classifiers.meta.Vote m_Vote
        the ensemble.
      • m_SuppressModelOutput

        protected boolean m_SuppressModelOutput
        whether to suppress the model output.
    • Constructor Detail

      • ConsensusOrVote

        public ConsensusOrVote()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing classifier
        Returns:
        a description suitable for displaying in the gui
      • getDefaultSupport

        protected double getDefaultSupport()
        Returns the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
        Returns:
        the default
      • setSupport

        public void setSupport​(double value)
        Sets the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
        Parameters:
        value - the support
      • getSupport

        public double getSupport()
        Returns the percentage (0-1 excl) or number of base-classifiers (>= 1) that need to chose the label in order to predict it.
        Returns:
        the support
      • supportTipText

        public String supportTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the gui
      • setSuppressModelOutput

        public void setSuppressModelOutput​(boolean value)
        Sets whether to output the model with the toString() method or not.
        Specified by:
        setSuppressModelOutput in interface ModelOutputHandler
        Parameters:
        value - true if to suppress model output
      • getSuppressModelOutput

        public boolean getSuppressModelOutput()
        Returns whether to output the model with the toString() method or not.
        Specified by:
        getSuppressModelOutput in interface ModelOutputHandler
        Returns:
        the label index
      • suppressModelOutputTipText

        public String suppressModelOutputTipText()
        Returns the tip text for this property.
        Specified by:
        suppressModelOutputTipText in interface ModelOutputHandler
        Returns:
        tip text for this property suitable for displaying in the gui
      • listOptions

        public Enumeration listOptions()
        Returns an enumeration describing the available options.
        Specified by:
        listOptions in interface weka.core.OptionHandler
        Overrides:
        listOptions in class weka.classifiers.MultipleClassifiersCombiner
        Returns:
        an enumeration of all the available options.
      • setOptions

        public void setOptions​(String[] options)
                        throws Exception
        Sets the OptionHandler's options using the given list. All options will be set (or reset) during this call (i.e. incremental setting of options is not possible).
        Specified by:
        setOptions in interface weka.core.OptionHandler
        Overrides:
        setOptions in class weka.classifiers.MultipleClassifiersCombiner
        Parameters:
        options - the list of options as an array of strings
        Throws:
        Exception - if an option is not supported
      • getOptions

        public String[] getOptions()
        Gets the current option settings for the OptionHandler.
        Specified by:
        getOptions in interface weka.core.OptionHandler
        Overrides:
        getOptions in class weka.classifiers.MultipleClassifiersCombiner
        Returns:
        the list of current option settings as an array of strings
      • getCapabilities

        public weka.core.Capabilities getCapabilities()
        Returns the ensemble's capabilities.
        Specified by:
        getCapabilities in interface weka.core.CapabilitiesHandler
        Specified by:
        getCapabilities in interface weka.classifiers.Classifier
        Overrides:
        getCapabilities in class weka.classifiers.MultipleClassifiersCombiner
        Returns:
        the capabilities
      • buildClassifier

        public void buildClassifier​(weka.core.Instances data)
                             throws Exception
        Builds the ensemble.
        Specified by:
        buildClassifier in interface weka.classifiers.Classifier
        Parameters:
        data - the training data
        Throws:
        Exception - if training fails
      • isAbstaining

        protected boolean isAbstaining​(weka.core.Instance instance)
                                throws Exception
        Determines whether to abstain from the prediction.
        Parameters:
        instance - the instance to make the prediction for
        Returns:
        true if to abstain
        Throws:
        Exception - if prediction fails
      • distributionForInstance

        public double[] distributionForInstance​(weka.core.Instance instance)
                                         throws Exception
        Predicts the class memberships for a given instance. If an instance is unclassified, the returned array elements must be all zero. If the class is numeric, the array must consist of only one element, which contains the predicted value.
        Specified by:
        distributionForInstance in interface weka.classifiers.Classifier
        Overrides:
        distributionForInstance in class weka.classifiers.AbstractClassifier
        Parameters:
        instance - the instance to be classified
        Returns:
        an array containing the estimated membership probabilities of the test instance in each class or the numeric prediction, zeroed array if abstained
        Throws:
        Exception - if distribution could not be computed successfully
      • classifyInstance

        public double classifyInstance​(weka.core.Instance instance)
                                throws Exception
        Predicts the class label index for the given instance.
        Specified by:
        classifyInstance in interface weka.classifiers.Classifier
        Overrides:
        classifyInstance in class weka.classifiers.AbstractClassifier
        Parameters:
        instance - the instance to make the prediction for
        Returns:
        the class label index, missing value if abstained
        Throws:
        Exception - if prediction fails
      • canAbstain

        public boolean canAbstain()
        Whether abstaining is possible, e.g., used in meta-classifiers.
        Specified by:
        canAbstain in interface AbstainingClassifier
        Returns:
        true if abstaining is possible
      • getAbstentionClassification

        public double getAbstentionClassification​(weka.core.Instance inst)
                                           throws Exception
        The prediction that made the classifier abstain.
        Specified by:
        getAbstentionClassification in interface AbstainingClassifier
        Parameters:
        inst - the instance to get the prediction for
        Returns:
        the prediction
        Throws:
        Exception - if fails to make prediction
      • getAbstentionDistribution

        public double[] getAbstentionDistribution​(weka.core.Instance inst)
                                           throws Exception
        The class distribution that made the classifier abstain.
        Specified by:
        getAbstentionDistribution in interface AbstainingClassifier
        Parameters:
        inst - the instance to get the prediction for
        Returns:
        the class distribution
        Throws:
        Exception - if fails to make prediction
      • toString

        public String toString()
        Outputs the ensemble model.
        Overrides:
        toString in class Object
        Returns:
        the model