Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## de.jstacs.models.discrete.inhomogeneous
Class DAGModel

    java.lang.Object
      de.jstacs.models.AbstractModel
          de.jstacs.models.discrete.DiscreteGraphicalModel
              de.jstacs.models.discrete.inhomogeneous.InhomogeneousDGM
                  de.jstacs.models.discrete.inhomogeneous.DAGModel

All Implemented Interfaces:
  InstantiableFromParameterSet, Model, Storable, Cloneable

Direct Known Subclasses:
  BayesianNetworkModel, FSDAGModel

    public abstract class DAGModel

extends InhomogeneousDGM

The abstract class for directed acyclic graphical models (`DAGModel`).

Author:
  Jens Keilwagen

Field Summary
`protected InhCondProb[]` | `constraints` The constraints for the model.

Fields inherited from class de.jstacs.models.discrete.inhomogeneous.InhomogeneousDGM
`DEFAULT_STREAM, sostream`

Fields inherited from class de.jstacs.models.discrete.DiscreteGraphicalModel
`params, trained`

Fields inherited from class de.jstacs.models.AbstractModel
`alphabets, length`

Constructor Summary
`protected` | `DAGModel(IDGMParameterSet params)` This is the main constructor.
`protected` | `DAGModel(StringBuffer xml)` The standard constructor for the interface `Storable`.

Method Summary
`protected static boolean` | `checkAcyclic(int length, int[][] graph)` This method checks whether a given graph is acyclic.
`DAGModel` | `clone()` Follows the conventions of `Object`'s `clone()`-method.
`protected void` | `createConstraints(int[][] structure)` This method creates the constraints for a given structure.
`protected void` | `drawParameters(Sample data, double[] weights)` This method draws the parameter of the model from the likelihood or the posterior, respectively.
`Sample` | `emitSample(int n, int... lengths)` This method returns a `Sample` object containing artificial sequence(s).
`protected void` | `estimateParameters(Sample data, double[] weights)` This method estimates the parameter of the model from the likelihood or the posterior, respectively.
`protected StringBuffer` | `getFurtherModelInfos()` Returns further model information as a `StringBuffer`.
`double` | `getLogPriorTerm()` Returns a value that is proportional to the log of the prior.
`double` | `getLogProbFor(Sequence sequence, int startpos, int endpos)` Returns the logarithm of the probability of (a part of) the given sequence given the model.
`NumericalResultSet` | `getNumericalCharacteristics()` Returns the subset of numerical values that are also returned by `Model.getCharacteristics()`.
`double` | `getProbFor(Sequence sequence, int startpos, int endpos)` Returns the probability of (a part of) the given sequence given the model.
`String` | `getStructure()` Returns a `String` representation of the underlying graph.
`protected void` | `setFurtherModelInfos(StringBuffer xml)` This method replaces the internal model information with those from a `StringBuffer`.
`String` | `toString()` Should give a simple representation (text) of the model as `String` .

Methods inherited from class de.jstacs.models.discrete.inhomogeneous.InhomogeneousDGM
`check, set, setOutputStream`

Methods inherited from class de.jstacs.models.discrete.DiscreteGraphicalModel
`fromXML, getCurrentParameterSet, getDescription, getESS, getXMLTag, isTrained, toXML`

Methods inherited from class de.jstacs.models.AbstractModel
`getAlphabetContainer, getCharacteristics, getLength, getLogProbFor, getLogProbFor, getLogProbFor, getLogProbFor, getMaximalMarkovOrder, getPriorTerm, getProbFor, getProbFor, set, setNewAlphabetContainerInstance, train`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface de.jstacs.models.Model
`getInstanceName, train`

Field Detail

### constraints

    protected InhCondProb[] constraints

  The constraints for the model.

Constructor Detail

### DAGModel

    protected DAGModel(IDGMParameterSet params)
                throws CloneNotSupportedException,
                       IllegalArgumentException,
                       NonParsableException

  This is the main constructor. It creates a new `DAGModel` from the given `IDGMParameterSet`.

  Parameters:
    `params` - the given parameter set
  Throws:
    `CloneNotSupportedException` - if the parameter set could not be cloned
    `IllegalArgumentException` - if the parameter set is not instantiated
    `NonParsableException` - if the parameter set is not parsable
  See Also:
    `InhomogeneousDGM.InhomogeneousDGM(IDGMParameterSet)`

