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

Class MCANode


Minor Component Analysis (MCA) extracts minor components (dual of principal components) from the input data incrementally.


Reference

More information about MCA can be found in Peng, D. and Yi, Z, A new algorithm for sequential minor component analysis, International Journal of Computational Intelligence Research, 2(2):207--215, 2006.

Instance Methods [hide private]
 
__init__(self, eps=0.1, gamma=1.0, normalize=True, init_eigen_vectors=None, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
Initializes an object of type 'MCANode'.
str
__repr__(self)
Print all args.
 
_check_params(self, *args)
Initialize parameters.
 
_execute(self, x, n=None)
Project the input on the first 'n' principal components.
 
_inverse(self, y, n=None)
Project 'y' to the input space using the first 'n' components.
 
_train(self, x)
Update the minor components.
numpy.ndarray
execute(self, x, n=None)
Project the input on the first 'n' principal components.
numpy.ndarray
get_projmatrix(self, transposed=1)
Return the projection matrix.
numpy.ndarray
get_recmatrix(self, transposed=1)
Return the back-projection matrix (i.e. the reconstruction matrix).
numpy.ndarray
inverse(self, y, n=None)
Project 'y' to the input space using the first 'n' components.
 
train(self, x)
Update the minor components.

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 OnlineNode
 
__add__(self, other)
 
_check_input(self, x)
 
_get_supported_training_types(self)
Return the list of training types supported by this node.
 
_get_train_seq(self)
 
_pre_execution_checks(self, x)
This method contains all pre-execution checks. It can be used when a subclass defines multiple execution methods.
 
_pre_inversion_checks(self, y)
This method contains all pre-inversion checks.
 
_set_numx_rng(self, rng)
 
get_current_train_iteration(self)
Return the index of the current training iteration.
 
get_numx_rng(self)
Return input dimensions.
 
set_numx_rng(self, rng)
Set numx random number generator. Note that subclasses should overwrite self._set_numx_rng when needed.
 
set_training_type(self, training_type)
Sets the training type
 
stop_training(self, *args, **kwargs)
Stop the training phase.
    Inherited from Node
 
__call__(self, x, *args, **kwargs)
Calling an instance of Node is equivalent to calling its execute method.
 
__str__(self)
str(x)
 
_check_output(self, y)
 
_check_train_args(self, x, *args, **kwargs)
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_if_training_stop_training(self)
 
_refcast(self, x)
Helper function to cast arrays to the internal dtype.
 
_set_dtype(self, t)
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
 
_stop_training(self, *args, **kwargs)
 
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.
 
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]
    Inherited from Node
 
is_invertible()
Return True if the node can be inverted, False otherwise.
 
is_trainable()
Return True if the node can be trained, False otherwise.
Instance Variables [hide private]
  d
Eigenvalues
  v
Eigenvectors
Properties [hide private]
numpy.ndarray init_eigen_vectors
Return initialized eigenvectors (minor components).

Inherited from object: __class__

    Inherited from OnlineNode
  _train_seq
List of tuples:
  numx_rng
Numpy seeded random number generator
  training_type
Training type (Read only)
    Inherited from Node
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, eps=0.1, gamma=1.0, normalize=True, init_eigen_vectors=None, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
(Constructor)

 
Initializes an object of type 'MCANode'.
Parameters:
  • eps (float) - Learning rate (default: 0.1).
  • gamma (float) - Sequential addition coefficient (default: 1.0).
  • normalize (bool) - If True, eigenvectors are normalized after every update. Useful for non-stationary input data. (default: True)
  • init_eigen_vectors (numpy.ndarray) - initial eigen vectors. Default - randomly set
  • input_dim (int) - The input dimensionality.
  • output_dim (int) - The output dimensionality.
  • dtype (numpy.dtype or str) - The datatype.
  • numx_rng - OnlineNodes support use of a pre-seeded random number generator through a 'numx_rng' argument. This can be useful to replicate results.
Overrides: object.__init__

__repr__(self)
(Representation operator)

 
Print all args.
Returns: str
A string that contains all names and their values.
Overrides: object.__repr__

_check_params(self, *args)

 
Initialize parameters.

Overrides: OnlineNode._check_params

_execute(self, x, n=None)

 
Project the input on the first 'n' principal components.

:param x: The input that is to project.
:type x: numpy.ndarray

:param n: The number of first principle components to project on.
    If 'n' is not set, use all available components.
:type n: int

:return: The projected input.
:rtype: numpy.ndarray

Overrides: Node._execute

_inverse(self, y, n=None)

 
Project 'y' to the input space using the first 'n' components.

:param y: Vectors from the output space.
:type y: numpy.ndarray

:param n: The number of components to use for projection to the
    input space. If 'n' is not set, use all available components.
:type n: int

:return: The projected vectors.
:rtype: numpy.ndarray

:raises mdp.NodeException: If the valid dimension is exceeded.

Overrides: Node._inverse

_train(self, x)

 
Update the minor components.

Overrides: Node._train

execute(self, x, n=None)

 
Project the input on the first 'n' principal components.
Parameters:
  • x (numpy.ndarray) - The input that is to project.
  • n (int) - The number of first principle components to project on. If 'n' is not set, use all available components.
Returns: numpy.ndarray
The projected input.
Overrides: Node.execute

get_projmatrix(self, transposed=1)

 
Return the projection matrix.
Parameters:
  • transposed (bool) - If the projection matrix should return transposed, set this to True.
Returns: numpy.ndarray
The projection matrix.

get_recmatrix(self, transposed=1)

 
Return the back-projection matrix (i.e. the reconstruction matrix).
Parameters:
  • transposed (bool) - If the back-projection matrix should return transposed, set this to True.
Returns: numpy.ndarray
The back-projection matrix.

inverse(self, y, n=None)

 
Project 'y' to the input space using the first 'n' components.
Parameters:
  • y (numpy.ndarray) - Vectors from the output space.
  • n (int) - The number of components to use for projection to the input space. If 'n' is not set, use all available components.
Returns: numpy.ndarray
The projected vectors.
Raises:
Overrides: Node.inverse

train(self, x)

 
Update the minor components.
Overrides: Node.train

Instance Variable Details [hide private]

d

Eigenvalues

v

Eigenvectors

Property Details [hide private]

init_eigen_vectors

Return initialized eigenvectors (minor components).
Get Method:
unreachable.init_eigen_vectors(self) - Return initialized eigenvectors (minor components).
Set Method:
unreachable.init_eigen_vectors(self, init_eigen_vectors=None) - Set initial eigen vectors (minor components).
Type:
numpy.ndarray