|
||||||||||
| 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 cloned
public 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 cloned
protected 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 cloned
public SharedStructureMixture(StringBuffer xml)
throws NonParsableException
Storable interface.
xml - the StringBuffer
NonParsableException - if the StringBuffer is not parsable| Method Detail |
|---|
public SharedStructureMixture clone()
throws CloneNotSupportedException
AbstractModelObject's clone-method.
clone in interface Modelclone in class AbstractMixtureModelAbstractModel (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 ModelgetInstanceName in class AbstractMixtureModelpublic StringBuffer toXML()
Storable
toXML in interface StorabletoXML in class AbstractMixtureModel
protected void fromXML(StringBuffer representation)
throws NonParsableException
AbstractModeltoXML().
fromXML in class AbstractMixtureModelrepresentation - 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 AbstractMixtureModeliteration - 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 | |||||||||