LocallyLinearEmbedding (original) (raw)

class sklearn.manifold.LocallyLinearEmbedding(*, n_neighbors=5, n_components=2, reg=0.001, eigen_solver='auto', tol=1e-06, max_iter=100, method='standard', hessian_tol=0.0001, modified_tol=1e-12, neighbors_algorithm='auto', random_state=None, n_jobs=None)[source]#

Locally Linear Embedding.

Read more in the User Guide.

Parameters:

n_neighborsint, default=5

Number of neighbors to consider for each point.

n_componentsint, default=2

Number of coordinates for the manifold.

regfloat, default=1e-3

Regularization constant, multiplies the trace of the local covariance matrix of the distances.

eigen_solver{‘auto’, ‘arpack’, ‘dense’}, default=’auto’

The solver used to compute the eigenvectors. The available options are:

Warning

ARPACK can be unstable for some problems. It is best to try several random seeds in order to check results.

tolfloat, default=1e-6

Tolerance for ‘arpack’ method Not used if eigen_solver==’dense’.

max_iterint, default=100

Maximum number of iterations for the arpack solver. Not used if eigen_solver==’dense’.

method{‘standard’, ‘hessian’, ‘modified’, ‘ltsa’}, default=’standard’

hessian_tolfloat, default=1e-4

Tolerance for Hessian eigenmapping method. Only used if method == 'hessian'.

modified_tolfloat, default=1e-12

Tolerance for modified LLE method. Only used if method == 'modified'.

neighbors_algorithm{‘auto’, ‘brute’, ‘kd_tree’, ‘ball_tree’}, default=’auto’

Algorithm to use for nearest neighbors search, passed toNearestNeighbors instance.

random_stateint, RandomState instance, default=None

Determines the random number generator wheneigen_solver == ‘arpack’. Pass an int for reproducible results across multiple function calls. See Glossary.

n_jobsint or None, default=None

The number of parallel jobs to run.None means 1 unless in a joblib.parallel_backend context.-1 means using all processors. See Glossaryfor more details.

Attributes:

**embedding_**array-like, shape [n_samples, n_components]

Stores the embedding vectors

**reconstruction_error_**float

Reconstruction error associated with embedding_

**n_features_in_**int

Number of features seen during fit.

Added in version 0.24.

**feature_names_in_**ndarray of shape (n_features_in_,)

Names of features seen during fit. Defined only when Xhas feature names that are all strings.

Added in version 1.0.

**nbrs_**NearestNeighbors object

Stores nearest neighbors instance, including BallTree or KDtree if applicable.

See also

SpectralEmbedding

Spectral embedding for non-linear dimensionality reduction.

TSNE

Distributed Stochastic Neighbor Embedding.

References

[1]

Roweis, S. & Saul, L. Nonlinear dimensionality reduction by locally linear embedding. Science 290:2323 (2000).

[2]

Donoho, D. & Grimes, C. Hessian eigenmaps: Locally linear embedding techniques for high-dimensional data. Proc Natl Acad Sci U S A. 100:5591 (2003).

[4]

Zhang, Z. & Zha, H. Principal manifolds and nonlinear dimensionality reduction via tangent space alignment. Journal of Shanghai Univ. 8:406 (2004)

Examples

from sklearn.datasets import load_digits from sklearn.manifold import LocallyLinearEmbedding X, _ = load_digits(return_X_y=True) X.shape (1797, 64) embedding = LocallyLinearEmbedding(n_components=2) X_transformed = embedding.fit_transform(X[:100]) X_transformed.shape (100, 2)

fit(X, y=None)[source]#

Compute the embedding vectors for data X.

Parameters:

Xarray-like of shape (n_samples, n_features)

Training set.

yIgnored

Not used, present here for API consistency by convention.

Returns:

selfobject

Fitted LocallyLinearEmbedding class instance.

fit_transform(X, y=None)[source]#

Compute the embedding vectors for data X and transform X.

Parameters:

Xarray-like of shape (n_samples, n_features)

Training set.

yIgnored

Not used, present here for API consistency by convention.

Returns:

X_newarray-like, shape (n_samples, n_components)

Returns the instance itself.

get_feature_names_out(input_features=None)[source]#

Get output feature names for transformation.

The feature names out will prefixed by the lowercased class name. For example, if the transformer outputs 3 features, then the feature names out are: ["class_name0", "class_name1", "class_name2"].

Parameters:

input_featuresarray-like of str or None, default=None

Only used to validate feature names with the names seen in fit.

Returns:

feature_names_outndarray of str objects

Transformed feature names.

get_metadata_routing()[source]#

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routingMetadataRequest

A MetadataRequest encapsulating routing information.

get_params(deep=True)[source]#

Get parameters for this estimator.

Parameters:

deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

paramsdict

Parameter names mapped to their values.

set_output(*, transform=None)[source]#

Set output container.

See Introducing the set_output APIfor an example on how to use the API.

Parameters:

transform{“default”, “pandas”, “polars”}, default=None

Configure output of transform and fit_transform.

Added in version 1.4: "polars" option was added.

Returns:

selfestimator instance

Estimator instance.

set_params(**params)[source]#

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:

**paramsdict

Estimator parameters.

Returns:

selfestimator instance

Estimator instance.

transform(X)[source]#

Transform new points into embedding space.

Parameters:

Xarray-like of shape (n_samples, n_features)

Training set.

Returns:

X_newndarray of shape (n_samples, n_components)

Returns the instance itself.

Notes

Because of scaling performed by this method, it is discouraged to use it together with methods that are not scale-invariant (like SVMs).