局部线性嵌入#
- 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]#
局部线性嵌入。
在用户指南中阅读更多内容。
- 参数:
- n_neighbors整型, 默认值=5
每个点要考虑的邻居数量。
- n_components整型, 默认值=2
流形的坐标数量。
- reg浮点型, 默认值=1e-3
正则化常数,乘以距离的局部协方差矩阵的迹。
- eigen_solver{‘auto’, ‘arpack’, ‘dense’}, 默认值=’auto’
用于计算特征向量的求解器。可用选项有
'auto'
: 算法将尝试为输入数据选择最佳方法。'arpack'
: 在移位反转模式下使用 Arnoldi 迭代。对于此方法,M 可以是密集矩阵、稀疏矩阵或通用线性算子。'dense'
: 使用标准密集矩阵操作进行特征值分解。对于此方法,M 必须是数组或矩阵类型。对于大型问题应避免使用此方法。
警告
ARPACK 对于某些问题可能不稳定。最好尝试使用多个随机种子来检查结果。
- tol浮点型, 默认值=1e-6
‘arpack’ 方法的容差。如果 eigen_solver==’dense’ 则不使用。
- max_iter整型, 默认值=100
ARPACK 求解器的最大迭代次数。如果 eigen_solver==’dense’ 则不使用。
- method{‘standard’, ‘hessian’, ‘modified’, ‘ltsa’}, 默认值=’standard’
- hessian_tol浮点型, 默认值=1e-4
Hessian 特征映射方法的容差。仅当
method == 'hessian'
时使用。- modified_tol浮点型, 默认值=1e-12
改进 LLE 方法的容差。仅当
method == 'modified'
时使用。- neighbors_algorithm{‘auto’, ‘brute’, ‘kd_tree’, ‘ball_tree’}, 默认值=’auto’
用于最近邻搜索的算法,传递给
NearestNeighbors
实例。- random_state整型,RandomState 实例,默认值=None
当
eigen_solver
== ‘arpack’ 时确定随机数生成器。传递一个整型值以在多次函数调用中获得可重现的结果。参见术语表。- n_jobs整型或 None,默认值=None
要运行的并行作业数。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关更多详细信息,请参见术语表。
- 属性:
另请参见
SpectralEmbedding
用于非线性降维的谱嵌入。
TSNE
分布式随机邻居嵌入。
参考文献
[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. 通过切线空间对齐的主流形和非线性降维。上海大学学报 8:406 (2004)
示例
>>> 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]#
计算数据 X 的嵌入向量。
- 参数:
- X类数组,形状 (n_samples, n_features)
训练集。
- y忽略
未使用,按约定在此处是为了 API 一致性。
- 返回:
- self对象
已拟合的
LocallyLinearEmbedding
类实例。
- fit_transform(X, y=None)[source]#
计算数据 X 的嵌入向量并转换 X。
- 参数:
- X类数组,形状 (n_samples, n_features)
训练集。
- y忽略
未使用,按约定在此处是为了 API 一致性。
- 返回:
- X_new类数组,形状 (n_samples, n_components)
返回实例本身。
- get_feature_names_out(input_features=None)[source]#
获取转换的输出特征名称。
输出特征名称将以小写类名作为前缀。例如,如果转换器输出 3 个特征,则输出特征名称为:
["class_name0", "class_name1", "class_name2"]
。- 参数:
- input_features字符串或 None 的类数组,默认值=None
仅用于根据在
fit
中看到的名称验证特征名称。
- 返回:
- feature_names_out字符串对象的 ndarray
转换后的特征名称。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查看用户指南了解路由机制的工作原理。
- 返回:
- routingMetadataRequest
封装路由信息的
MetadataRequest
。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deep布尔型, 默认值=True
如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回:
- params字典
参数名称映射到其值。
- set_output(*, transform=None)[source]#
设置输出容器。
有关如何使用 API 的示例,请参见set_output API 简介。
- 参数:
- transform{“default”, “pandas”, “polars”},默认值=None
配置
transform
和fit_transform
的输出。"default"
: 转换器的默认输出格式"pandas"
: DataFrame 输出"polars"
: Polars 输出None
: 转换配置不变
1.4 版本新增: 添加了
"polars"
选项。
- 返回:
- self估计器实例
估计器实例。