|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectde.jstacs.models.AbstractModel
de.jstacs.models.discrete.DiscreteGraphicalModel
de.jstacs.models.discrete.inhomogeneous.InhomogeneousDGM
de.jstacs.models.discrete.inhomogeneous.DAGModel
de.jstacs.models.discrete.inhomogeneous.FSDAGModel
de.jstacs.models.discrete.inhomogeneous.FSDAGModelForGibbsSampling
public class FSDAGModelForGibbsSampling
This is the class for a fixed structure directed acyclic graphical model (see
FSDAGModel) that can be used in a Gibbs sampling.
AbstractMixtureModel| Field Summary | |
|---|---|
protected int[] |
counter
The counter for the sampling steps of each sampling. |
protected File[] |
paramsFile
The files for saving the parameters during the sampling. |
protected BufferedReader |
reader
The reader for the paramsFile after a sampling. |
protected int |
samplingIndex
The index of the current sampling. |
protected BufferedWriter |
writer
The writer for the paramsFile in a sampling. |
| Fields inherited from class de.jstacs.models.discrete.inhomogeneous.DAGModel |
|---|
constraints |
| Fields inherited from class de.jstacs.models.discrete.inhomogeneous.InhomogeneousDGM |
|---|
DEFAULT_STREAM, sostream |
| Fields inherited from class de.jstacs.models.discrete.DiscreteGraphicalModel |
|---|
params, trained |
| Fields inherited from class de.jstacs.models.AbstractModel |
|---|
alphabets, length |
| Constructor Summary | |
|---|---|
FSDAGModelForGibbsSampling(FSDAGModelForGibbsSamplingParameterSet params)
The default constructor. |
|
FSDAGModelForGibbsSampling(StringBuffer representation)
This is the constructor for the Storable interface. |
|
| Method Summary | |
|---|---|
void |
acceptParameters()
This methods accepts the drawn parameters. |
FSDAGModelForGibbsSampling |
clone()
In this method the reader is set to null and
the paramsFile is cloned. |
void |
drawParameters(Sample data,
double[] weights)
This method draws the parameter of the model from the likelihood or the posterior, respectively. |
void |
drawParameters(Sample data,
double[] weights,
int[][] graph)
This method draws the parameters of the model from the a posteriori density. |
void |
extendSampling(int sampling,
boolean extend)
This method allows to extend a sampling. |
protected void |
finalize()
|
protected StringBuffer |
getFurtherModelInfos()
Returns further model information as a StringBuffer. |
void |
initForSampling(int starts)
This method initializes the instance for the sampling. |
boolean |
isInSamplingMode()
This method returns true if the object is currently used in
a sampling, otherwise false. |
boolean |
parseNextParameterSet()
This method allows the user to parse the next set of parameters (from a file). |
boolean |
parseParameterSet(int sampling,
int n)
This method allows the user to parse the set of parameters with index n of a certain sampling (from a file). |
void |
samplingStopped()
This method is the opposite of the method SamplingComponent.extendSampling(int, boolean). |
protected void |
setFurtherModelInfos(StringBuffer xml)
This method replaces the internal model information with those from a StringBuffer. |
void |
train(Sample data,
double[] weights)
Trains the Model object given the data as Sample using
the specified weights. |
void |
train(Sample data,
double[] weights,
int[][] graph)
Computes the model with structure graph. |
| Methods inherited from class de.jstacs.models.discrete.inhomogeneous.FSDAGModel |
|---|
getInstanceName, getMaximalMarkovOrder, getStructure, getXMLTag, set, train |
| Methods inherited from class de.jstacs.models.discrete.inhomogeneous.DAGModel |
|---|
checkAcyclic, createConstraints, emitSample, estimateParameters, getLogPriorTerm, getLogProbFor, getNumericalCharacteristics, getProbFor, toString |
| Methods inherited from class de.jstacs.models.discrete.inhomogeneous.InhomogeneousDGM |
|---|
check, setOutputStream |
| Methods inherited from class de.jstacs.models.discrete.DiscreteGraphicalModel |
|---|
fromXML, getCurrentParameterSet, getDescription, getESS, isTrained, toXML |
| Methods inherited from class de.jstacs.models.AbstractModel |
|---|
getAlphabetContainer, getCharacteristics, getLength, getLogProbFor, getLogProbFor, getLogProbFor, getLogProbFor, getPriorTerm, getProbFor, getProbFor, set, setNewAlphabetContainerInstance, train |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected File[] paramsFile
protected int[] counter
protected int samplingIndex
protected BufferedWriter writer
paramsFile in a sampling.
protected BufferedReader reader
paramsFile after a sampling.
| Constructor Detail |
|---|
public FSDAGModelForGibbsSampling(FSDAGModelForGibbsSamplingParameterSet params)
throws CloneNotSupportedException,
IllegalArgumentException,
NonParsableException
params - the parameter set
CloneNotSupportedException - if the parameter set could not be cloned
IllegalArgumentException - if the parameter set is not instantiated
NonParsableException - if the parameter set is not parsable
public FSDAGModelForGibbsSampling(StringBuffer representation)
throws NonParsableException
Storable interface.
Creates a new FSDAGModelForGibbsSampling out of its XML
representation.
representation - the XML representation as StringBuffer
NonParsableException - if the StringBuffer could not be parsed.| Method Detail |
|---|
public FSDAGModelForGibbsSampling clone()
throws CloneNotSupportedException
reader is set to null and
the paramsFile is cloned.
clone in interface Modelclone in class DAGModelAbstractModel
(the member-AlphabetContainer isn't deeply cloned since
it is assumed to be immutable). The type of the returned object
is defined by the class X directly inherited from
AbstractModel. Hence X's
clone()-method should work as:Object o = (X)super.clone(); o defined by
X that are not of simple data-types like
int, double, ... have to be deeply
copied return o
CloneNotSupportedException - if something went wrong while cloningDAGModel.clone(),
Object.clone()public boolean parseNextParameterSet()
SamplingComponent
parseNextParameterSet in interface SamplingComponenttrue if the parameters could be parsed, otherwise
falseSamplingComponent.parseParameterSet(int, int)
public boolean parseParameterSet(int sampling,
int n)
throws NumberFormatException,
IOException
SamplingComponentn of a certain sampling (from a file). The
internal numbering should start with 0. The parameter set with index 0 is
the initial (random) parameter set. It is recommended that a series of
parameter sets is accessed by the following lines:
for( sampling = 0; sampling < numSampling; sampling++ )
{
while( b )
{
//do something
b = parseNextParameterSet();
}
parseParameterSet in interface SamplingComponentsampling - the index of the samplingn - the index of the parameter set
true if the parameter set could be parsed
NumberFormatException
IOExceptionSamplingComponent.parseNextParameterSet()
public void initForSampling(int starts)
throws IOException
SamplingComponent
initForSampling in interface SamplingComponentstarts - the number of different sampling starts that will be done
IOException - if something went wrongFile.createTempFile(String, String, java.io.File )
public void extendSampling(int sampling,
boolean extend)
throws IOException
SamplingComponent
extendSampling in interface SamplingComponentsampling - the index of the samplingextend - whether to append the sampled parameters to an existing file
or to overwrite the file
IOException - if the file could not be handled correctly
public void drawParameters(Sample data,
double[] weights)
throws Exception
DAGModel
drawParameters in interface GibbsSamplingModeldrawParameters in class DAGModeldata - the given dataweights - the weights for the sequences in the data
Exception - if something went wrong while counting or drawingConstraintManager.countInhomogeneous(de.jstacs.data.AlphabetContainer,
int, Sample, double[], boolean,
de.jstacs.models.discrete.Constraint...),
ConstraintManager.drawFreqs(double, InhCondProb...)
public void samplingStopped()
throws IOException
SamplingComponentSamplingComponent.extendSampling(int, boolean). It can be
used for closing any streams of writer, ...
samplingStopped in interface SamplingComponentIOException - if something went wrongSamplingComponent.extendSampling(int, boolean)protected StringBuffer getFurtherModelInfos()
DiscreteGraphicalModelStringBuffer.
getFurtherModelInfos in class DAGModelDiscreteGraphicalModel.toXML()
protected void setFurtherModelInfos(StringBuffer xml)
throws NonParsableException
DiscreteGraphicalModelStringBuffer.
setFurtherModelInfos in class DAGModelxml - contains the model information like parameters of the
distribution etc. in XML format
NonParsableException - if the StringBuffer could not be parsedDiscreteGraphicalModel.fromXML(StringBuffer)public boolean isInSamplingMode()
SamplingComponenttrue if the object is currently used in
a sampling, otherwise false.
isInSamplingMode in interface SamplingComponenttrue if the object is currently used in a sampling,
otherwise false
public void drawParameters(Sample data,
double[] weights,
int[][] graph)
throws Exception
FSDAGModelnull. Furthermore this method enables you to
specify a new graph structure.
drawParameters in class FSDAGModeldata - a Sample or nullweights - the (positive) weights for each sequence of the Sample
or nullgraph - the graph or null for the current graph
Exception - if something went wrongDAGModel.drawParameters(Sample, double[]),
DAGModel.checkAcyclic(int, int[][])
public void train(Sample data,
double[] weights)
throws Exception
ModelModel object given the data as Sample using
the specified weights. The weight at position i belongs to the element at
position i. So the array weight should have the number of
sequences in the sample as dimension. (Optionally it is possible to use
weight == null if all weights have the value one.)train(data1); train(data2)
should be a fully trained model over data2 and not over
data1+data2. All parameters of the model were given by the
call of the constructor.
train in interface Modeltrain in class FSDAGModeldata - the given sequences as Sampleweights - the weights of the elements, each weight should be
non-negative
Exception - if the training did not succeed (e.g. the dimension of
weights and the number of sequences in the
sample do not match)Sample.getElementAt(int),
Sample.ElementEnumerator
public void train(Sample data,
double[] weights,
int[][] graph)
throws Exception
FSDAGModelgraph.
train in class FSDAGModeldata - the Sampleweights - the weights for the sequences in the Samplegraph - the graph
Exception - if something went wrong
protected void finalize()
throws Throwable
finalize in class ObjectThrowable
public void acceptParameters()
throws IOException
SamplingComponent
acceptParameters in interface SamplingComponentIOException - if the file could not be handled correctly
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||