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

type FANode


Instance Methods [hide private]
 
__init__(self, tol=0.0001, max_cycles=100, verbose=False, input_dim=None, output_dim=None, dtype=None)
Perform Factor Analysis.
 
_execute(self, x)
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_stop_training(self)
 
_train(self, x)
 
generate_input(self, len_or_y=1, noise=False)
Generate data from the prior distribution.
 
is_invertible(self)
Return True if the node can be inverted, False otherwise.
    Inherited from Node
 
__call__(self, x)
Calling an instance if Node is equivalent to call its 'execute' method.
 
__repr__(self)
 
__str__(self)
 
_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)
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
 
copy(self, protocol=-1)
Return a deep copy of the node.
 
execute(self, x, *args, **kargs)
Process the data contained in 'x'.
 
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.
 
inverse(self, y, *args, **kargs)
Invert 'y'.
 
is_trainable(self)
Return True if the node can be trained, False otherwise.
 
is_training(self)
Return True if the node is in the training phase, False otherwise.
 
save(self, filename, protocol=-1)
Save a pickled representation of the node to 'filename'.
 
set_dtype(self, t)
Set Node's internal structures dtype.
 
set_input_dim(self, n)
Set input dimensions.
 
set_output_dim(self, n)
Set output dimensions.
 
stop_training(self, *args, **kwargs)
Stop the training phase.
 
train(self, x, *args, **kwargs)
Update the internal structures according to the input data 'x'.
Properties [hide private]
    Inherited from Node
  _train_seq
List of tuples: [(training-phase1, stop-training-phase1), (training-phase2, stop_training-phase2), ...
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, tol=0.0001, max_cycles=100, verbose=False, input_dim=None, output_dim=None, dtype=None)
(Constructor)

 
Perform Factor Analysis.

The current implementation should be most efficient for long
data sets: the sufficient statistics are collected in the
training phase, and all EM-cycles are performed at
its end.

The 'execute' function returns the Maximum A Posteriori estimate
of the latent variables. The 'generate_input' function generates
observations from the prior distribution.

tol -- tolerance (minimum change in log-likelihood before exiting
       the EM algorithm)
max_cycles -- maximum number of EM cycles
verbose -- if True, print log-likelihood during the EM-cycles

Internal variables of interest:
self.mu -- Mean of the input data (available after training)
self.A -- Generating weights (available after training)
self.E_y_mtx -- Weights for Maximum A Posteriori inference
self.sigma -- Vector of estimated variance of the noise
              for all input components

More information about Factor Analysis can be found in
Max Welling's classnotes:
http://www.ics.uci.edu/~welling/classnotes/classnotes.html ,
in the chapter 'Linear Models'.

Overrides: Node.__init__

_execute(self, x)

 
Overrides: Node._execute

_get_supported_dtypes(self)

 
Return the list of dtypes supported by this node.

Overrides: Node._get_supported_dtypes

_stop_training(self)

 
Overrides: Node._stop_training

_train(self, x)

 
Overrides: Node._train

generate_input(self, len_or_y=1, noise=False)

 

Generate data from the prior distribution.

If the training phase has not been completed yet, call stop_training.

Input arguments:
len_or_y -- If integer, it specified the number of observation
            to generate. If array, it is used as a set of samples
            of the latent variables
noise -- if True, generation includes the estimated noise

is_invertible(self)

 
Return True if the node can be inverted, False otherwise.

Overrides: Node.is_invertible
(inherited documentation)