public class SharedStructureMixture extends MixtureTrainSM
AbstractMixtureTrainSM.Algorithm, AbstractMixtureTrainSM.Parameterization
algorithm, algorithmHasBeenRun, alternativeModel, best, burnInTest, componentHyperParams, compProb, counter, dimension, estimateComponentProbs, file, filereader, filewriter, initialIteration, logWeights, model, optimizeModel, sample, samplingIndex, seqWeights, sostream, starts, stationaryIteration, weights
alphabets, length
Modifier | Constructor and Description |
---|---|
protected |
SharedStructureMixture(FSDAGTrainSM[] m,
StructureLearner.ModelType model,
byte order,
int starts,
boolean estimateComponentProbs,
double[] weights,
double alpha,
TerminationCondition tc)
Creates a new
SharedStructureMixture instance with all relevant
values. |
|
SharedStructureMixture(FSDAGTrainSM[] m,
StructureLearner.ModelType model,
byte order,
int starts,
double[] weights,
double alpha,
TerminationCondition tc)
Creates a new
SharedStructureMixture instance with fixed
component weights. |
|
SharedStructureMixture(FSDAGTrainSM[] m,
StructureLearner.ModelType model,
byte order,
int starts,
double alpha,
TerminationCondition tc)
Creates a new
SharedStructureMixture instance which estimates the
component probabilities/weights. |
|
SharedStructureMixture(StringBuffer xml)
The standard constructor for the interface
Storable . |
Modifier and Type | Method and Description |
---|---|
SharedStructureMixture |
clone()
Follows the conventions of
Object 's clone() -method. |
protected void |
fromXML(StringBuffer representation)
This method should only be used by the constructor that works on a
StringBuffer . |
String |
getInstanceName()
Should return a short instance name such as iMM(0), BN(2), ...
|
protected void |
getNewParameters(int iteration,
double[][] seqWeights,
double[] w)
This method trains the internal models on the internal data set and the
given weights.
|
String |
getStructure()
Returns a
String representation of the structure of the used
models. |
StringBuffer |
toXML()
This method returns an XML representation as
StringBuffer of an
instance of the implementing class. |
doFirstIteration, doFirstIteration, emitDataSetUsingCurrentParameterSet, getLogProbUsingCurrentParameterSetFor, getNewWeights, setTrainData, toString
algorithmHasBeenRun, checkLength, checkModelsForGibbsSampling, continueIterations, continueIterations, createSeqWeightsArray, doFirstIteration, doFirstIteration, draw, emitDataSet, extendSampling, extractFurtherInformation, finalize, getCharacteristics, getFurtherInformation, getIndexOfMaximalComponentFor, getLogPriorTerm, getLogPriorTermForComponentProbs, getLogProbFor, getLogProbFor, getLogProbFor, getLogScoreFor, getModel, getModels, getMRG, getMRGParams, getNameOfAlgorithm, getNewComponentProbs, getNewParametersForModel, getNumberOfComponents, getNumericalCharacteristics, getScoreForBestRun, getWeights, initModelForSampling, initWithPrior, isInitialized, isInSamplingMode, iterate, iterate, max, modifyWeights, parseNextParameterSet, parseParameterSet, samplingStopped, setAlpha, setOutputStream, setWeights, swap, train
check, getAlphabetContainer, getLength, getLogProbFor, getLogProbFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getMaximalMarkovOrder, toString, train
public SharedStructureMixture(FSDAGTrainSM[] m, StructureLearner.ModelType model, byte order, int starts, double alpha, TerminationCondition tc) throws IllegalArgumentException, WrongAlphabetException, CloneNotSupportedException
SharedStructureMixture
instance which estimates the
component probabilities/weights.m
- the single models building the mixture modelmodel
- the type of the modelorder
- the order of the modelstarts
- the number of times the algorithm will be started in the
train
-method, at least 1alpha
- the positive parameter for the Dirichlet distribution which is
used when you invoke train
to initialize the
gammas, it is recommended to use alpha = 1
(uniform distribution on a simplex)tc
- the TerminationCondition
for stopping the EM-algorithm,
tc
has to return true
from TerminationCondition.isSimple()
IllegalArgumentException
- if
dimension < 1
weights != null && weights.length != dimension
weights != null
and it exists an
i
where weights[i] < 0
starts < 1
componentHyperParams
(hyperparameters for
the component assignment prior) are not correct
WrongAlphabetException
- if not all models work on the same alphabetCloneNotSupportedException
- if the models can not be clonedStructureLearner.ModelType
,
SharedStructureMixture(FSDAGTrainSM[],
de.jstacs.sequenceScores.statisticalModels.trainable.discrete.inhomogeneous.StructureLearner.ModelType, byte, int, boolean, double[], double, TerminationCondition)
public SharedStructureMixture(FSDAGTrainSM[] m, StructureLearner.ModelType model, byte order, int starts, double[] weights, double alpha, TerminationCondition tc) throws IllegalArgumentException, WrongAlphabetException, CloneNotSupportedException
SharedStructureMixture
instance with fixed
component weights.m
- the single models building the mixture modelmodel
- the type of the modelorder
- the order of the modelstarts
- the number of times the algorithm will be started in the
train
-method, at least 1weights
- null
or the weights for the components (then
weights.length == models.length
)alpha
- the positive parameter for the Dirichlet distribution which is
used when you invoke train
to initialize the
gammas, it is recommended to use alpha = 1
(uniform distribution on a simplex)tc
- the TerminationCondition
for stopping the EM-algorithm,
tc
has to return true
from TerminationCondition.isSimple()
IllegalArgumentException
- if
dimension < 1
weights != null && weights.length != dimension
weights != null
and it exists an
i
where weights[i] < 0
starts < 1
componentHyperParams
(hyperparameters for
the component assignment prior) are not correct
WrongAlphabetException
- if not all models work on the same alphabetCloneNotSupportedException
- if the models can not be clonedStructureLearner.ModelType
,
SharedStructureMixture(FSDAGTrainSM[],
de.jstacs.sequenceScores.statisticalModels.trainable.discrete.inhomogeneous.StructureLearner.ModelType, byte, int, boolean, double[], double, TerminationCondition)
protected SharedStructureMixture(FSDAGTrainSM[] m, StructureLearner.ModelType model, byte order, int starts, boolean estimateComponentProbs, double[] weights, double alpha, TerminationCondition tc) throws IllegalArgumentException, WrongAlphabetException, CloneNotSupportedException
SharedStructureMixture
instance with all relevant
values. This constructor is used by the other main constructors.m
- the single models building the mixture modelmodel
- the type of the modelorder
- the order of the modelstarts
- the number of times the algorithm will be started in the
train
-method, at least 1estimateComponentProbs
- the switch for estimating the component probabilities in the
algorithm or to hold them fixed; if the component parameters
are fixed, the values of weights
will be used,
otherwise the componentHyperParams
(hyperparameters for the component assignment prior) will be
incorporated in the adjustmentweights
- null
or the weights for the components (then
weights.length == models.length
)alpha
- the positive parameter for the Dirichlet distribution which is
used when you invoke train
to initialize the
gammas, it is recommended to use alpha = 1
(uniform distribution on a simplex)tc
- the TerminationCondition
for stopping the EM-algorithm,
tc
has to return true
from TerminationCondition.isSimple()
IllegalArgumentException
- if
dimension < 1
weights != null && weights.length != dimension
weights != null
and it exists an
i
where weights[i] < 0
starts < 1
componentHyperParams
(hyperparameters for
the component assignment prior) are not correct
WrongAlphabetException
- if not all models work on the same alphabetCloneNotSupportedException
- if the models can not be clonedStructureLearner.ModelType
,
MixtureTrainSM.MixtureTrainSM(int,
de.jstacs.sequenceScores.statisticalModels.trainable.TrainableStatisticalModel[],
int, boolean, double[], double[], de.jstacs.sequenceScores.statisticalModels.trainable.mixture.AbstractMixtureTrainSM.Algorithm, double,
TerminationCondition, de.jstacs.sequenceScores.statisticalModels.trainable.mixture.AbstractMixtureTrainSM.Parameterization, int, int, de.jstacs.sampling.BurnInTest)
public SharedStructureMixture(StringBuffer xml) throws NonParsableException
Storable
.
Creates a new SharedStructureMixture
out of its XML
representation.xml
- the XML representation as StringBuffer
NonParsableException
- if the SharedStructureMixture
could not be
reconstructed out of the XML representation (the
StringBuffer
could not be parsed)Storable
,
MixtureTrainSM.MixtureTrainSM(StringBuffer)
public SharedStructureMixture clone() throws CloneNotSupportedException
AbstractTrainableStatisticalModel
Object
's clone()
-method.clone
in interface SequenceScore
clone
in interface TrainableStatisticalModel
clone
in class AbstractMixtureTrainSM
AbstractTrainableStatisticalModel
(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 o
CloneNotSupportedException
- if something went wrong while cloningpublic String getStructure() throws NotTrainedException
String
representation of the structure of the used
models.String
representation of the structure of the used
modelsNotTrainedException
- if the classifier is not trained yetFSDAGTrainSM.getStructure()
public String getInstanceName()
SequenceScore
getInstanceName
in interface SequenceScore
getInstanceName
in class AbstractMixtureTrainSM
public StringBuffer toXML()
Storable
StringBuffer
of an
instance of the implementing class.toXML
in interface Storable
toXML
in class AbstractMixtureTrainSM
protected void fromXML(StringBuffer representation) throws NonParsableException
AbstractTrainableStatisticalModel
StringBuffer
. It is the counter part of Storable.toXML()
.fromXML
in class AbstractMixtureTrainSM
representation
- the XML representation of the modelNonParsableException
- if the StringBuffer
is not parsable or the
representation is conflictingAbstractTrainableStatisticalModel.AbstractTrainableStatisticalModel(StringBuffer)
protected void getNewParameters(int iteration, double[][] seqWeights, double[] w) throws Exception
AbstractMixtureTrainSM
getNewParameters
in class AbstractMixtureTrainSM
iteration
- the number of times this method has been invokedseqWeights
- the weights for each model and sequencew
- the weights for the componentsException
- if the training of the internal models went wrong