sklearn.manifold.SpectralEmbedding¶
class sklearn.manifold.SpectralEmbedding(n_components=2, *, affinity='nearest_neighbors', gamma=None, random_state=None, eigen_solver=None, n_neighbors=None, n_jobs=None)
[源码]
频谱嵌入用于非线性降维。
形成指定函数给定的亲和矩阵,并将光谱分解应用于相应的图拉普拉斯图。对于每个数据点,通过特征向量的值来给出结果转换。
注意:拉普拉斯特征图是此处实现的实际算法。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
n_components | integer, default: 2 降维到的维数 |
affinity | string or callable, default How to construct the affinity matrix. - 'nearest_neighbors':通过计算最近邻图构造亲和矩阵。 - ‘rbf’ :通过计算径向基函数(RBF)内核来构造亲和矩阵。 - 'precompulated':将X解释为预计算的亲和矩阵。 - 'precomputed_nearest_neighbors':将X解释为预计算最近邻的稀疏图,并通过选择 n_neighbors 最近邻来构造亲和力矩阵。- callable:使用传入函数作为关联函数函数接受数据矩阵(n_samples, n_features)和返回关联矩阵(n_samples, n_samples)。 |
gamma | float, optional, default rbf核的核系数。 |
random_state | int, RandomState instance, default=None 当 solver =='amg' 时,确定用于lobpcg特征向量初始化的随机数生成器。在多个函数调用之间传递int以获得可重复的结果。请参阅:term: Glossary <random_state> . |
eigen_solver | {None, ‘arpack’, ‘lobpcg’, or ‘amg’} 采用特征值分解策略。AMG要求安装pyamg。在非常大的,稀疏的问题上它可以更快。 |
n_neighbors | int, default 最近邻图构建的最近邻数。 |
n_jobs | int or None, optional (default=None) 用于进行计算的CPU数量。 如果使用多个初始化( n_init ),则算法的每次运行都是并行计算的。None 除非在joblib.parallel_backend 环境中,否则表示1 。 undefined表示使用所有处理器。有关更多详细信息,请参见词汇表。 |
属性 | 说明 |
---|---|
embedding_ | array, shape = (n_samples, n_components) 训练矩阵的频谱嵌入。 |
affinity_matrix_ | array, shape = (n_samples, n_samples) 由样本或预计算的亲和矩阵。 |
n_neighbors_ | int 有效使用的最近邻的数量。 |
参考文献
1 A Tutorial on Spectral Clustering, 2007 Ulrike von Luxburg http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.165.9323
2 On Spectral Clustering: Analysis and an algorithm, 2001 Andrew Y. Ng, Michael I. Jordan, Yair Weiss http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.8100
3 Normalized cuts and image segmentation, 2000 Jianbo Shi, Jitendra Malik http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.160.2324
实例
>>> from sklearn.datasets import load_digits
>>> from sklearn.manifold import SpectralEmbedding
>>> X, _ = load_digits(return_X_y=True)
>>> X.shape
(1797, 64)
>>> embedding = SpectralEmbedding(n_components=2)
>>> X_transformed = embedding.fit_transform(X[:100])
>>> X_transformed.shape
(100, 2)
方法 | 说明 |
---|---|
fit (X[, y]) |
根据X中的数据拟合模型。 |
fit_transform (X[, y]) |
根据X中的数据拟合模型并转换X。 |
get_params ([deep]) |
获取此估计量的参数。 |
set_params (**params) |
设置此估算量的参数。 |
__init__(n_components=2, *, affinity='nearest_neighbors', gamma=None, random_state=None, eigen_solver=None, n_neighbors=None, n_jobs=None)
[源码]
初始化self, 请参阅help(type(self))以获得准确的说明。
fit(X, y=None)
[源码]
根据X中的数据拟合模型。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix}, shape (n_samples, n_features) 训练向量,其中n_samples是样本数,n_features是特征数。 如果affinity(亲和度)是“预先计算的” X : {array-like, sparse matrix},shape (n_samples, n_samples),则将X解释为根据样本计算得出的预先计算的邻接图。 |
返回值 | 说明 |
---|---|
self | object 返回实例本身。 |
fit_transform(X, y=None)
[源码]
根据X中的数据拟合模型并转换X。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix}, shape (n_samples, n_features) 训练向量,其中n_samples是样本数,n_features是特征数。 如果affinity(亲和度)是“预先计算的” X : {array-like, sparse matrix},shape (n_samples, n_samples),则将X解释为根据样本计算得出的预先计算的邻接图。 |
返回值 | 说明 |
---|---|
X_new | array-like, shape (n_samples, n_components) |
get_params(deep=True)
[源码]
获取此估计量的参数
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估算量和作为估算量的包含子对象的参数。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 映射到其值的参数名。 |
set_params(**params)
[源码]
设置此估算量的参数。
该方法适用于简单估计量以及嵌套对象(例如pipelines)。后者具有形式的参数。<component>__<parameter>
以便可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算量参数。 |
返回值 | 说明 |
---|---|
self | object 估算量实例。 |