Class Winnow

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

    public class Winnow
    extends Classifier
    implements UpdateableClassifier, TechnicalInformationHandler
    Implements Winnow and Balanced Winnow algorithms by Littlestone.

    For more information, see

    N. Littlestone (1988). Learning quickly when irrelevant attributes are abound: A new linear threshold algorithm. Machine Learning. 2:285-318.

    N. Littlestone (1989). Mistake bounds and logarithmic linear-threshold learning algorithms. University of California, Santa Cruz.

    Does classification for problems with nominal attributes (which it converts into binary attributes).

    BibTeX:

     @article{Littlestone1988,
        author = {N. Littlestone},
        journal = {Machine Learning},
        pages = {285-318},
        title = {Learning quickly when irrelevant attributes are abound: A new linear threshold algorithm},
        volume = {2},
        year = {1988}
     }
     
     @techreport{Littlestone1989,
        address = {University of California, Santa Cruz},
        author = {N. Littlestone},
        institution = {University of California},
        note = {Technical Report UCSC-CRL-89-11},
        title = {Mistake bounds and logarithmic linear-threshold learning algorithms},
        year = {1989}
     }
     

    Valid options are:

     -L
      Use the baLanced version
      (default false)
     -I <int>
      The number of iterations to be performed.
      (default 1)
     -A <double>
      Promotion coefficient alpha.
      (default 2.0)
     -B <double>
      Demotion coefficient beta.
      (default 0.5)
     -H <double>
      Prediction threshold.
      (default -1.0 == number of attributes)
     -W <double>
      Starting weights.
      (default 2.0)
     -S <int>
      Default random seed.
      (default 1)
    Version:
    $Revision: 5523 $
    Author:
    J. Lindgren (jtlindgr at cs.helsinki.fi)
    See Also:
    Serialized Form
    • Constructor Detail

      • Winnow

        public Winnow()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing classifier
        Returns:
        a description 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
      • 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:

         -L
          Use the baLanced version
          (default false)
         -I <int>
          The number of iterations to be performed.
          (default 1)
         -A <double>
          Promotion coefficient alpha.
          (default 2.0)
         -B <double>
          Demotion coefficient beta.
          (default 0.5)
         -H <double>
          Prediction threshold.
          (default -1.0 == number of attributes)
         -W <double>
          Starting weights.
          (default 2.0)
         -S <int>
          Default random seed.
          (default 1)
        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
      • buildClassifier

        public void buildClassifier​(Instances insts)
                             throws java.lang.Exception
        Builds the classifier
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        insts - the data to train the classifier with
        Throws:
        java.lang.Exception - if something goes wrong during building
      • updateClassifier

        public void updateClassifier​(Instance instance)
                              throws java.lang.Exception
        Updates the classifier with a new learning example
        Specified by:
        updateClassifier in interface UpdateableClassifier
        Parameters:
        instance - the instance to update the classifier with
        Throws:
        java.lang.Exception - if something goes wrong
      • classifyInstance

        public double classifyInstance​(Instance inst)
                                throws java.lang.Exception
        Outputs the prediction for the given instance.
        Overrides:
        classifyInstance in class Classifier
        Parameters:
        inst - the instance for which prediction is to be computed
        Returns:
        the prediction
        Throws:
        java.lang.Exception - if something goes wrong
      • toString

        public java.lang.String toString()
        Returns textual description of the classifier.
        Overrides:
        toString in class java.lang.Object
        Returns:
        textual description of the classifier
      • balancedTipText

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

        public boolean getBalanced()
        Get the value of Balanced.
        Returns:
        Value of Balanced.
      • setBalanced

        public void setBalanced​(boolean b)
        Set the value of Balanced.
        Parameters:
        b - Value to assign to Balanced.
      • alphaTipText

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

        public double getAlpha()
        Get the value of Alpha.
        Returns:
        Value of Alpha.
      • setAlpha

        public void setAlpha​(double a)
        Set the value of Alpha.
        Parameters:
        a - Value to assign to Alpha.
      • betaTipText

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

        public double getBeta()
        Get the value of Beta.
        Returns:
        Value of Beta.
      • setBeta

        public void setBeta​(double b)
        Set the value of Beta.
        Parameters:
        b - Value to assign to Beta.
      • thresholdTipText

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

        public double getThreshold()
        Get the value of Threshold.
        Returns:
        Value of Threshold.
      • setThreshold

        public void setThreshold​(double t)
        Set the value of Threshold.
        Parameters:
        t - Value to assign to Threshold.
      • defaultWeightTipText

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

        public double getDefaultWeight()
        Get the value of defaultWeight.
        Returns:
        Value of defaultWeight.
      • setDefaultWeight

        public void setDefaultWeight​(double w)
        Set the value of defaultWeight.
        Parameters:
        w - Value to assign to defaultWeight.
      • numIterationsTipText

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

        public int getNumIterations()
        Get the value of numIterations.
        Returns:
        Value of numIterations.
      • setNumIterations

        public void setNumIterations​(int v)
        Set the value of numIterations.
        Parameters:
        v - Value to assign to numIterations.
      • seedTipText

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

        public int getSeed()
        Get the value of Seed.
        Returns:
        Value of Seed.
      • setSeed

        public void setSeed​(int v)
        Set the value of Seed.
        Parameters:
        v - Value to assign to Seed.
      • main

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