class sklearn.decomposition.TruncatedSVD(n_components=2, algorithm=’randomized’, n_iter=5, random_state=None, tol=0.0)
[source]
Dimensionality reduction using truncated SVD (aka LSA).
This transformer performs linear dimensionality reduction by means of truncated singular value decomposition (SVD). Contrary to PCA, this estimator does not center the data before computing the singular value decomposition. This means it can work with scipy.sparse matrices efficiently.
In particular, truncated SVD works on term count/tf-idf matrices as returned by the vectorizers in sklearn.feature_extraction.text. In that context, it is known as latent semantic analysis (LSA).
This estimator supports two algorithms: a fast randomized SVD solver, and a “naive” algorithm that uses ARPACK as an eigensolver on (X * X.T) or (X.T * X), whichever is more efficient.
Read more in the User Guide.
Parameters: |
|
---|---|
Attributes: |
|
See also
SVD suffers from a problem called “sign indeterminacy”, which means the sign of the components_
and the output from transform depend on the algorithm and random state. To work around this, fit instances of this class to data once, then keep the instance around to do transformations.
Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions Halko, et al., 2009 (arXiv:909) http://arxiv.org/pdf/0909.4061
>>> from sklearn.decomposition import TruncatedSVD >>> from sklearn.random_projection import sparse_random_matrix >>> X = sparse_random_matrix(100, 100, density=0.01, random_state=42) >>> svd = TruncatedSVD(n_components=5, n_iter=7, random_state=42) >>> svd.fit(X) TruncatedSVD(algorithm='randomized', n_components=5, n_iter=7, random_state=42, tol=0.0) >>> print(svd.explained_variance_ratio_) [0.0606... 0.0584... 0.0497... 0.0434... 0.0372...] >>> print(svd.explained_variance_ratio_.sum()) 0.249... >>> print(svd.singular_values_) [2.5841... 2.5245... 2.3201... 2.1753... 2.0443...]
fit (X[, y]) | Fit LSI model on training data X. |
fit_transform (X[, y]) | Fit LSI model to X and perform dimensionality reduction on X. |
get_params ([deep]) | Get parameters for this estimator. |
inverse_transform (X) | Transform X back to its original space. |
set_params (**params) | Set the parameters of this estimator. |
transform (X) | Perform dimensionality reduction on X. |
__init__(n_components=2, algorithm=’randomized’, n_iter=5, random_state=None, tol=0.0)
[source]
fit(X, y=None)
[source]
Fit LSI model on training data X.
Parameters: |
|
---|---|
Returns: |
|
fit_transform(X, y=None)
[source]
Fit LSI model to X and perform dimensionality reduction on X.
Parameters: |
|
---|---|
Returns: |
|
get_params(deep=True)
[source]
Get parameters for this estimator.
Parameters: |
|
---|---|
Returns: |
|
inverse_transform(X)
[source]
Transform X back to its original space.
Returns an array X_original whose transform would be X.
Parameters: |
|
---|---|
Returns: |
|
set_params(**params)
[source]
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter>
so that it’s possible to update each component of a nested object.
Returns: |
|
---|
transform(X)
[source]
Perform dimensionality reduction on X.
Parameters: |
|
---|---|
Returns: |
|
sklearn.decomposition.TruncatedSVD
© 2007–2018 The scikit-learn developers
Licensed under the 3-clause BSD License.
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html