### DAGModel

    protected DAGModel(StringBuffer xml)
                throws NonParsableException

  The standard constructor for the interface `Storable`. Creates a new `DAGModel` out of its XML representation.

  Parameters:
    `xml` - the XML representation as `StringBuffer`
  Throws:
    `NonParsableException` - if the `DAGModel` could not be reconstructed out of the XML representation (the `StringBuffer` could not be parsed)
  See Also:
    `Storable`, `InhomogeneousDGM.InhomogeneousDGM(StringBuffer)`

Method Detail

### clone

    public DAGModel clone()
                   throws CloneNotSupportedException

  Description copied from class: `AbstractModel`
  Follows the conventions of `Object`'s `clone()`-method.

  Specified by:
    `clone` in interface `Model`
  Overrides:
    `clone` in class `InhomogeneousDGM`
  Returns:
    an object, that is a copy of the current `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:
    1. `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`
  Throws:
    `CloneNotSupportedException` - if something went wrong while cloning

### emitSample

    public Sample emitSample(int n,
                             int... lengths)
                      throws NotTrainedException,
                             Exception

  Description copied from interface: `Model`
  This method returns a `Sample` object containing artificial sequence(s).
  There are two different possibilities to create a sample for a model with length 0 (homogeneous models).
  1. `emitSample( int n, int l )` should return a sample with `n` sequences of length `l`.
  2. `emitSample( int n, int[] l )` should return a sample with `n` sequences which have a sequence length corresponding to the entry in the given array `l`.
  There are two different possibilities to create a sample for a model with length greater than 0 (inhomogeneous models).
  `emitSample( int n )` and `emitSample( int n, null )` should return a sample with `n` sequences of length of the model ( `Model.getLength()`).
  The standard implementation throws an `Exception`.

  Specified by:
    `emitSample` in interface `Model`
  Overrides:
    `emitSample` in class `AbstractModel`
  Parameters:
    `n` - the number of sequences that should be contained in the returned sample
    `lengths` - the length of the sequences for a homogeneous model; for an inhomogeneous model this parameter should be `null` or an array of size 0.
  Returns:
    a `Sample` containing the artificial sequence(s)
  Throws:
    `NotTrainedException` - if the model is not trained yet
    `Exception` - if the emission did not succeed
  See Also:
    `Sample`

### getLogPriorTerm

    public double getLogPriorTerm()
                           throws Exception

  Description copied from interface: `Model`
  Returns a value that is proportional to the log of the prior. For maximum likelihood (ML) 0 should be returned.

  Returns:
    a value that is proportional to the log of the prior
  Throws:
    `Exception` - if something went wrong
  See Also:
    `Model.getPriorTerm()`

### getLogProbFor

    public double getLogProbFor(Sequence sequence,
                                int startpos,
                                int endpos)
                         throws NotTrainedException,
                                Exception

  Description copied from interface: `Model`
  Returns the logarithm of the probability of (a part of) the given sequence given the model. If at least one random variable is continuous the value of density function is returned.
  For more details see `Model.getProbFor(Sequence, int, int)`

  Specified by:
    `getLogProbFor` in interface `Model`
  Overrides:
    `getLogProbFor` in class `AbstractModel`
  Parameters:
    `sequence` - the given sequence
    `startpos` - the start position within the given sequence
    `endpos` - the last position to be taken into account
  Returns:
    the logarithm of the probability or the value of the density function of (the part of) the given sequence given the model
  Throws:
    `NotTrainedException` - if the model is not trained yet
    `Exception` - if the sequence could not be handled (e.g. `startpos >` , `endpos > sequence.length`, ...) by the model
  See Also:
    `Model.getProbFor(Sequence, int, int)`

### getNumericalCharacteristics

    public NumericalResultSet getNumericalCharacteristics()

  Description copied from interface: `Model`
  Returns the subset of numerical values that are also returned by `Model.getCharacteristics()`.

  Returns:
    the numerical characteristics of the current instance of the model

### getProbFor

    public double getProbFor(Sequence sequence,
                             int startpos,
                             int endpos)
                      throws NotTrainedException,
                             Exception

  Description copied from interface: `Model`
  Returns the probability of (a part of) the given sequence given the model. If at least one random variable is continuous the value of density function is returned.
  It extends the possibility given by the method `Model.getProbFor(Sequence, int)` by the fact, that the model could be e.g. homogeneous and therefore the length of the sequences, whose probability should be returned, is not fixed. Additionally the end position of the part of the given sequence is given and the probability of the part from position `startpos` to `endpos` (inclusive) should be returned.
  The `length` and the `alphabets` define the type of data that can be modeled and therefore both has to be checked.

  Parameters:
    `sequence` - the given sequence
    `startpos` - the start position within the given sequence
    `endpos` - the last position to be taken into account
  Returns:
    the probability or the value of the density function of (the part of) the given sequence given the model
  Throws:
    `NotTrainedException` - if the model is not trained yet
    `Exception` - if the sequence could not be handled (e.g. `startpos > endpos`, `endpos > sequence.length`, ...) by the model

### getStructure

    public String getStructure()
                        throws NotTrainedException

  Description copied from class: `InhomogeneousDGM`
  Returns a `String` representation of the underlying graph.

  Specified by:
    `getStructure` in class `InhomogeneousDGM`
  Returns:
    a `String` representation of the underlying graph
  Throws:
    `NotTrainedException` - if the structure is not set, this can only be the case if the model is not trained

### toString

    public String toString()

  Description copied from interface: `Model`
  Should give a simple representation (text) of the model as `String` .

  Specified by:
    `toString` in interface `Model`
  Overrides:
    `toString` in class `DiscreteGraphicalModel`
  Returns:
    the representation as `String`

### checkAcyclic

    protected static boolean checkAcyclic(int length,
                                          int[][] graph)

  This method checks whether a given graph is acyclic.

  Parameters:
    `length` - the sequence length (which corresponds to the number of nodes in the graph)
    `graph` - the specified graph
  Returns:
    `true` if the given graph is acyclic, `false` otherwise

### createConstraints

    protected void createConstraints(int[][] structure)

  This method creates the constraints for a given structure.

  Parameters:
    `structure` - the specified structure

### drawParameters

    protected void drawParameters(Sample data,
                                  double[] weights)
                           throws Exception

  This method draws the parameter of the model from the likelihood or the posterior, respectively.

  Parameters:
    `data` - the given data
    `weights` - the weights for the sequences in the data
  Throws:
    `Exception` - if something went wrong while counting or drawing
  See Also:
    `ConstraintManager.countInhomogeneous(de.jstacs.data.AlphabetContainer, int, Sample, double[], boolean, de.jstacs.models.discrete.Constraint...)`, `ConstraintManager.drawFreqs(double, InhCondProb...)`

### estimateParameters

    protected void estimateParameters(Sample data,
                                      double[] weights)
                               throws Exception

  This method estimates the parameter of the model from the likelihood or the posterior, respectively.

  Parameters:
    `data` - the data
    `weights` - the weights for the sequences in the data
  Throws:
    `Exception` - if something went wrong while counting or estimating
  See Also:
    `drawParameters(Sample, double[])`

### getFurtherModelInfos

    protected StringBuffer getFurtherModelInfos()

  Description copied from class: `DiscreteGraphicalModel`
  Returns further model information as a `StringBuffer`.

  Specified by:
    `getFurtherModelInfos` in class `DiscreteGraphicalModel`
  Returns:
    further model information like parameters of the distribution etc. in XML format
  See Also:
    `DiscreteGraphicalModel.toXML()`

### setFurtherModelInfos

    protected void setFurtherModelInfos(StringBuffer xml)
                                 throws NonParsableException

  Description copied from class: `DiscreteGraphicalModel`
  This method replaces the internal model information with those from a `StringBuffer`.

  Specified by:
    `setFurtherModelInfos` in class `DiscreteGraphicalModel`
  Parameters:
    `xml` - contains the model information like parameters of the distribution etc. in XML format
  Throws:
    `NonParsableException` - if the `StringBuffer` could not be parsed
  See Also:
    `DiscreteGraphicalModel.fromXML(StringBuffer)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD