|
||||||||||
| 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 is learned via EM. One well known example is a 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, 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.models.AbstractModel |
|---|
alphabets, length |
| Constructor Summary | |
|---|---|
protected |
SharedStructureMixture(FSDAGModel[] 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(FSDAGModel[] m,
StructureLearner.ModelType model,
byte order,
int starts,
double[] weights,
double alpha,
TerminationCondition tc)
Creates a new SharedStructureMixture instance with fixed
component weights. |
|
SharedStructureMixture(FSDAGModel[] 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.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,
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(FSDAGModel[],
de.jstacs.models.discrete.inhomogeneous.StructureLearner.ModelType, byte, int, boolean, double[], double, TerminationCondition)
public SharedStructureMixture(FSDAGModel[] 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(FSDAGModel[],
de.jstacs.models.discrete.inhomogeneous.StructureLearner.ModelType, byte, int, boolean, double[], double, TerminationCondition)
protected SharedStructureMixture(FSDAGModel[] 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,
MixtureModel.MixtureModel(int, de.jstacs.models.Model[], int,
boolean, double[], double[], de.jstacs.models.mixture.AbstractMixtureModel.Algorithm, double, TerminationCondition,
de.jstacs.models.mixture.AbstractMixtureModel.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,
MixtureModel.MixtureModel(StringBuffer)| 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(); 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 cloning
public 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 yetFSDAGModel.getStructure()public String getInstanceName()
Model
getInstanceName in interface ModelgetInstanceName in class AbstractMixtureModelpublic StringBuffer toXML()
StorableStringBuffer of an
instance of the implementing class.
toXML in interface StorabletoXML in class AbstractMixtureModel
protected void fromXML(StringBuffer representation)
throws NonParsableException
AbstractModelStringBuffer. It is the counter part of Storable.toXML().
fromXML in class AbstractMixtureModelrepresentation - the XML representation of the model
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 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 | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||