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_ object
KernelPCA 用于实现嵌入的对象。
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
(179764)
>>> embedding = Isomap(n_components=2)
>>> X_transformed = embedding.fit_transform(X[:100])
>>> X_transformed.shape
(1002)
方法 说明
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)