Class AODEsr

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, UpdateableClassifier, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

    public class AODEsr
    extends Classifier
    implements OptionHandler, WeightedInstancesHandler, UpdateableClassifier, TechnicalInformationHandler
    AODEsr augments AODE with Subsumption Resolution.AODEsr detects specializations between two attribute values at classification time and deletes the generalization attribute value.
    For more information, see:
    Fei Zheng, Geoffrey I. Webb: Efficient Lazy Elimination for Averaged-One Dependence Estimators. In: Proceedings of the Twenty-third International Conference on Machine Learning (ICML 2006), 1113-1120, 2006.

    BibTeX:

     @inproceedings{Zheng2006,
        author = {Fei Zheng and Geoffrey I. Webb},
        booktitle = {Proceedings of the Twenty-third International Conference on Machine  Learning (ICML 2006)},
        pages = {1113-1120},
        publisher = {ACM Press},
        title = {Efficient Lazy Elimination for Averaged-One Dependence Estimators},
        year = {2006},
        ISBN = {1-59593-383-2}
     }
     

    Valid options are:

     -D
      Output debugging information
     
     -C
      Impose a critcal value for specialization-generalization relationship
      (default is 50)
     -F
      Impose a frequency limit for superParents
      (default is 1)
     -L
      Using Laplace estimation
      (default is m-esimation (m=1))
     -M
      Weight value for m-estimation
      (default is 1.0)
    Version:
    $Revision: 5516 $
    Author:
    Fei Zheng, Janice Boughton
    See Also:
    Serialized Form
    • Constructor Detail

      • AODEsr

        public AODEsr()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing this classifier
        Returns:
        a description of the classifier suitable for displaying in the explorer/experimenter gui
      • getTechnicalInformation

        public TechnicalInformation getTechnicalInformation()
        Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
        Specified by:
        getTechnicalInformation in interface TechnicalInformationHandler
        Returns:
        the technical information about this class
      • buildClassifier

        public void buildClassifier​(Instances instances)
                             throws java.lang.Exception
        Generates the classifier.
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        instances - set of instances serving as training data
        Throws:
        java.lang.Exception - if the classifier has not been generated successfully
      • updateClassifier

        public void updateClassifier​(Instance instance)
        Updates the classifier with the given instance.
        Specified by:
        updateClassifier in interface UpdateableClassifier
        Parameters:
        instance - the new training instance to include in the model
        Throws:
        java.lang.Exception - if the instance could not be incorporated in the model.
      • distributionForInstance

        public double[] distributionForInstance​(Instance instance)
                                         throws java.lang.Exception
        Calculates the class membership probabilities for the given test instance.
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        instance - the instance to be classified
        Returns:
        predicted class probability distribution
        Throws:
        java.lang.Exception - if there is a problem generating the prediction
      • NBconditionalProb

        public double NBconditionalProb​(Instance instance,
                                        int classVal)
                                 throws java.lang.Exception
        Calculates the probability of the specified class for the given test instance, using naive Bayes.
        Parameters:
        instance - the instance to be classified
        classVal - the class for which to calculate the probability
        Returns:
        predicted class probability
        Throws:
        java.lang.Exception - if there is a problem generating the prediction
      • MEstimate

        public double MEstimate​(double frequency,
                                double total,
                                double numValues)
        Returns the probability estimate, using m-estimate
        Parameters:
        frequency - frequency of value of interest
        total - count of all values
        numValues - number of different values
        Returns:
        the probability estimate
      • LaplaceEstimate

        public double LaplaceEstimate​(double frequency,
                                      double total,
                                      double numValues)
        Returns the probability estimate, using laplace correction
        Parameters:
        frequency - frequency of value of interest
        total - count of all values
        numValues - number of different values
        Returns:
        the probability estimate
      • listOptions

        public java.util.Enumeration listOptions()
        Returns an enumeration describing the available options
        Specified by:
        listOptions in interface OptionHandler
        Overrides:
        listOptions in class Classifier
        Returns:
        an enumeration of all the available options
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.Exception
        Parses a given list of options.

        Valid options are:

         -D
          Output debugging information
         
         -C
          Impose a critcal value for specialization-generalization relationship
          (default is 50)
         -F
          Impose a frequency limit for superParents
          (default is 1)
         -L
          Using Laplace estimation
          (default is m-esimation (m=1))
         -M
          Weight value for m-estimation
          (default is 1.0)
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class Classifier
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • getOptions

        public java.lang.String[] getOptions()
        Gets the current settings of the classifier.
        Specified by:
        getOptions in interface OptionHandler
        Overrides:
        getOptions in class Classifier
        Returns:
        an array of strings suitable for passing to setOptions
      • mestWeightTipText

        public java.lang.String mestWeightTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setMestWeight

        public void setMestWeight​(double w)
        Sets the weight for m-estimate
        Parameters:
        w - the weight
      • getMestWeight

        public double getMestWeight()
        Gets the weight used in m-estimate
        Returns:
        the weight for m-estimation
      • useLaplaceTipText

        public java.lang.String useLaplaceTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getUseLaplace

        public boolean getUseLaplace()
        Gets if laplace correction is being used.
        Returns:
        Value of m_Laplace.
      • setUseLaplace

        public void setUseLaplace​(boolean value)
        Sets if laplace correction is to be used.
        Parameters:
        value - Value to assign to m_Laplace.
      • frequencyLimitTipText

        public java.lang.String frequencyLimitTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setFrequencyLimit

        public void setFrequencyLimit​(int f)
        Sets the frequency limit
        Parameters:
        f - the frequency limit
      • getFrequencyLimit

        public int getFrequencyLimit()
        Gets the frequency limit.
        Returns:
        the frequency limit
      • criticalValueTipText

        public java.lang.String criticalValueTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setCriticalValue

        public void setCriticalValue​(int c)
        Sets the critical value
        Parameters:
        c - the critical value
      • getCriticalValue

        public int getCriticalValue()
        Gets the critical value.
        Returns:
        the critical value
      • toString

        public java.lang.String toString()
        Returns a description of the classifier.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a description of the classifier as a string.
      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - the options