|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectde.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
de.jstacs.scoringFunctions.VariableLengthScoringFunction
de.jstacs.scoringFunctions.homogeneous.HomogeneousScoringFunction
de.jstacs.scoringFunctions.homogeneous.HMMScoringFunction
public class HMMScoringFunction
This scoring function implements a homogeneous Markov model of arbitrary order for any sequence length. The scoring function uses the parametrization of Meila if one uses the free parameters, which yields in a non-concave lo conditional likelihood.
| Field Summary |
|---|
| Fields inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction |
|---|
alphabets, length, r |
| Fields inherited from interface de.jstacs.scoringFunctions.ScoringFunction |
|---|
UNKNOWN |
| Constructor Summary | |
|---|---|
HMMScoringFunction(AlphabetContainer alphabets,
int order,
double classEss,
double[] sumOfHyperParams,
boolean plugIn,
boolean optimize,
int starts)
This is the main constructor. |
|
HMMScoringFunction(StringBuffer xml)
This is the constructor for Storable. |
|
| Method Summary | |
|---|---|
void |
addGradientOfLogPriorTerm(double[] grad,
int start)
This method computes the gradient of getLogPriorTerm() for each parameter of this model. |
HMMScoringFunction |
clone()
Creates a clone (deep copy) of the current ScoringFunction instance. |
Sample |
emit(int numberOfSequences,
int... seqLength)
This method returns a Sample object containing artificial sequence(s). |
protected void |
fromXML(StringBuffer xml)
This method is called in the constructor to create a scoring function from a StringBuffer |
double[] |
getCurrentParameterValues()
Returns a double array of dimension getNumberOfParameters() containing the current parameter
values. |
double |
getEss()
Returns the equivalent sample size of this model, i.e. the equivalent sample size for the class or component that is represented by this model. |
String |
getInstanceName()
Returns a short instance name. |
double |
getLogPriorTerm()
This method computes a value that is proportional to getESS()*Math.log( getNormalizationConstant() ) + Math.log( prior ). |
double |
getLogScore(Sequence seq,
int start,
int length)
This method computes the logarithm of the score for a given subsequence. |
double |
getLogScoreAndPartialDerivation(Sequence seq,
int start,
int length,
IntList indices,
DoubleList dList)
This method computes the logarithm of the score and the partial derivations for a given subsequence. |
int |
getMaximalMarkovOrder()
Returns the maximal used markov oder. |
double |
getNormalizationConstant(int length)
This method returns the normalization constant for a given sequence length. |
int |
getNumberOfParameters()
The number of parameters in this scoring function. |
int |
getNumberOfRecommendedStarts()
This method return the number of recommended optimization starts. |
double |
getPartialNormalizationConstant(int parameterIndex,
int length)
This method returns the partial normalization constant for a given parameter index and sequence length. |
int |
getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
Returns the size of the event space of the random variables that are affected by parameter no. |
double[] |
getStationarySymbolDistribution()
This method returns the stationary symbol distribution. |
void |
initializeFunction(int index,
boolean freeParams,
Sample[] data,
double[][] weights)
This method creates the underlying structure of the scoring function. |
void |
initializeFunctionRandomly(boolean freeParams)
This method initializes the scoring function randomly. |
boolean |
isInitialized()
This method can be used to determine whether the model is initialized. |
boolean |
isNormalized()
This method returns whether the implemented score is already normalized to 1. |
void |
setParameterOptimization(boolean optimize)
This method allows the user specify whether the parameters should be optimized or not. |
void |
setParameters(double[] params,
int start)
This method sets the internal parameters to the values of params between start and
start + this.getNumberOfParameters() - 1 |
void |
setStatisticForHyperparameters(int[] length,
double[] weight)
This method sets the hyperparameters for the model parameters by evaluating the given statistic. |
String |
toString()
|
StringBuffer |
toXML()
This method returns an XML-representation of an instance of the implementing class. |
| Methods inherited from class de.jstacs.scoringFunctions.VariableLengthScoringFunction |
|---|
getLogScore, getLogScoreAndPartialDerivation, getNormalizationConstant, getPartialNormalizationConstant |
| Methods inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction |
|---|
getAlphabetContainer, getInitialClassParam, getLength, getLogScore, getLogScoreAndPartialDerivation, isNormalized |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public HMMScoringFunction(AlphabetContainer alphabets,
int order,
double classEss,
double[] sumOfHyperParams,
boolean plugIn,
boolean optimize,
int starts)
alphabets - the alphabet containerorder - the oder of the model (has to be non-negative)classEss - the ess of the classsumOfHyperParams - the sum of the hyperparameter for each order (length has to be order, each entry has to be non-negative)plugIn - a switch which enables to used the MAP-parameters as plug-in parametersoptimize - a switch which enables to optimize or fix the parametersstarts - the number of recommended starts
public HMMScoringFunction(StringBuffer xml)
throws NonParsableException
Storable.
xml - the xml representation
NonParsableException - if the representation could not be parsed.| Method Detail |
|---|
public HMMScoringFunction clone()
throws CloneNotSupportedException
ScoringFunctionScoringFunction instance.
clone in interface ScoringFunctionclone in class AbstractNormalizableScoringFunctionCloneNotSupportedExceptionpublic String getInstanceName()
ScoringFunction
public double getLogScore(Sequence seq,
int start,
int length)
VariableLengthScoringFunction
getLogScore in class VariableLengthScoringFunctionseq - the sequencestart - the start indexlength - the end index
ScoringFunction.getLogScore(Sequence, int)
public double getLogScoreAndPartialDerivation(Sequence seq,
int start,
int length,
IntList indices,
DoubleList dList)
VariableLengthScoringFunction
getLogScoreAndPartialDerivation in class VariableLengthScoringFunctionseq - the sequencestart - the start indexlength - the end indexindices - the list for the indices of the parametersdList - the list for the partial derivations
ScoringFunction.getLogScoreAndPartialDerivation(Sequence, int, IntList,
DoubleList)public int getNumberOfParameters()
ScoringFunctionUNKNOWN.
ScoringFunction.UNKNOWN
public void setParameters(double[] params,
int start)
ScoringFunctionparams between start and
start + this.getNumberOfParameters() - 1
params - the parametersstart - the start indexpublic StringBuffer toXML()
Storable
public double[] getCurrentParameterValues()
ScoringFunctiongetNumberOfParameters() containing the current parameter
values. If on e likes to use these parameters to start an optimization it is highly recommended to invoke
ScoringFunction.initializeFunction(int, boolean, Sample[], double[][]) before. After an optimization
this method can be used to get the current parameter values.
public void initializeFunction(int index,
boolean freeParams,
Sample[] data,
double[][] weights)
ScoringFunction
index - the index of the class the scoring function modelsfreeParams - if true, the (reduced) parameterization is useddata - the samplesweights - the weights of the sequences in the samplespublic void initializeFunctionRandomly(boolean freeParams)
ScoringFunction
freeParams - if true, the (reduced) parameterization is used
protected void fromXML(StringBuffer xml)
throws NonParsableException
AbstractNormalizableScoringFunction
fromXML in class AbstractNormalizableScoringFunctionxml - the XML representation
NonParsableException - if the StringBuffer could not be parsed.public int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
NormalizableScoringFunctionindex,
i.e. the product of the sizes of the alphabets at the position of each random variable affected by parameter
index. For DNA-alphabets this corresponds to 4 for a PWM, 16 for a WAM except position 0, ...
index - the index of the parameter
public double getNormalizationConstant(int length)
VariableLengthScoringFunction
getNormalizationConstant in class VariableLengthScoringFunctionlength - the sequence length
NormalizableScoringFunction.getNormalizationConstant()
public double getPartialNormalizationConstant(int parameterIndex,
int length)
throws Exception
VariableLengthScoringFunction
getPartialNormalizationConstant in class VariableLengthScoringFunctionparameterIndex - the index of the parameterlength - the sequence length
Exception - if something went wrongNormalizableScoringFunction.getPartialNormalizationConstant(int)public double getEss()
NormalizableScoringFunction
public String toString()
toString in class Objectpublic double getLogPriorTerm()
NormalizableScoringFunction
getESS()*Math.log( getNormalizationConstant() ) + Math.log( prior ).
prior is the prior for the parameters of this model.
- Returns:
getESS()*Math.log( getNormalizationConstant() ) + Math.log( prior )- See Also:
NormalizableScoringFunction.getEss(),
NormalizableScoringFunction.getNormalizationConstant()
public void addGradientOfLogPriorTerm(double[] grad,
int start)
NormalizableScoringFunctiongetLogPriorTerm() for each parameter of this model. The
results are added to the array grad beginning at index start.
grad - the gradientstart - the start index in the grad array, where the partial derivations for the parameters of
this models shall be enterNormalizableScoringFunction.getLogPriorTerm()public boolean isNormalized()
NormalizableScoringFunctionfalse.
isNormalized in interface NormalizableScoringFunctionisNormalized in class AbstractNormalizableScoringFunctionpublic boolean isInitialized()
ScoringFunctionScoringFunction.initializeFunction(int, boolean, Sample[], double[][]).
true if the model is initializedpublic int getMaximalMarkovOrder()
HomogeneousScoringFunction
getMaximalMarkovOrder in class HomogeneousScoringFunctionpublic int getNumberOfRecommendedStarts()
ScoringFunction
getNumberOfRecommendedStarts in interface ScoringFunctiongetNumberOfRecommendedStarts in class AbstractNormalizableScoringFunctionpublic void setParameterOptimization(boolean optimize)
optimize - whether the parameters should be optimized or not.public double[] getStationarySymbolDistribution()
VariableLengthScoringFunctionde.jstacs.motifDiscovery.Mutable#expand(int, double[], double[], double),
de.jstacs.motifDiscovery.Mutable#shift(double[], double[], double) and
de.jstacs.motifDiscovery.Mutable#shrink(double[], double[], double).
getStationarySymbolDistribution in class VariableLengthScoringFunctionMutable
public void setStatisticForHyperparameters(int[] length,
double[] weight)
throws Exception
VariableLengthScoringFunctionlength) and how often (weight) they have been seen.
setStatisticForHyperparameters in class VariableLengthScoringFunctionlength - the non-negative lengths of the sequencesweight - the non-negative weight for the corresponding sequence
Exception - if something went wrongMutable
public Sample emit(int numberOfSequences,
int... seqLength)
throws Exception
emitSample( int n, int l ) returns a sample with n sequences of length l.
emitSample( int n, int[] l ) should return a sample with n sequences which have a sequence length corresponding to the entry in the array
numberOfSequences - the number of sequences that should be contained in the returned sampleseqLength - the length of the sequences
Exception - an Exception should be thrown if the emission did not succeed.
NotTrainedException - a NotTrainedException should be thrown if the model is not trained yet.Sample
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||