LWPR_Object Class Reference
[C++ wrapper around the LWPR library]

Thin C++ wrapper class around C implementation of LWPR. More...

#include <lwpr.hh>

Public Member Functions

 LWPR_Object (int nIn, int nOut)
 Creates an LWPR_Object for the given input and output dimensionalities.
 LWPR_Object (const LWPR_Object &otherObj)
 Creates a copy of an LWPR_Object.
 LWPR_Object (const char *filename)
 Creates an LWPR_Object from a binary file, or if compiled with support for EXPAT, an XML file.
 ~LWPR_Object ()
 Destroys an LWPR_Object and disposes allocated memory.
int writeXML (const char *filename)
 Write the model to an XML file.
int writeBinary (const char *filename)
 Write the model to a binary file.
doubleVec update (const doubleVec &x, const doubleVec &y)
 Updates an LWPR model with a given input/output pair (x,y).
doubleVec predict (const doubleVec &x, double cutoff=0.001)
 Computes the prediction of an LWPR model given an input vector x.
doubleVec predict (const doubleVec &x, doubleVec &confidence, double cutoff=0.001)
 Computes the prediction of an LWPR model given an input vector x. Also computes confidence bounds per output dimension.
doubleVec predict (const doubleVec &x, doubleVec &confidence, doubleVec &maxW, double cutoff=0.001)
 Computes the prediction of an LWPR model given an input vector x. Also computes confidence bounds and maximal activation per output dimension.
void setInitD (double delta)
 Sets a spherical initial distance metric.
void setInitD (const doubleVec &initD)
 Sets a diagonal or full initial distance metric.
void setInitAlpha (double alpha)
 Sets init_alpha (learning rate for 2nd order distance metric updates).
void wGen (double w_gen)
 Sets w_gen (threshold for adding new receptive fields).
void wPrune (double w_prune)
 Sets w_prune (threshold for removing a receptive field).
void penalty (double pen)
 Sets penalty (pre-factor for smoothing term in distance metric updates).
void initLambda (double iLam)
 Sets initial forgetting factor.
void tauLambda (double tLam)
 Sets annealing rate for forgetting factor.
void finalLambda (double fLam)
 Sets final forgetting factor.
void initS2 (double init_s2)
 Sets initial value for covariance computation SSs2.
void updateD (bool update)
 Determines whether distance matrix updates are to be performed.
void diagOnly (bool dOnly)
 Determines whether distance matrices should be treaded as diagonal-only.
void useMeta (bool meta)
 Determines whether 2nd order distance matrix updates are to be performed.
void metaRate (double rate)
 Sets the learning rate for 2nd order distance matrix updates.
void kernel (LWPR_Kernel kern)
 Sets the kernel to be used in the LWPR model.
void kernel (const char *str)
 Sets the kernel (either "Gaussian" or "BiSquare") to be used in the LWPR model.
int nData () const
 Returns the number of training data the model has seen.
int nIn () const
 Returns the input dimensionality.
int nOut () const
 Returns the output dimensionality.
double wGen () const
 Returns w_gen (threshold for adding new receptive fields).
double wPrune () const
 Returns w_prune (threshold for removing a receptive field).
double penalty () const
 Returns penalty (pre-factor for smoothing term in distance metric updates).
double initLambda () const
 Returns initial forgetting factor.
double tauLambda () const
 Returns annealing rate for forgetting factor.
double finalLambda () const
 Returns final forgetting factor.
double initS2 () const
 Returns initial value for the covariance computation SSs2.
bool updateD ()
 Returns whether distance matrix updates are performed.
bool diagOnly ()
 Returns whether distance matrices are treaded as diagonal-only.
bool useMeta ()
 Returns whether 2nd order distance matrix updates are performed.
double metaRate ()
 Returns learning rate for 2nd order distance matrix updates.
LWPR_Kernel kernel ()
 Returns the kernel.
doubleVec meanX ()
 Returns the mean of all input samples the model has seen.
