locally_linear_embedding#

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

对数据执行局部线性嵌入分析。

Read more in the User Guide.

参数:
X{array-like, NearestNeighbors}

Sample data, shape = (n_samples, n_features), in the form of a numpy array or a NearestNeighbors object.

n_neighborsint

Number of neighbors to consider for each point.

n_componentsint

流形的坐标数量。

regfloat, default=1e-3

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

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

auto : algorithm will attempt to choose the best method for input data

arpackuse arnoldi iteration in shift-invert mode.

For this method, M may be a dense matrix, sparse matrix, or general linear operator. Warning: ARPACK can be unstable for some problems. It is best to try several random seeds in order to check results.

denseuse standard dense matrix operations for the eigenvalue

decomposition. For this method, M must be an array or matrix type. This method should be avoided for large problems.

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.

method{‘standard’, ‘hessian’, ‘modified’, ‘ltsa’}, default=’standard’
standarduse the standard locally linear embedding algorithm.

see reference [1]

hessianuse the Hessian eigenmap method. This method requires

n_neighbors > n_components * (1 + (n_components + 1) / 2. see reference [2]

modifieduse the modified locally linear embedding algorithm.

see reference [3]

ltsause local tangent space alignment algorithm

see reference [4]

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’.

random_stateint, RandomState instance, default=None

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

n_jobsint or None, default=None

用于邻居搜索的并行作业数。None 表示 1,除非在 joblib.parallel_backend 上下文中。-1 表示使用所有处理器。有关详细信息,请参阅 词汇表

返回:
Yndarray of shape (n_samples, n_components)

Embedding vectors.

squared_errorfloat

Reconstruction error for the embedding vectors. Equivalent to norm(Y - W Y, 'fro')**2, where W are the reconstruction weights.

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)

示例

>>> from sklearn.datasets import load_digits
>>> from sklearn.manifold import locally_linear_embedding
>>> X, _ = load_digits(return_X_y=True)
>>> X.shape
(1797, 64)
>>> embedding, _ = locally_linear_embedding(X[:100],n_neighbors=5, n_components=2)
>>> embedding.shape
(100, 2)