|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.jstacs.sequenceScores.statisticalModels.trainable.AbstractTrainableStatisticalModel
de.jstacs.sequenceScores.statisticalModels.trainable.mixture.AbstractMixtureTrainSM
de.jstacs.sequenceScores.statisticalModels.trainable.mixture.MixtureTrainSM
de.jstacs.sequenceScores.statisticalModels.trainable.discrete.inhomogeneous.shared.SharedStructureMixture
public class SharedStructureMixture
This class handles a mixture of models with the same structure that is learned via EM. One well known example is a mixture of trees.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.mixture.AbstractMixtureTrainSM |
---|
AbstractMixtureTrainSM.Algorithm, AbstractMixtureTrainSM.Parameterization |
Field Summary |
---|
Fields inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.mixture.AbstractMixtureTrainSM |
---|
algorithm, algorithmHasBeenRun, alternativeModel, best, burnInTest, componentHyperParams, compProb, counter, dimension, estimateComponentProbs, file, filereader, filewriter, initialIteration, logWeights, model, optimizeModel, sample, samplingIndex, seqWeights, sostream, starts, stationaryIteration, weights |
Fields inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.AbstractTrainableStatisticalModel |
---|
alphabets, length |
Constructor Summary | |
---|---|
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 . |
Method Summary | |
---|---|
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 sample 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. |
Methods inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.mixture.MixtureTrainSM |
---|
doFirstIteration, doFirstIteration, emitDataSetUsingCurrentParameterSet, getLogProbUsingCurrentParameterSetFor, getNewWeights, setTrainData, toString |
Methods inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.AbstractTrainableStatisticalModel |
---|
check, getAlphabetContainer, getLength, getLogProbFor, getLogProbFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getMaximalMarkovOrder, train |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
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 alphabet
CloneNotSupportedException
- 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 alphabet
CloneNotSupportedException
- 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 alphabet
CloneNotSupportedException
- 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)
Method Detail |
---|
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
models
NotTrainedException
- 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 model
NonParsableException
- 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 components
Exception
- if the training of the internal models went wrong
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |