Package mdp :: Package nodes :: Class NormalizingRecursiveExpansionNode
[hide private]
[frames] | no frames]

Class NormalizingRecursiveExpansionNode


Recursively computable (orthogonal) expansions and a trainable transformation to the domain of the expansions.
Instance Methods [hide private]
 
__init__(self, degree=1, recf='standard_poly', check=True, with0=True, input_dim=None, dtype=None)
Initialize a NormalizingRecursiveExpansionNode.
numpy.ndarray
_execute(self, x)
Apply the transformation and execute RecursiveExpansionNode.
 
_stop_training(self)
Create a transformation function, that transforms the data to the domain of the family of functions to evaluate.
 
_train(self, x)
Determine coordinatewise and absolute maxima and minima.
numpy.ndarray
execute(self, x)
Apply the transformation and execute RecursiveExpansionNode.
 
stop_training(self)
Create a transformation function, that transforms the data to the domain of the family of functions to evaluate.
 
train(self, x)
Determine coordinatewise and absolute maxima and minima.

Inherited from unreachable._ExpansionNode (private): _set_input_dim, _set_output_dim

Inherited from unreachable.newobject: __long__, __native__, __nonzero__, __unicode__, next

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

    Inherited from RecursiveExpansionNode
list
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
check_domain(self, x, prec=1e-06)
the function sequence selected is defined or orthogonal.
int
expanded_dim(self, num_vars)
Return the size of a vector of dimension 'dim' after an expansion of degree 'self._degree'.
    Inherited from Node
 
__add__(self, other)
 
__call__(self, x, *args, **kwargs)
Calling an instance of Node is equivalent to calling its execute method.
 
__repr__(self)
repr(x)
 
__str__(self)
str(x)
 
_check_input(self, x)
 
_check_output(self, y)
 
_check_train_args(self, x, *args, **kwargs)
 
_get_train_seq(self)
 
_if_training_stop_training(self)
 
_inverse(self, x)
 
_pre_execution_checks(self, x)
This method contains all pre-execution checks.
 
_pre_inversion_checks(self, y)
This method contains all pre-inversion checks.
 
_refcast(self, x)
Helper function to cast arrays to the internal dtype.
 
_set_dtype(self, t)
 
copy(self, protocol=None)
Return a deep copy of the node.
 
get_current_train_phase(self)
Return the index of the current training phase.
 
get_dtype(self)
Return dtype.
 
get_input_dim(self)
Return input dimensions.
 
get_output_dim(self)
Return output dimensions.
 
get_remaining_train_phase(self)
Return the number of training phases still to accomplish.
 
get_supported_dtypes(self)
Return dtypes supported by the node as a list of numpy.dtype objects.
 
has_multiple_training_phases(self)
Return True if the node has multiple training phases.
 
inverse(self, y, *args, **kwargs)
Invert y.
 
is_training(self)
Return True if the node is in the training phase, False otherwise.
 
save(self, filename, protocol=-1)
Save a pickled serialization of the node to filename. If filename is None, return a string.
 
set_dtype(self, t)
Set internal structures' dtype.
 
set_input_dim(self, n)
Set input dimensions.
 
set_output_dim(self, n)
Set output dimensions.
Static Methods [hide private]
 
is_trainable()
Return True if the node can be trained, False otherwise.

Inherited from unreachable._ExpansionNode: is_invertible

Instance Variables [hide private]
  lower
The lower bound of the domain on which the recursion function is defined or orthogonal.
  upper
The upper bound of the domain on which the recursion function is defined or orthogonal.
Properties [hide private]

Inherited from object: __class__

    Inherited from Node
  _train_seq
List of tuples:
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, degree=1, recf='standard_poly', check=True, with0=True, input_dim=None, dtype=None)
(Constructor)

 
Initialize a NormalizingRecursiveExpansionNode.
Parameters:
  • degree (int) - The maximum order of the recursive expansion. The dimension of the return for single variable inputs will be equal to this value if with0 == False.
  • recf (tuple or str) - Must be in ['standard_poly', 'legendre_poly', 'legendre_rational', 'chebyshev_poly'] or a tuple similar to those in the recfs dictionary in this module. The procedure on how an init function is built can be found in the docstring of the init and recursion function for standard polynomials init_standard_poly and recf_standard_poly, respectively.
  • check (bool) - Indicates whether the input data will be checked for compliance to the domain on which the function sequence selected is defined or orthogonal. The check will be made automatically in the execute method.
  • with0 (bool) - Parameter that specificies whether the zero-th order element is to be included at the beginning of the result array.
  • input_dim (int) - Dimensionality of the input. Default is None.
  • dtype (numpy.dtype or str) - Datatype of the input. Default is None.
Overrides: object.__init__

_execute(self, x)

 
Apply the transformation and execute RecursiveExpansionNode.
Parameters:
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must be along the first axis, variables along the second.
Returns: numpy.ndarray
The expansion of x with observations/samples along the first axis and corresponding function values (expansion) along the second axis.
Overrides: Node._execute

_stop_training(self)

 

Create a transformation function, that transforms the data to the domain of the family of functions to evaluate.

Note: If the cube is unbounded the data is translated by the shortest length vector possible. If instead the cube is bounded the data is scaled around the mean of max and min, if neccessary. Then the mean of max and min is moved onto the cube mean by a translation. It is important to note, that the assumption is made, that the data on which the node is executed on, does not contain more "malign outliers" than the ones already supplied during training.
Overrides: Node._stop_training

_train(self, x)

 

Determine coordinatewise and absolute maxima and minima.

The values are used to generate a transformation to the valid domain for the data.

Parameters:
  • x (numpy.ndarray) - Chuck of data to be used for training. Observations/samples must be along the first axis, variables along the second.
Overrides: Node._train

execute(self, x)

 
Apply the transformation and execute RecursiveExpansionNode.
Parameters:
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must be along the first axis, variables along the second.
Returns: numpy.ndarray
The expansion of x with observations/samples along the first axis and corresponding function values (expansion) along the second axis.
Overrides: Node.execute

is_trainable()
Static Method

 
Return True if the node can be trained, False otherwise.
Overrides: Node.is_trainable
(inherited documentation)

stop_training(self)

 

Create a transformation function, that transforms the data to the domain of the family of functions to evaluate.

Note: If the cube is unbounded the data is translated by the shortest length vector possible. If instead the cube is bounded the data is scaled around the mean of max and min, if neccessary. Then the mean of max and min is moved onto the cube mean by a translation. It is important to note, that the assumption is made, that the data on which the node is executed on, does not contain more "malign outliers" than the ones already supplied during training.
Overrides: Node.stop_training

train(self, x)

 

Determine coordinatewise and absolute maxima and minima.

The values are used to generate a transformation to the valid domain for the data.

Parameters:
  • x (numpy.ndarray) - Chuck of data to be used for training. Observations/samples must be along the first axis, variables along the second.
Overrides: Node.train

Instance Variable Details [hide private]

lower

The lower bound of the domain on which the recursion function is defined or orthogonal.

upper

The upper bound of the domain on which the recursion function is defined or orthogonal.