netkit.inference
Class InferenceMethod
java.lang.Object
netkit.inference.InferenceMethod
- All Implemented Interfaces:
- Configurable
- Direct Known Subclasses:
- GibbsSampling, IterativeClassification, NullInference, RelaxationLabeling
public abstract class InferenceMethod
- extends java.lang.Object
- implements Configurable
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 |
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
InferenceMethod
public InferenceMethod()
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)