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

Class SparseRandomProjectionScikitsLearnNode



Reduce dimensionality through sparse random projection

This node has been automatically generated by wrapping the ``sklearn.random_projection.SparseRandomProjection`` class
from the ``sklearn`` library.  The wrapped instance can be accessed
through the ``scikits_alg`` attribute.

Sparse random matrix is an alternative to dense random
projection matrix that guarantees similar embedding quality while being
much more memory efficient and allowing faster computation of the
projected data.

If we note `s = 1 / density` the components of the random matrix are
drawn from:


  - -sqrt(s) / sqrt(n_components)   with probability 1 / 2s
  -  0                              with probability 1 - 1 / s
  - +sqrt(s) / sqrt(n_components)   with probability 1 / 2s

Read more in the :ref:`User Guide <sparse_random_matrix>`.

**Parameters**

n_components : int or 'auto', optional (default = 'auto')
    Dimensionality of the target projection space.

    n_components can be automatically adjusted according to the
    number of samples in the dataset and the bound given by the
    Johnson-Lindenstrauss lemma. In that case the quality of the
    embedding is controlled by the ``eps`` parameter.

    It should be noted that Johnson-Lindenstrauss lemma can yield
    very conservative estimated of the required number of components
    as it makes no assumption on the structure of the dataset.

density : float in range ]0, 1], optional (default='auto')
    Ratio of non-zero component in the random projection matrix.

    If density = 'auto', the value is set to the minimum density
    as recommended by Ping Li et al.: 1 / sqrt(n_features).

    Use density = 1 / 3.0 if you want to reproduce the results from
    Achlioptas, 2001.

eps : strictly positive float, optional, (default=0.1)
    Parameter to control the quality of the embedding according to
    the Johnson-Lindenstrauss lemma when n_components is set to
    'auto'.

    Smaller values lead to better embedding and higher number of
    dimensions (n_components) in the target projection space.

dense_output : boolean, optional (default=False)
    If True, ensure that the output of the random projection is a
    dense numpy array even if the input and random projection matrix
    are both sparse. In practice, if the number of components is
    small the number of zero components in the projected data will
    be very small and it will be more CPU and memory efficient to
    use a dense representation.

    If False, the projected data uses a sparse representation if
    the input is sparse.

random_state : integer, RandomState instance or None (default=None)
    Control the pseudo random number generator used to generate the
    matrix at fit time.

**Attributes**

``n_component_`` : int
    Concrete number of components computed when n_components="auto".

``components_`` : CSR matrix with shape [n_components, n_features]
    Random matrix used for the projection.

``density_`` : float in range 0.0 - 1.0
    Concrete density computed from when density = "auto".

See Also

GaussianRandomProjection

**References**


.. [1] Ping Li, T. Hastie and K. W. Church, 2006,
       "Very Sparse Random Projections".
       http://www.stanford.edu/~hastie/Papers/Ping/KDD06_rp.pdf

.. [2] D. Achlioptas, 2001, "Database-friendly random projections",
       http://www.cs.ucsc.edu/~optas/papers/jl.pdf

Instance Methods [hide private]
 
__init__(self, input_dim=None, output_dim=None, dtype=None, **kwargs)
Reduce dimensionality through sparse random projection
 
_execute(self, x)
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node. The types can be specified in any format allowed by numpy.dtype.
 
_stop_training(self, **kwargs)
Concatenate the collected data in a single array.
 
execute(self, x)
Project the data by using matrix product with the random matrix
 
stop_training(self, **kwargs)
Generate a sparse random projection matrix

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 Cumulator
 
_train(self, *args)
Collect all input data in a list.
 
train(self, *args)
Collect all input data in a list.
    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)
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
 
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 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_invertible()
Return True if the node can be inverted, False otherwise.
 
is_trainable()
Return True if the node can be trained, False otherwise.
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, input_dim=None, output_dim=None, dtype=None, **kwargs)
(Constructor)

 

Reduce dimensionality through sparse random projection

This node has been automatically generated by wrapping the ``sklearn.random_projection.SparseRandomProjection`` class
from the ``sklearn`` library.  The wrapped instance can be accessed
through the ``scikits_alg`` attribute.

Sparse random matrix is an alternative to dense random
projection matrix that guarantees similar embedding quality while being
much more memory efficient and allowing faster computation of the
projected data.

If we note `s = 1 / density` the components of the random matrix are
drawn from:


  - -sqrt(s) / sqrt(n_components)   with probability 1 / 2s
  -  0                              with probability 1 - 1 / s
  - +sqrt(s) / sqrt(n_components)   with probability 1 / 2s

Read more in the :ref:`User Guide <sparse_random_matrix>`.

**Parameters**

n_components : int or 'auto', optional (default = 'auto')
    Dimensionality of the target projection space.

    n_components can be automatically adjusted according to the
    number of samples in the dataset and the bound given by the
    Johnson-Lindenstrauss lemma. In that case the quality of the
    embedding is controlled by the ``eps`` parameter.

    It should be noted that Johnson-Lindenstrauss lemma can yield
    very conservative estimated of the required number of components
    as it makes no assumption on the structure of the dataset.

density : float in range ]0, 1], optional (default='auto')
    Ratio of non-zero component in the random projection matrix.

    If density = 'auto', the value is set to the minimum density
    as recommended by Ping Li et al.: 1 / sqrt(n_features).

    Use density = 1 / 3.0 if you want to reproduce the results from
    Achlioptas, 2001.

eps : strictly positive float, optional, (default=0.1)
    Parameter to control the quality of the embedding according to
    the Johnson-Lindenstrauss lemma when n_components is set to
    'auto'.

    Smaller values lead to better embedding and higher number of
    dimensions (n_components) in the target projection space.

dense_output : boolean, optional (default=False)
    If True, ensure that the output of the random projection is a
    dense numpy array even if the input and random projection matrix
    are both sparse. In practice, if the number of components is
    small the number of zero components in the projected data will
    be very small and it will be more CPU and memory efficient to
    use a dense representation.

    If False, the projected data uses a sparse representation if
    the input is sparse.

random_state : integer, RandomState instance or None (default=None)
    Control the pseudo random number generator used to generate the
    matrix at fit time.

**Attributes**

``n_component_`` : int
    Concrete number of components computed when n_components="auto".

``components_`` : CSR matrix with shape [n_components, n_features]
    Random matrix used for the projection.

``density_`` : float in range 0.0 - 1.0
    Concrete density computed from when density = "auto".

See Also

GaussianRandomProjection

**References**


.. [1] Ping Li, T. Hastie and K. W. Church, 2006,
       "Very Sparse Random Projections".
       http://www.stanford.edu/~hastie/Papers/Ping/KDD06_rp.pdf

.. [2] D. Achlioptas, 2001, "Database-friendly random projections",
       http://www.cs.ucsc.edu/~optas/papers/jl.pdf

Overrides: object.__init__

_execute(self, x)

 
Overrides: Node._execute

_get_supported_dtypes(self)

 
Return the list of dtypes supported by this node. The types can be specified in any format allowed by numpy.dtype.
Overrides: Node._get_supported_dtypes

_stop_training(self, **kwargs)

 
Concatenate the collected data in a single array.
Overrides: Node._stop_training

execute(self, x)

 

Project the data by using matrix product with the random matrix

This node has been automatically generated by wrapping the sklearn.random_projection.SparseRandomProjection class from the sklearn library. The wrapped instance can be accessed through the scikits_alg attribute.

Parameters

X : numpy array or scipy.sparse of shape [n_samples, n_features]
The input data to project into a smaller dimensional space.

y : is not used: placeholder to allow for usage in a Pipeline.

Returns

X_new : numpy array or scipy sparse of shape [n_samples, n_components]
Projected array.
Overrides: Node.execute

is_invertible()
Static Method

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

is_trainable()
Static Method

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

stop_training(self, **kwargs)

 

Generate a sparse random projection matrix

This node has been automatically generated by wrapping the sklearn.random_projection.SparseRandomProjection class from the sklearn library. The wrapped instance can be accessed through the scikits_alg attribute.

Parameters

X : numpy array or scipy.sparse of shape [n_samples, n_features]
Training set: only the shape is used to find optimal random matrix dimensions based on the theory referenced in the afore mentioned papers.

y : is not used: placeholder to allow for usage in a Pipeline.

Returns

self

Overrides: Node.stop_training