|
||||||||||
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.MRFScoringFunction
public final class MRFScoringFunction
This class implements the scoring function for any MRF.
Field Summary |
---|
Fields inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction |
---|
alphabets, length, r |
Fields inherited from interface de.jstacs.scoringFunctions.ScoringFunction |
---|
UNKNOWN |
Constructor Summary | |
---|---|
MRFScoringFunction(AlphabetContainer alphabets,
int length,
double ess,
String constr)
This is the main constructor. |
|
MRFScoringFunction(AlphabetContainer alphabets,
int length,
String constr)
This constructor creates an instance with ess 0. |
|
MRFScoringFunction(StringBuffer source)
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. |
MRFScoringFunction |
clone()
Creates a clone (deep copy) of the current ScoringFunction instance. |
protected void |
fromXML(StringBuffer representation)
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)
Returns the log score for the sequence |
double |
getLogScoreAndPartialDerivation(Sequence seq,
int start,
IntList indices,
DoubleList partialDer)
Returns the log score for the sequence and fills the list with the indices and the partial derivations. |
double |
getNormalizationConstant()
Returns the sum of the scores over all sequences of the event space. |
int |
getNumberOfParameters()
The number of parameters in this scoring function. |
double |
getPartialNormalizationConstant(int parameterIndex)
Returns the partial normalization constant for the parameter with index parameterIndex . |
int |
getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
Returns the size of the event space of the random variables that are affected by parameter no. |
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. |
void |
setParameters(double[] params,
int start)
This method sets the internal parameters to the values of params between start and
start + this.getNumberOfParameters() - 1 |
StringBuffer |
toXML()
This method returns an XML-representation of an instance of the implementing class. |
Methods inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction |
---|
getAlphabetContainer, getInitialClassParam, getLength, getLogScore, getLogScoreAndPartialDerivation, getNumberOfRecommendedStarts, isNormalized, isNormalized |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public MRFScoringFunction(AlphabetContainer alphabets, int length, String constr)
alphabets
- the AlphabetContainerlength
- the length of the sequences respectively the modelconstr
- the constraints that are used for the model, see ConstraintManager.extract(int, String)
MRFScoringFunction(AlphabetContainer, int, double, String)
public MRFScoringFunction(AlphabetContainer alphabets, int length, double ess, String constr)
alphabets
- the AlphabetContainerlength
- the length of the sequences respectively the modeless
- the equivalent sample size (ess)constr
- the constraints that are used for the model, see ConstraintManager.extract(int, String)
public MRFScoringFunction(StringBuffer source) throws NonParsableException
Storable
.
source
- the xml representation
NonParsableException
- if the representation could not be parsed.Method Detail |
---|
protected void fromXML(StringBuffer representation) throws NonParsableException
AbstractNormalizableScoringFunction
fromXML
in class AbstractNormalizableScoringFunction
representation
- the XML representation
NonParsableException
- if the StringBuffer could not be parsed.public MRFScoringFunction clone() throws CloneNotSupportedException
ScoringFunction
ScoringFunction
instance.
clone
in interface ScoringFunction
clone
in class AbstractNormalizableScoringFunction
CloneNotSupportedException
public double getLogScore(Sequence seq, int start)
ScoringFunction
seq
- the sequencestart
- the startposition in the sequence
public double getLogScoreAndPartialDerivation(Sequence seq, int start, IntList indices, DoubleList partialDer)
ScoringFunction
seq
- the sequencestart
- the startposition in the sequenceindices
- after method invocation the list should contain the indices i where \frac{\partial \log
score(seq)}{\partial \lambda_i} is not zeropartialDer
- after method invocation the list should contain the corresponding \frac{\partial \log
score(seq)}{\partial \lambda_i}
public int getNumberOfParameters()
ScoringFunction
UNKNOWN
.
ScoringFunction.UNKNOWN
public String getInstanceName()
ScoringFunction
public void setParameters(double[] params, int start)
ScoringFunction
params
between start
and
start + this.getNumberOfParameters() - 1
params
- the parametersstart
- the start indexpublic StringBuffer toXML()
Storable
public void initializeFunction(int index, boolean freeParams, Sample[] data, double[][] weights) throws Exception
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 samples
- Throws:
Exception
public void initializeFunctionRandomly(boolean freeParams) throws Exception
ScoringFunction
freeParams
- if true, the (reduced) parameterization is used
Exception
public double getNormalizationConstant()
NormalizableScoringFunction
public double getPartialNormalizationConstant(int parameterIndex) throws Exception
NormalizableScoringFunction
parameterIndex
. This is
the partial derivation of the normalization constant for the parameter with index parameterIndex
\frac{\partial Z(\lambda)}{\partial \lambda_{index}}
.
parameterIndex
- the index of the parameter
Exception
- if something went wrong with the Normalizationpublic double getEss()
NormalizableScoringFunction
public int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
NormalizableScoringFunction
index
,
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 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)
NormalizableScoringFunction
getLogPriorTerm()
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 double[] getCurrentParameterValues() throws Exception
ScoringFunction
getNumberOfParameters()
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.
Exception
- is thrown if no parameters exist, yetpublic boolean isInitialized()
ScoringFunction
ScoringFunction.initializeFunction(int, boolean, Sample[], double[][])
.
true
if the model is initialized
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |