|
||||||||||
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.mixture.AbstractMixtureModel
de.jstacs.models.mixture.MixtureModel
de.jstacs.models.discrete.inhomogeneous.shared.SharedStructureMixture
public class SharedStructureMixture
This class handles a mixture of models with the same structure that are learned via EM. One well known example are mixture of trees.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class de.jstacs.models.mixture.AbstractMixtureModel |
---|
AbstractMixtureModel.Algorithm, AbstractMixtureModel.Parameterization |
Field Summary |
---|
Fields inherited from class de.jstacs.models.mixture.AbstractMixtureModel |
---|
algorithm, algorithmHasBeenRun, alternativeModel, burnInTest, componentHyperParams, compProb, counter, dimension, estimateComponentProbs, file, filereader, filewriter, initialIteration, logWeights, model, optimizeModel, sample, samplingIndex, sostream, starts, stationaryIteration, weights |
Fields inherited from class de.jstacs.models.AbstractModel |
---|
alphabets, length |
Constructor Summary | |
---|---|
protected |
SharedStructureMixture(FSDAGModel[] m,
StructureLearner.ModelType model,
byte order,
int starts,
boolean estimateComponentProbs,
double[] weights,
double alpha,
double epsilon)
This constructor is used from the other main constructors. |
|
SharedStructureMixture(FSDAGModel[] m,
StructureLearner.ModelType model,
byte order,
int starts,
double[] weights,
double alpha,
double epsilon)
This main constructor creates an instance with fixed component weights. |
|
SharedStructureMixture(FSDAGModel[] m,
StructureLearner.ModelType model,
byte order,
int starts,
double alpha,
double epsilon)
This main constructor creates an instance which estimates the component probabilities. |
|
SharedStructureMixture(StringBuffer xml)
The constructor for the Storable interface. |
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 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()
|
StringBuffer |
toXML()
This method returns an XML-representation of an instance of the implementing class. |
Methods inherited from class de.jstacs.models.mixture.MixtureModel |
---|
doFirstIteration, doFirstIteration, emitSampleUsingCurrentParameterSet, getLogProbUsingCurrentParameterSetFor, getNewWeights, setTrainData, toString |
Methods inherited from class de.jstacs.models.AbstractModel |
---|
getAlphabetContainer, getLength, getLogProbFor, getLogProbFor, getLogProbFor, getMaximalMarkovOrder, getPriorTerm, getProbFor, getProbFor, setNewAlphabetContainerInstance, train |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SharedStructureMixture(FSDAGModel[] m, StructureLearner.ModelType model, byte order, int starts, double alpha, double epsilon) throws IllegalArgumentException, WrongAlphabetException, CloneNotSupportedException
m
- the single models building the Mixturemodel
- the model typeorder
- the model orderstarts
- the number of times the algorithm will be started in the train method, at least 1alpha
- the positive parameter for the Dirichlet which is used when you invoke train
to initialize
the gammas. It is recommended to use alpha = 1
(uniform distribution on a simplex).epsilon
- the non-negative threshold for stopping the EM-algorithm
IllegalArgumentException
- if
dimension < 1
weights != null && weights.length != dimension
weights != null
and it exists an i
where weights[i] < 0
starts < 1
WrongAlphabetException
- if not all models
work on the same alphabet
CloneNotSupportedException
- if the models
can not be clonedpublic SharedStructureMixture(FSDAGModel[] m, StructureLearner.ModelType model, byte order, int starts, double[] weights, double alpha, double epsilon) throws IllegalArgumentException, WrongAlphabetException, CloneNotSupportedException
m
- the single models building the Mixturemodel
- the model typeorder
- the model orderstarts
- the number of times the algorithm will be started in the train method, at least 1weights
- null
or the weights for the components (than weights.length == models.length
)alpha
- the positive parameter for the Dirichlet which is used when you invoke train
to initialize
the gammas. It is recommended to use alpha = 1
(uniform distribution on a simplex).epsilon
- the non-negative threshold for stopping the EM-algorithm
IllegalArgumentException
- if
dimension < 1
weights != null && weights.length != dimension
weights != null
and it exists an i
where weights[i] < 0
starts < 1
WrongAlphabetException
- if not all models
work on the same alphabet
CloneNotSupportedException
- if the models
can not be clonedprotected SharedStructureMixture(FSDAGModel[] m, StructureLearner.ModelType model, byte order, int starts, boolean estimateComponentProbs, double[] weights, double alpha, double epsilon) throws IllegalArgumentException, WrongAlphabetException, CloneNotSupportedException
m
- the single models building the Mixturemodel
- the model typeorder
- the model orderstarts
- 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
will be incorporated in the adjustmentweights
- null
or the weights for the components (than weights.length == models.length
)alpha
- the positive parameter for the Dirichlet which is used when you invoke train
to initialize
the gammas. It is recommended to use alpha = 1
(uniform distribution on a simplex).epsilon
- the non-negative threshold for stopping the EM-algorithm
IllegalArgumentException
- if
dimension < 1
weights != null && weights.length != dimension
weights != null
and it exists an i
where weights[i] < 0
starts < 1
WrongAlphabetException
- if not all models
work on the same alphabet
CloneNotSupportedException
- if the models
can not be clonedpublic SharedStructureMixture(StringBuffer xml) throws NonParsableException
Storable
interface.
xml
- the StringBuffer
NonParsableException
- if the StringBuffer is not parsableMethod Detail |
---|
public SharedStructureMixture clone() throws CloneNotSupportedException
AbstractModel
Object
's clone-method.
clone
in interface Model
clone
in class AbstractMixtureModel
AbstractModel
(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();
2. all additional member variables of o
defined by X
that are not of simple data-types like int, double, ... , have to be deeply
copied 3. return o
CloneNotSupportedException
public String getStructure() throws NotTrainedException
NotTrainedException
- if the classifier is not trained yetpublic String getInstanceName()
Model
getInstanceName
in interface Model
getInstanceName
in class AbstractMixtureModel
public StringBuffer toXML()
Storable
toXML
in interface Storable
toXML
in class AbstractMixtureModel
protected void fromXML(StringBuffer representation) throws NonParsableException
AbstractModel
toXML()
.
fromXML
in class AbstractMixtureModel
representation
- the representation
NonParsableException
- if the StringBuffer is not parsable or the representation is conflictingAbstractModel.AbstractModel(StringBuffer)
protected void getNewParameters(int iteration, double[][] seqWeights, double[] w) throws Exception
AbstractMixtureModel
getNewParameters
in class AbstractMixtureModel
iteration
- the number 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 | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |