pykoop.Tsvd

class Tsvd(truncation='economy', truncation_param=None)

Bases: BaseEstimator

Truncated singular value decomposition.

Parameters:
  • truncation (str) –

  • truncation_param (float | None) –

left_singular_vectors_

Left singular vectors.

Type:

np.ndarray

singular_values_

Singular values.

Type:

np.ndarray

right_singular_vectors_

Right singular vectors.

Type:

np.ndarray

n_features_in_

Number of features input.

Type:

int

__init__(truncation='economy', truncation_param=None)

Instantiate Tsvd.

Parameters:
  • truncation (str) –

    Truncation method. Possible values are

    • 'economy' – do not truncate (use economy SVD),

    • 'unknown_noise'– truncate using optimal hard truncation [GD14] with unknown noise,

    • 'known_noise' – truncate using optimal hard truncation [GD14] with known noise,

    • 'cutoff' – truncate singular values smaller than a cutoff, or

    • 'rank' – truncate singular values to a fixed rank.

  • truncation_param (Optional[float]) –

    Parameter whose interpretation is based on the truncation method. For each truncation method, truncation_param is interpreted as

    • 'economy' – ignored,

    • 'unknown_noise'– ignored,

    • 'known_noise' – known noise magnitude,

    • 'cutoff' – singular value cutoff, or

    • 'rank' – desired rank.

Return type:

None

Notes

Optimal hard truncation [GD14] assumes the noisy measured matrix X_measured is composed of:

X_measured = X_true + noise_magnitude * X_noise

where X_noise is composed of i.i.d. Gaussian variables with zero mean and unit variance.

Warning

Does not consider episode features!

Examples

SVD with no truncation

>>> tsvd = pykoop.Tsvd()
>>> tsvd.fit(X_msd)
Tsvd()
>>> tsvd.singular_values_
array([...])

SVD with cutoff truncation

>>> tsvd = pykoop.Tsvd(truncation='cutoff', truncation_param=1e-3)
>>> tsvd.fit(X_msd)
Tsvd(truncation='cutoff', truncation_param=0.001)
>>> tsvd.singular_values_
array([...])

SVD with manual rank truncation

>>> tsvd = pykoop.Tsvd(truncation='rank', truncation_param=2)
>>> tsvd.fit(X_msd)
Tsvd(truncation='rank', truncation_param=2)
>>> tsvd.singular_values_
array([...])

Methods

__init__([truncation, truncation_param])

Instantiate Tsvd.

fit(X[, y])

Compute the truncated singular value decomposition.

get_metadata_routing()

Get metadata routing of this object.

get_params([deep])

Get parameters for this estimator.

set_params(**params)

Set the parameters of this estimator.

fit(X, y=None)

Compute the truncated singular value decomposition.

Parameters:
  • X (np.ndarray) – Data matrix.

  • y (Optional[np.ndarray]) – Ignored.

Returns:

Instance of itself.

Return type:

Tsvd

Raises:

ValueError – If any of the constructor parameters are incorrect.

get_metadata_routing()

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routing – A MetadataRequest encapsulating routing information.

Return type:

MetadataRequest

get_params(deep=True)

Get parameters for this estimator.

Parameters:

deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params – Parameter names mapped to their values.

Return type:

dict

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:

**params (dict) – Estimator parameters.

Returns:

self – Estimator instance.

Return type:

estimator instance