public class FSDAGModelForGibbsSampling extends FSDAGTrainSM implements GibbsSamplingModel
FSDAGTrainSM) that can be used in a Gibbs sampling.AbstractMixtureTrainSM| Modifier and Type | Field and Description |
|---|---|
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. |
constraintsDEFAULT_STREAM, sostreamparams, trainedalphabets, length| Constructor and Description |
|---|
FSDAGModelForGibbsSampling(FSDAGModelForGibbsSamplingParameterSet params)
The default constructor.
|
FSDAGModelForGibbsSampling(StringBuffer representation)
This is the constructor for the
Storable interface. |
| Modifier and Type | Method and Description |
|---|---|
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(DataSet data,
double[] weights)
This method draws the parameter of the model from the likelihood or the
posterior, respectively.
|
void |
drawParameters(DataSet 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(DataSet data,
double[] weights)
Trains the
TrainableStatisticalModel object given the data as DataSet using
the specified weights. |
void |
train(DataSet data,
double[] weights,
int[][] graph)
Computes the model with structure
graph. |
getInstanceName, getMaximalMarkovOrder, getStructure, getXMLTag, set, traincheckAcyclic, createConstraints, emitDataSet, estimateParameters, getLogPriorTerm, getLogProbFor, getNumericalCharacteristics, toStringcheck, setOutputStreamfromXML, getCurrentParameterSet, getDescription, getESS, isInitialized, toXMLgetAlphabetContainer, getCharacteristics, getLength, getLogProbFor, getLogProbFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, toString, trainprotected File[] paramsFile
protected int[] counter
protected int samplingIndex
protected BufferedWriter writer
paramsFile in a sampling.protected BufferedReader reader
paramsFile after a sampling.public FSDAGModelForGibbsSampling(FSDAGModelForGibbsSamplingParameterSet params) throws CloneNotSupportedException, IllegalArgumentException, NonParsableException
params - the parameter setCloneNotSupportedException - if the parameter set could not be clonedIllegalArgumentException - if the parameter set is not instantiatedNonParsableException - if the parameter set is not parsablepublic FSDAGModelForGibbsSampling(StringBuffer representation) throws NonParsableException
Storable interface.
Creates a new FSDAGModelForGibbsSampling out of its XML
representation.representation - the XML representation as StringBufferNonParsableException - if the StringBuffer could not be parsed.public FSDAGModelForGibbsSampling clone() throws CloneNotSupportedException
reader is set to null and
the paramsFile is cloned.clone in interface SequenceScoreclone in interface TrainableStatisticalModelclone in class DAGTrainSMAbstractTrainableStatisticalModel
(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
AbstractTrainableStatisticalModel. 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 oCloneNotSupportedException - if something went wrong while cloningDAGTrainSM.clone(),
Object.clone()public boolean parseNextParameterSet()
SamplingComponentparseNextParameterSet 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 settrue if the parameter set could be parsedNumberFormatExceptionIOExceptionSamplingComponent.parseNextParameterSet()public void initForSampling(int starts)
throws IOException
SamplingComponentinitForSampling in interface SamplingComponentstarts - the number of different sampling starts that will be doneIOException - if something went wrongFile.createTempFile(String, String, java.io.File )public void extendSampling(int sampling,
boolean extend)
throws IOException
SamplingComponentextendSampling in interface SamplingComponentsampling - the index of the samplingextend - whether to append the sampled parameters to an existing file
or to overwrite the fileIOException - if the file could not be handled correctlypublic void drawParameters(DataSet data, double[] weights) throws Exception
DAGTrainSMdrawParameters in interface GibbsSamplingModeldrawParameters in class DAGTrainSMdata - the given dataweights - the weights for the sequences in the dataException - if something went wrong while counting or drawingConstraintManager.countInhomogeneous(de.jstacs.data.AlphabetContainer,
int, DataSet, double[], boolean,
de.jstacs.sequenceScores.statisticalModels.trainable.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()
DiscreteGraphicalTrainSMStringBuffer.getFurtherModelInfos in class DAGTrainSMDiscreteGraphicalTrainSM.toXML()protected void setFurtherModelInfos(StringBuffer xml) throws NonParsableException
DiscreteGraphicalTrainSMStringBuffer.setFurtherModelInfos in class DAGTrainSMxml - contains the model information like parameters of the
distribution etc. in XML formatNonParsableException - if the StringBuffer could not be parsedDiscreteGraphicalTrainSM.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 falsepublic void drawParameters(DataSet data, double[] weights, int[][] graph) throws Exception
FSDAGTrainSMnull. Furthermore this method enables you to
specify a new graph structure.drawParameters in class FSDAGTrainSMdata - a DataSet or nullweights - the (positive) weights for each sequence of the DataSet
or nullgraph - the graph or null for the current graphException - if something went wrongDAGTrainSM.drawParameters(DataSet, double[]),
DAGTrainSM.checkAcyclic(int, int[][])public void train(DataSet data, double[] weights) throws Exception
TrainableStatisticalModelTrainableStatisticalModel object given the data as DataSet 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 data set 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 TrainableStatisticalModeltrain in class FSDAGTrainSMdata - the given sequences as DataSetweights - the weights of the elements, each weight should be
non-negativeException - if the training did not succeed (e.g. the dimension of
weights and the number of sequences in the
data set do not match)DataSet.getElementAt(int),
DataSet.ElementEnumeratorpublic void train(DataSet data, double[] weights, int[][] graph) throws Exception
FSDAGTrainSMgraph.train in class FSDAGTrainSMdata - the DataSetweights - the weights for the sequences in the DataSetgraph - the graphException - if something went wrongprotected void finalize()
throws Throwable
public void acceptParameters()
throws IOException
SamplingComponentacceptParameters in interface SamplingComponentIOException - if the file could not be handled correctly