weka.classifiers.functions
Class Winnow

java.lang.Object
  extended by weka.classifiers.Classifier
      extended by weka.classifiers.functions.Winnow
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, UpdateableClassifier, CapabilitiesHandler, OptionHandler, 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: 1.12 $
Author:
J. Lindgren (jtlindgr at cs.helsinki.fi)
See Also:
Serialized Form

Constructor Summary
Winnow()
           
 
Method Summary
 java.lang.String alphaTipText()
          Returns the tip text for this property
 java.lang.String balancedTipText()
          Returns the tip text for this property
 java.lang.String betaTipText()
          Returns the tip text for this property
 void buildClassifier(Instances insts)
          Builds the classifier
 double classifyInstance(Instance inst)
          Outputs the prediction for the given instance.
 java.lang.String defaultWeightTipText()
          Returns the tip text for this property
 double getAlpha()
          Get the value of Alpha.
 boolean getBalanced()
          Get the value of Balanced.
 double getBeta()
          Get the value of Beta.
 Capabilities getCapabilities()
          Returns default capabilities of the classifier.
 double getDefaultWeight()
          Get the value of defaultWeight.
 int getNumIterations()
          Get the value of numIterations.
 java.lang.String[] getOptions()
          Gets the current settings of the classifier.
 int getSeed()
          Get the value of Seed.
 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.
 double getThreshold()
          Get the value of Threshold.
 java.lang.String globalInfo()
          Returns a string describing classifier
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
static void main(java.lang.String[] argv)
          Main method.
 java.lang.String numIterationsTipText()
          Returns the tip text for this property
 java.lang.String seedTipText()
          Returns the tip text for this property
 void setAlpha(double a)
          Set the value of Alpha.
 void setBalanced(boolean b)
          Set the value of Balanced.
 void setBeta(double b)
          Set the value of Beta.
 void setDefaultWeight(double w)
          Set the value of defaultWeight.
 void setNumIterations(int v)
          Set the value of numIterations.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.

Valid options are:

 void setSeed(int v)
          Set the value of Seed.
 void setThreshold(double t)
          Set the value of Threshold.
 java.lang.String thresholdTipText()
          Returns the tip text for this property
 java.lang.String toString()
          Returns textual description of the classifier.
 void updateClassifier(Instance instance)
          Updates the classifier with a new learning example
 
Methods inherited from class weka.classifiers.Classifier
debugTipText, distributionForInstance, forName, getDebug, makeCopies, makeCopy, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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

getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
getCapabilities in interface CapabilitiesHandler
Overrides:
getCapabilities in class Classifier
Returns:
the capabilities of this classifier
See Also:
Capabilities

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