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

Class CCIPCANode


Candid-Covariance free Incremental Principal Component Analysis (CCIPCA) extracts the principal components from the input data incrementally.


Reference

More information about Candid-Covariance free Incremental Principal Component Analysis can be found in Weng J., Zhang Y. and Hwang W., Candid covariance-free incremental principal component analysis, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 25, 1034--1040, 2003.

Instance Methods [hide private]
 
__init__(self, amn_params=(20, 200, 2000, 3), init_eigen_vectors=None, var_rel=1, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
Initializes an object of type 'CCIPCANode'.
str
__repr__(self)
Print all args.
 
_amnesic(self, n)
Return amnesic weights.
 
_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 principal components.
numpy.ndarray
execute(self, x, n=None)
Project the input on the first 'n' principal components. If 'n' is not set, use all available 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).
 
get_reduced_dimsensionality(self)
Return reducible dimensionality based on the set thresholds.
float
get_var_tot(self)
Return the variance that can be explained by self._output_dim PCA components.
numpy.ndarray
inverse(self, y, n=None)
Project 'y' to the input space using the first 'n' components. If 'n' is not set, use all available components.
 
train(self, x)
Update the principal 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 eigen vectors (principal 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, amn_params=(20, 200, 2000, 3), init_eigen_vectors=None, var_rel=1, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
(Constructor)

 
Initializes an object of type 'CCIPCANode'.
Parameters:
  • amn_params (tuple) - Amnesic parameters. Default set to (n1=20,n2=200,m=2000,c=3). For n < n1, ~ moving average. For n1 < n < n2 - Transitions from moving average to amnesia. m denotes the scaling param and c typically should be between (2-4). Higher values will weigh recent data.
  • init_eigen_vectors (numpy.ndarray) - Initial eigen vectors. Default - randomly set.
  • var_rel (int) - Ratio cutoff to get reduced dimensionality. (Explained variance of reduced dimensionality <= beta * Total variance). Default is 1.
  • input_dim (int) - Dimensionality of the input. Default is None.
  • output_dim (int) - Dimensionality of the output. Default is None.
  • dtype (numpy.dtype, str) - Datatype of the input. Default is None.
  • numx_rng ()
Overrides: object.__init__

__repr__(self)
(Representation operator)

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

_amnesic(self, n)

 
Return amnesic weights.

:param n:
:type n:

_check_params(self, *args)

 
Initialize parameters.

:param args:
:type args:

Overrides: OnlineNode._check_params

_execute(self, x, n=None)

 
Project the input on the first 'n' principal components.
If 'n' is not set, use all available components.

:param x: The data to project.
:type x: numpy.ndarray

:param n: The number of first principal components to project on.
:type n: int

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

Overrides: Node._execute

_inverse(self, y, n=None)

 
Project 'y' to the input space using the first 'n' components.
If 'n' is not set, use all available components.

:param y: Data in the output space along the principal components.
:type y: numpy.ndarray

:param n: The number of first principal components to use.
:type n: int

:return: The projected data in the input space.
:rtype: numpy.ndarray

Overrides: Node._inverse

_train(self, x)

 
Update the principal components.

:param x: Data vectors.
:type x: numpy.ndarray

Overrides: Node._train

execute(self, x, n=None)

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

get_projmatrix(self, transposed=1)

 
Return the projection matrix.
Returns: numpy.ndarray
The projection matrix.

get_recmatrix(self, transposed=1)

 
Return the back-projection matrix (i.e. the reconstruction matrix).
Returns: numpy.ndarray
The back-projection matrix.

get_reduced_dimsensionality(self)

 
Return reducible dimensionality based on the set thresholds.

get_var_tot(self)

 
Return the variance that can be explained by self._output_dim PCA components.
Returns: float
The explained variance.

inverse(self, y, n=None)

 
Project 'y' to the input space using the first 'n' components. If 'n' is not set, use all available components.
Parameters:
  • y (numpy.ndarray) - Data in the output space along the principal components.
  • n (int) - The number of first principal components to use.
Returns: numpy.ndarray
The projected data in the input space.
Overrides: Node.inverse

train(self, x)

 
Update the principal components.
Parameters:
  • x (numpy.ndarray) - Data vectors.
Overrides: Node.train

Instance Variable Details [hide private]

d

Eigenvalues

v

Eigenvectors

Property Details [hide private]

init_eigen_vectors

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