edu.cmu.minorthird.classify.algorithms.linear
Class Winnow

java.lang.Object
  extended by edu.cmu.minorthird.classify.OnlineClassifierLearner
      extended by edu.cmu.minorthird.classify.OnlineBinaryClassifierLearner
          extended by edu.cmu.minorthird.classify.algorithms.linear.Winnow
All Implemented Interfaces:
BinaryClassifierLearner, ClassifierLearner, java.io.Serializable, java.lang.Cloneable

public class Winnow
extends OnlineBinaryClassifierLearner
implements java.io.Serializable

Created on Sep 21, 2005

Author:
Vitor R. Carvalho Winnow algorithm as described in "Learning Quickly when Irrelevant Attributes Abound: a new linear-threshold algorithm", N. Littlestone, Machine Learning, 1988. Some implementation details also described in: Learning in Text Categorization", I. Dagan, Y. Karov, D. Roth, EMNLP, 1997. Additionally, it implements 2 optional features: (a) update when examples don't satisfy a margin requirement (margin parameter) (b) optionally, classify with a voting scheme. (voted parameter)
See Also:
Serialized Form

Nested Class Summary
static class Winnow.MyClassifier
           
 
Constructor Summary
Winnow()
           
Winnow(boolean voted)
          Constructor: voted="true" (more stable) or "false"(more aggressive)
Winnow(double a, double b, boolean voted)
           
 
Method Summary
 void addExample(Example example1)
          Subclasses should use this method to perform whatever incremental update is needed after in response to a new example.
 Classifier getClassifier()
          Subclasses should use this method to return the current classifier.
static Example normalizeWeights(Example ex, boolean dummy)
          1- adds a dummy feature(optional) 2- Divides the weights of features by the sum of the norm of of all features in Example
 void reset()
          'forget' everything about the last learning task, and start a new task.
 java.lang.String toString()
           
 void updateVotedHyperplane(double count)
           
 
Methods inherited from class edu.cmu.minorthird.classify.OnlineBinaryClassifierLearner
getBinaryClassifier, getSchema, setSchema
 
Methods inherited from class edu.cmu.minorthird.classify.OnlineClassifierLearner
completeTraining, copy, hasNextQuery, nextQuery, setInstancePool
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.cmu.minorthird.classify.ClassifierLearner
completeTraining, copy, hasNextQuery, nextQuery, setInstancePool
 

Constructor Detail

Winnow

public Winnow()

Winnow

public Winnow(boolean voted)
Constructor: voted="true" (more stable) or "false"(more aggressive)

Parameters:
voted -

Winnow

public Winnow(double a,
              double b,
              boolean voted)
Method Detail

reset

public void reset()
Description copied from class: OnlineClassifierLearner
'forget' everything about the last learning task, and start a new task. Subclasses need to implement this method

Specified by:
reset in interface ClassifierLearner
Specified by:
reset in class OnlineClassifierLearner

addExample

public void addExample(Example example1)
Description copied from class: OnlineClassifierLearner
Subclasses should use this method to perform whatever incremental update is needed after in response to a new example.

Specified by:
addExample in interface ClassifierLearner
Specified by:
addExample in class OnlineClassifierLearner

updateVotedHyperplane

public void updateVotedHyperplane(double count)

getClassifier

public Classifier getClassifier()
Description copied from class: OnlineClassifierLearner
Subclasses should use this method to return the current classifier.

Specified by:
getClassifier in interface ClassifierLearner
Specified by:
getClassifier in class OnlineClassifierLearner

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

normalizeWeights

public static Example normalizeWeights(Example ex,
                                       boolean dummy)
1- adds a dummy feature(optional) 2- Divides the weights of features by the sum of the norm of of all features in Example