doubleVec varX ()
 Returns the variance of all input samples the model has seen.
void normIn (const doubleVec &norm)
 Sets the input normalisation (expected scale or standard deviation of input data.
doubleVec normIn () const
 Returns the input normalisation factors.
void normOut (const doubleVec &norm)
 Sets the output normalisation (expected scale or standard deviation of output data.
doubleVec normOut () const
 Returns the output normalisation factors.
int numRFS (int outDim)
 Returns the number of receptive fields for output dimension "outDim".
std::vector< int > numRFS ()
 Returns the number of receptive fields for all output dimensions.
LWPR_ReceptiveFieldObject getRF (int outDim, int index) const
 Returns a wrapper object for inspecting a receptive field.

Data Fields

LWPR_Model model
 Underlying C structure.

Detailed Description

Thin C++ wrapper class around C implementation of LWPR.


Constructor & Destructor Documentation

LWPR_Object::LWPR_Object ( int  nIn,
int  nOut 
) [inline]

Creates an LWPR_Object for the given input and output dimensionalities.

Parameters:
nIn Desired input dimensionality
nOut Desired output dimensionality
Returns:
A new object

In case there is insufficient memory for allocating the underlying LWPR_Model (C library), an OUT_OF_MEMORY exception is thrown.

References lwpr_init_model(), model, and LWPR_Exception::OUT_OF_MEMORY.

LWPR_Object::LWPR_Object ( const LWPR_Object otherObj  )  [inline]

Creates a copy of an LWPR_Object.

Parameters:
otherObj LWPR_Object to be duplicated.
Returns:
A new object (copy of otherObj).

In case there is insufficient memory for allocating the underlying LWPR_Model (C library), an OUT_OF_MEMORY exception is thrown.

References lwpr_duplicate_model(), model, and LWPR_Exception::OUT_OF_MEMORY.

LWPR_Object::LWPR_Object ( const char *  filename  )  [inline]

Creates an LWPR_Object from a binary file, or if compiled with support for EXPAT, an XML file.

Parameters:
filename Name of file to read the model from
Returns:
A new object

In case there are problems with reading the file, an IO_ERROR exception is thrown.

References LWPR_Exception::IO_ERROR, lwpr_read_binary(), lwpr_read_xml(), and model.


Member Function Documentation

LWPR_ReceptiveFieldObject LWPR_Object::getRF ( int  outDim,
int  index 
) const [inline]

Returns a wrapper object for inspecting a receptive field.

Parameters:
outDim Desired output dimension
index Index of the receptive field within that output dimension
Returns:
The wrapper object (keeps the receptive field itself constant)
Exceptions:
LWPR_Exception::OUT_OF_RANGE if the parameters outDim and index are out of range

Please note that the retrieved object is only guaranteed to be valid as long as the underlying LWPR model is not changed, i.e. predictions are fine, but updates may result in pruning just the receptive field this wrapper points to!!!

References model, LWPR_Model::nOut, LWPR_SubModel::numRFS, LWPR_Exception::OUT_OF_RANGE, LWPR_SubModel::rf, and LWPR_Model::sub.

doubleVec LWPR_Object::predict ( const doubleVec x,
doubleVec confidence,
doubleVec maxW,
double  cutoff = 0.001 
) [inline]

Computes the prediction of an LWPR model given an input vector x. Also computes confidence bounds and maximal activation per output dimension.

Parameters:
[in] x Input vector
[out] confidence Vector to store the confidence bounds, will be resized if necessary
[out] maxW Vector to store maximum activations, will be resized if necessary
[in] cutoff A threshold parameter (default = 0.001). Receptive fields with activation below the cutoff are ignored
Returns:
Predicted output vector
Exceptions:
LWPR_Exception::BAD_INPUT_DIM if the parameter x does not match the model dimensions

References LWPR_Exception::BAD_INPUT_DIM, lwpr_predict(), model, LWPR_Model::nIn, and LWPR_Model::nOut.

doubleVec LWPR_Object::predict ( const doubleVec x,
doubleVec confidence,
double  cutoff = 0.001 
) [inline]

Computes the prediction of an LWPR model given an input vector x. Also computes confidence bounds per output dimension.

Parameters:
[in] x Input vector
[out] confidence Vector to store the confidence bounds, will be resized if necessary
[in] cutoff A threshold parameter (default = 0.001). Receptive fields with activation below the cutoff are ignored
Returns:
Predicted output vector
Exceptions:
LWPR_Exception::BAD_INPUT_DIM if the parameter x does not match the model dimensions

References LWPR_Exception::BAD_INPUT_DIM, lwpr_predict(), model, LWPR_Model::nIn, and LWPR_Model::nOut.

doubleVec LWPR_Object::predict ( const doubleVec x,
double  cutoff = 0.001 
) [inline]

Computes the prediction of an LWPR model given an input vector x.

Parameters:
x Input vector.
cutoff A threshold parameter (default = 0.001). Receptive fields with activation below the cutoff are ignored
Returns:
Predicted output vector
Exceptions:
LWPR_Exception::BAD_INPUT_DIM if the parameter x does not match the model dimensions

References LWPR_Exception::BAD_INPUT_DIM, lwpr_predict(), model, LWPR_Model::nIn, and LWPR_Model::nOut.

void LWPR_Object::setInitD ( const doubleVec initD  )  [inline]

Sets a diagonal or full initial distance metric.

Parameters:
initD Either a vector with nIn elements, containing the diagonal of the desired distance metric, or a vector with nIn*nIn elements containing the complete distance matrix.
Exceptions:
LWPR_Exception::BAD_INIT_D if the parameter initD gives rise to a non-positive matrix

References LWPR_Exception::BAD_INIT_D, LWPR_Exception::BAD_INPUT_DIM, lwpr_set_init_D(), lwpr_set_init_D_diagonal(), model, and LWPR_Model::nIn.

void LWPR_Object::setInitD ( double  delta  )  [inline]

Sets a spherical initial distance metric.

Parameters:
delta Width parameter, distance matrix will be delta * eye(nIn)
Exceptions:
LWPR_Exception::BAD_INIT_D if the parameter delta is <= 0, giving rise to a non-positive matrix

References LWPR_Exception::BAD_INIT_D, lwpr_set_init_D_spherical(), and model.

doubleVec LWPR_Object::update ( const doubleVec x,
const doubleVec y 
) [inline]

Updates an LWPR model with a given input/output pair (x,y).

Parameters:
x Input vector
y Output vector
Returns:
Current prediction of y given x, useful for tracking the training error.
Exceptions:
LWPR_Exception::OUT_OF_MEMORY if a receptive field would have to be added, but memory could not be allocated
LWPR_Exception::BAD_INPUT_DIM if the parameter x does not match the model dimensions
LWPR_Exception::BAD_OUTPUT_DIM if the parameter y does not match the model dimensions

References LWPR_Exception::BAD_INPUT_DIM, LWPR_Exception::BAD_OUTPUT_DIM, lwpr_update(), model, LWPR_Model::nIn, LWPR_Model::nOut, and LWPR_Exception::OUT_OF_MEMORY.

int LWPR_Object::writeBinary ( const char *  filename  )  [inline]

Write the model to a binary file.

Parameters:
filename Name of the file, which will we overwritten if it already exists
Returns:
  • 1 in case of success
  • 0 if the file could not be written to

References lwpr_write_binary(), and model.

int LWPR_Object::writeXML ( const char *  filename  )  [inline]

Write the model to an XML file.

Parameters:
filename Name of the file, which will we overwritten if it already exists
Returns:
  • 1 in case of success
  • 0 if the file could not be written to

References lwpr_write_xml(), and model.


The documentation for this class was generated from the following file:
Generated on Thu Feb 9 08:18:36 2012 for LWPR Library by  doxygen 1.6.3