de.jstacs.classifiers.differentiableSequenceScoreBased
Class AbstractOptimizableFunction

java.lang.Object
  extended by de.jstacs.algorithms.optimization.DifferentiableFunction
      extended by de.jstacs.classifiers.differentiableSequenceScoreBased.OptimizableFunction
          extended by de.jstacs.classifiers.differentiableSequenceScoreBased.AbstractOptimizableFunction
All Implemented Interfaces:
Function
Direct Known Subclasses:
AbstractMultiThreadedOptimizableFunction

public abstract class AbstractOptimizableFunction
extends OptimizableFunction

This class extends OptimizableFunction and implements some common methods.

Author:
Jens Keilwagen

Nested Class Summary
 
Nested classes/interfaces inherited from class de.jstacs.classifiers.differentiableSequenceScoreBased.OptimizableFunction
OptimizableFunction.KindOfParameter
 
Field Summary
protected  int cl
          The number of different classes.
protected  double[] clazz
          The class parameters.
protected  DataSet[] data
          The data that is used to evaluate this function.
protected  boolean freeParams
          Indicates whether only the free parameters or all should be used.
protected  double[] logClazz
          The logarithm of the class parameters.
protected  boolean norm
          Indicates whether a normalization should be done or not.
protected  double[] sum
          The sums of the weighted data per class and additional the total weight sum.
protected  double[][] weights
          The weights for the data.
 
Constructor Summary
protected AbstractOptimizableFunction(DataSet[] data, double[][] weights, boolean norm, boolean freeParams)
          The constructor creates an instance using the given weighted data.
 
Method Summary
 DataSet[] getData()
          Returns the data for each class used in this OptimizableFunction.
 double[] getParameters(OptimizableFunction.KindOfParameter kind)
          Returns some parameters that can be used for instance as start parameters.
abstract  void getParameters(OptimizableFunction.KindOfParameter kind, double[] erg)
          This method enables the user to get the parameters without creating a new array.
 double[][] getSequenceWeights()
          Returns the weights for each Sequence for each class used in this OptimizableFunction.
 void setDataAndWeights(DataSet[] data, double[][] weights)
          This method sets the data set and the sequence weights to be used.
 
Methods inherited from class de.jstacs.classifiers.differentiableSequenceScoreBased.OptimizableFunction
reset, setParams
 
Methods inherited from class de.jstacs.algorithms.optimization.DifferentiableFunction
evaluateGradientOfFunction, findOneDimensionalMin
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.jstacs.algorithms.optimization.Function
evaluateFunction, getDimensionOfScope
 

Field Detail

data

protected DataSet[] data
The data that is used to evaluate this function.


weights

protected double[][] weights
The weights for the data.

See Also:
data

clazz

protected double[] clazz
The class parameters.


logClazz

protected double[] logClazz
The logarithm of the class parameters.

See Also:
clazz

sum

protected double[] sum
The sums of the weighted data per class and additional the total weight sum.

See Also:
data, weights

cl

protected int cl
The number of different classes.


norm

protected boolean norm
Indicates whether a normalization should be done or not.


freeParams

protected boolean freeParams
Indicates whether only the free parameters or all should be used.

Constructor Detail

AbstractOptimizableFunction

protected AbstractOptimizableFunction(DataSet[] data,
                                      double[][] weights,
                                      boolean norm,
                                      boolean freeParams)
                               throws IllegalArgumentException
The constructor creates an instance using the given weighted data.

Parameters:
data - the data
weights - the weights
norm - the switch for using the normalization (division by the number of sequences)
freeParams - the switch for using only the free parameters
Throws:
IllegalArgumentException - if the number of classes or the dimension of the weights is not correct
Method Detail

setDataAndWeights

public void setDataAndWeights(DataSet[] data,
                              double[][] weights)
                       throws IllegalArgumentException
Description copied from class: OptimizableFunction
This method sets the data set and the sequence weights to be used. It also allows to do further preparation for the computation on this data.

Specified by:
setDataAndWeights in class OptimizableFunction
Parameters:
data - the data sets
weights - the sequence weights for each sequence in each data set
Throws:
IllegalArgumentException - if the data or the weights can not be used

getParameters

public abstract void getParameters(OptimizableFunction.KindOfParameter kind,
                                   double[] erg)
                            throws Exception
This method enables the user to get the parameters without creating a new array.

Parameters:
kind - the kind of the class parameters to be returned in erg
erg - the array for the start parameters
Throws:
Exception - if the array is null or does not have the correct length
See Also:
OptimizableFunction.getParameters(KindOfParameter)

getParameters

public final double[] getParameters(OptimizableFunction.KindOfParameter kind)
                             throws Exception
Description copied from class: OptimizableFunction
Returns some parameters that can be used for instance as start parameters.

Specified by:
getParameters in class OptimizableFunction
Parameters:
kind - the kind of the class parameters that will be returned
Returns:
some start parameters
Throws:
Exception - if something went wrong

getData

public DataSet[] getData()
Description copied from class: OptimizableFunction
Returns the data for each class used in this OptimizableFunction.

Specified by:
getData in class OptimizableFunction
Returns:
the data for each class
See Also:
OptimizableFunction.getSequenceWeights()

getSequenceWeights

public double[][] getSequenceWeights()
Description copied from class: OptimizableFunction
Returns the weights for each Sequence for each class used in this OptimizableFunction.

Specified by:
getSequenceWeights in class OptimizableFunction
Returns:
the weights for each Sequence and each class
See Also:
OptimizableFunction.getData()