sklearn.manifold.Isomap¶
class sklearn.manifold.Isomap(*, n_neighbors=5, n_components=2, eigen_solver='auto', tol=0, max_iter=None, path_method='auto', neighbors_algorithm='auto', n_jobs=None, metric='minkowski', p=2, metric_params=None)
[源码]
等值图嵌入
通过等距映射的非线性降维
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
n_neighbors | integer 每个点要考虑的邻域数。 |
n_components | integer 流形的坐标数 |
eigen_solver | ['auto'|'arpack'|'dense'] “auto”:尝试为给定问题选择最有效的解决方案。 “arpack”:使用Arnoldi分解来查找特征值和特征向量。 “dense”:使用直接解算器(即LAPACK)进行特征值分解。 |
tol | float 传递给arpack或lobpcg的收敛公差。如果eigen_solver=='dense',则不使用。 |
max_iter | integer arpack求解器的最大迭代次数。如果eigen_solver =='dense',则不使用。 |
path_method | string [‘auto’|’FW’|'D'] 在寻找最短路径时使用的方法。 “auto”:尝试自动选择最佳算法。 “FW”:Floyd-Warshall算法。 “D”:Dijkstra的算法。 |
neighbors_algorithm | string[‘auto’|’brute’|’kd_tree’|’ball_tree’] 用于最近邻居搜索的算法,传递给neighbors.NearestNeighbors实例。 |
n_jobs | int or None, default=None 要并行运行的作业数。 None 除非在joblib.parallel_backend 上下文,否则表示1 。 -1 表示使用所有处理器。有关更多详细信息,请参见词汇表。 |
metric | string, or callable, default=”minkowski” 计算要素阵列中实例之间的距离时使用的度量。如果metric是字符串或可调用,则它必须是 sklearn.metrics.pairwise_distances 的度量参数。如果度量是“预先计算的”,则将X假定为距离矩阵,并且必须为平方。X可能是一个词汇表。0.22版中的新功能。 |
p | int, default=2 sklearn.metrics.pairwise.pairwise_distances中的Minkowski指标的参数。当p = 1时,这等效于对p = 2使用manhattan_distance(l1)和euclidean_distance(l2)。对于任意p,使用minkowski_distance(l_p)。 0.22版中的新功能。 |
metric_params | dict, default=None 度量功能的其他关键字参数。 0.22版中的新功能。 |
属性 | 说明 |
---|---|
embedding_ | array-like, shape (n_samples, n_components) 存储嵌入向量。 |
kernel_pca_ | objectKernelPCA 用于实现嵌入的对象。 |
nbrs_ | sklearn.neighbors.NearestNeighbors instance 存储最近的实例,包括BallTree或KDtree(如果适用)。 |
dist_matrix_ | array-like, shape (n_samples, n_samples) 存储训练数据的测地距离矩阵。 |
参考文献
1 R7f4d308f5054-1 Tenenbaum, J.B.; De Silva, V.; & Langford, J.C. A global geometric framework for nonlinear dimensionality reduction. Science 290 (5500)
实例
>>> from sklearn.datasets import load_digits
>>> from sklearn.manifold import Isomap
>>> X, _ = load_digits(return_X_y=True)
>>> X.shape
(1797, 64)
>>> embedding = Isomap(n_components=2)
>>> X_transformed = embedding.fit_transform(X[:100])
>>> X_transformed.shape
(100, 2)
方法 | 说明 |
---|---|
fit (self, X[, y]) |
计算数据X的嵌入向量 |
fit_transform (self, X[, y]) |
根据X中的数据拟合模型并转换X。 |
get_params (self[, deep]) |
获取此估计量的参数。 |
reconstruction_error (self) |
计算嵌入的重建误差。 |
set_params (self, **params) |
设置此估算量的参数。 |
transform (self, X) |
转换X。 |
__init__(self, *, n_neighbors=5, n_components=2, eigen_solver='auto', tol=0, max_iter=None, path_method='auto', neighbors_algorithm='auto', n_jobs=None, metric='minkowski', p=2, metric_params=None)
[源码]
初始化self, 请参阅help(type(self))以获得准确的说明。
fit(self, X, y=None)
[源码]
计算数据X的嵌入向量
参数 | 说明 |
---|---|
X | {array-like, sparse graph, BallTree, KDTree, NearestNeighbors} 以numpy数组,稀疏图,预计算树或NearestNeighbors对象形式的形状为(n_samples,n_features)的样本数据。 |
y | Ignored |
返回值 | 说明 |
---|---|
self | returns an instance of self. |
get_params(self, deep=True)
[源码]
获取此估计量的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估算量和作为估算量的所包含子对象的参数。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到其值。 |
reconstruction_error(self)
计算嵌入的重建误差。
返回值 | 说明 |
---|---|
reconstruction_error | float |
注
等值线图嵌入的成本函数为
E = frobenius_norm[K(D) - K(D_fit)] / n_samples
其中D是输入数据X的距离矩阵,D_fit是输出嵌入X_fit的距离矩阵,而K是isomap内核:
K(D) = -0.5 * (I - 1/n_samples) * D^2 * (I - 1/n_samples)
set_params(self, **params)
[源码]
设置此估算量的参数。
该方法适用于简单估计量以及嵌套对象(例如pipelines)。后者具有形式的参数。<component>__<parameter>
以便可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算量参数。 |
返回值 | 说明 |
---|---|
self | object 估算量实例。 |
transform(self, X)
[源码]
转换X。
这是通过将点X链接到训练数据的测地距离图中来实现的。首先在训练数据中找到X的n_近邻,然后计算出X上每个点到训练数据中每个点的最短测地线距离,以构造核。X的嵌入是该核在训练集的嵌入向量上的投影。
参数 | 说明 |
---|---|
X | array-like, shape (n_queries, n_features) 如果neighborks_algorithm='precomputed',则假设X是距离矩阵或形状的稀疏图(n_queries, n_samples_fit). |
返回值 | 说明 |
---|---|
X_new | array-like, shape (n_queries, n_components) |