netkit.inference
Class InferenceMethod

java.lang.Object
  extended by netkit.inference.InferenceMethod
All Implemented Interfaces:
Configurable
Direct Known Subclasses:
GibbsSampling, IterativeClassification, NullInference, RelaxationLabeling

public abstract class InferenceMethod
extends java.lang.Object
implements Configurable


Field Summary
protected  Estimate currPrior
           
protected  double[][] idMatrix
           
protected  Estimate initialPrior
           
 java.util.logging.Logger logger
           
protected  int numIterations
           
protected  double[] tmpPredict
           
protected  Node[] unknown
           
 
Constructor Summary
InferenceMethod()
           
 
Method Summary
 void addListener(InferenceMethodListener cl)
           
 Classification classify(NetworkClassifier networkClassifier, java.util.Iterator<Node> unknowns)
           
 void classify(NetworkClassifier networkClassifier, java.util.Iterator<Node> unknowns, Classification result)
           
 void clearListeners()
           
 void configure(Configuration config)
           
 Estimate estimate(NetworkClassifier networkClassifier, java.util.Iterator<Node> unknowns)
           
 void estimate(NetworkClassifier networkClassifier, java.util.Iterator<Node> unknowns, Estimate result)
           
 double getCurrentAccuracy()
           
 Estimate getCurrentEstimate()
           
 double getCurrentTrainingLOOAccuracy(NetworkClassifier nc)
          What is the accuracy on the training data, if we do a leave-one-out estimation, keeping current predictions for the test set.
 Configuration getDefaultConfiguration()
           
abstract  java.lang.String getDescription()
           
 Estimate getInitialPrior()
           
abstract  java.lang.String getName()
           
 boolean getNofifyListeners()
           
 int getNumIterations()
           
abstract  java.lang.String getShortName()
           
protected abstract  boolean iterate(NetworkClassifier networkClassifier)
           
 void notifyListeners(Classification c, int[] unknown)
           
 void notifyListeners(Estimate e, int[] unknown)
           
 void notifyListeners(Graph g, int[] unknown)
           
 void removeListener(InferenceMethodListener cl)
           
 void reset(java.util.Iterator<Node> unknowns)
           
 void savePredictions(java.lang.String outPredict, PrintEstimateWriter pe, boolean append, Node[] eval, java.lang.String header)
           
 void savePredictionsInPajek(java.lang.String pajekFile)
           
 void setInitialPrior(Estimate prior)
           
 void setNofityListeners(boolean notify)
           
 void setNumIterations(int numIterations)
           
 void setShowIterationAccuracies(boolean showItAcc)
           
 void setTruth(Classification truth)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

public final java.util.logging.Logger logger

unknown

protected Node[] unknown

tmpPredict

protected double[] tmpPredict

initialPrior

protected Estimate initialPrior

currPrior

protected Estimate currPrior

idMatrix

protected double[][] idMatrix

numIterations

protected int numIterations
Constructor Detail

InferenceMethod

public InferenceMethod()
Method Detail

getShortName

public abstract java.lang.String getShortName()

getName

public abstract java.lang.String getName()

getDescription

public abstract java.lang.String getDescription()

iterate

protected abstract boolean iterate(NetworkClassifier networkClassifier)

getDefaultConfiguration

public Configuration getDefaultConfiguration()
Specified by:
getDefaultConfiguration in interface Configurable

configure

public void configure(Configuration config)
Specified by:
configure in interface Configurable

reset

public void reset(java.util.Iterator<Node> unknowns)

setShowIterationAccuracies

public void setShowIterationAccuracies(boolean showItAcc)

getCurrentTrainingLOOAccuracy

public double getCurrentTrainingLOOAccuracy(NetworkClassifier nc)
What is the accuracy on the training data, if we do a leave-one-out estimation, keeping current predictions for the test set. This is a pseudo-estimation of how well we are doing in the current iteration.

Returns:

getCurrentAccuracy

public double getCurrentAccuracy()

getCurrentEstimate

public Estimate getCurrentEstimate()

setTruth

public final void setTruth(Classification truth)

savePredictions

public final void savePredictions(java.lang.String outPredict,
                                  PrintEstimateWriter pe,
                                  boolean append,
                                  Node[] eval,
                                  java.lang.String header)

savePredictionsInPajek

public final void savePredictionsInPajek(java.lang.String pajekFile)

estimate

public final Estimate estimate(NetworkClassifier networkClassifier,
                               java.util.Iterator<Node> unknowns)

estimate

public final void estimate(NetworkClassifier networkClassifier,
                           java.util.Iterator<Node> unknowns,
                           Estimate result)

classify

public final Classification classify(NetworkClassifier networkClassifier,
                                     java.util.Iterator<Node> unknowns)

classify

public final void classify(NetworkClassifier networkClassifier,
                           java.util.Iterator<Node> unknowns,
                           Classification result)

setInitialPrior

public final void setInitialPrior(Estimate prior)

getInitialPrior

public final Estimate getInitialPrior()

setNumIterations

public final void setNumIterations(int numIterations)

getNumIterations

public final int getNumIterations()

addListener

public final void addListener(InferenceMethodListener cl)

removeListener

public final void removeListener(InferenceMethodListener cl)

clearListeners

public final void clearListeners()

getNofifyListeners

public final boolean getNofifyListeners()

setNofityListeners

public final void setNofityListeners(boolean notify)

notifyListeners

public final void notifyListeners(Estimate e,
                                  int[] unknown)

notifyListeners

public final void notifyListeners(Classification c,
                                  int[] unknown)

notifyListeners

public final void notifyListeners(Graph g,
                                  int[] unknown)