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]#
对数据执行局部线性嵌入分析。
在用户指南中了解更多。
- 参数:
- X{array-like, NearestNeighbors}
样本数据,形状 = (n_samples, n_features),以 NumPy 数组或 NearestNeighbors 对象的形式提供。
- n_neighborsint
为每个点考虑的近邻数量。
- n_componentsint
流形的坐标数量。
- regfloat, default=1e-3
正则化常数,乘以距离局部协方差矩阵的迹。
- eigen_solver{‘auto’, ‘arpack’, ‘dense’}, default=’auto’
auto:算法将尝试为输入数据选择最佳方法
- arpack在移位反转模式下使用 Arnoldi 迭代。
对于此方法,M 可以是密集矩阵、稀疏矩阵或一般线性算子。警告:ARPACK 对于某些问题可能不稳定。最好尝试几个随机种子以检查结果。
- dense使用标准密集矩阵运算进行特征值
分解。对于此方法,M 必须是数组或矩阵类型。大型问题应避免使用此方法。
- tolfloat, default=1e-6
‘arpack’ 方法的容差。如果 eigen_solver=='dense' 则不使用。
- max_iterint, default=100
arpack 求解器的最大迭代次数。
- method{‘standard’, ‘hessian’, ‘modified’, ‘ltsa’}, default=’standard’
- hessian_tolfloat, default=1e-4
Hessian 特征映射方法的容差。仅当 method == ‘hessian’ 时使用。
- modified_tolfloat, default=1e-12
改进 LLE 方法的容差。仅当 method == ‘modified’ 时使用。
- random_stateint, RandomState instance, default=None
确定当
solver
== ‘arpack’ 时随机数生成器。传入一个整数以在多次函数调用中获得可重现的结果。参见词汇表。- n_jobsint or None, default=None
用于近邻搜索的并行作业数。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关更多详细信息,请参见词汇表。
- 返回:
- Y形状为 (n_samples, n_components) 的 ndarray
嵌入向量。
- squared_errorfloat
嵌入向量的重构误差。相当于
norm(Y - W Y, 'fro')**2
,其中 W 是重构权重。
参考文献
[1]Roweis, S. & Saul, L. 通过局部线性嵌入的非线性降维。Science 290:2323 (2000)。
[2]Donoho, D. & Grimes, C. Hessian 特征映射:高维数据的局部线性嵌入技术。Proc Natl Acad Sci U S A. 100:5591 (2003)。
[4]Zhang, Z. & Zha, H. 通过切线空间对齐的主流形和非线性降维。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)