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

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.BalancedWinnow
All Implemented Interfaces:
BinaryClassifierLearner, ClassifierLearner, java.io.Serializable, java.lang.Cloneable

public class BalancedWinnow
extends OnlineBinaryClassifierLearner
implements java.io.Serializable

Created on Sep 22, 2005

Author:
Vitor R. Carvalho Balanced Winnow algorithm as described in "Learning Quickly when Irrelevant Attributes Abound: a new linear-threshold algorithm", N. Littlestone, Machine Learning, 1988. Notation and some implementation details from "Mistake-Driven 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
 class BalancedWinnow.MyClassifier
           
 
Constructor Summary
BalancedWinnow()
           
BalancedWinnow(boolean voted)
          Constructor: voted="true" (more stable) or "false"(more aggressive)
BalancedWinnow(double a, double b, boolean voted)
           
 
Method Summary
 void addExample(Example example2)
          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.
 double localscore(Instance ins)
           
static void main(java.lang.String[] args)
           
 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

BalancedWinnow

public BalancedWinnow()

BalancedWinnow

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

Parameters:
voted -

BalancedWinnow

public BalancedWinnow(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 example2)
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

localscore

public double localscore(Instance ins)

toString

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

main

public static void main(java.lang.String[] args)