sklearn.decomposition.KernelPCA¶
class sklearn.decomposition.KernelPCA(n_components=None, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, alpha=1.0, fit_inverse_transform=False, eigen_solver='auto', tol=0, max_iter=None, remove_zero_eig=False, random_state=None, copy_X=True, n_jobs=None)
内核主成分分析(KPCA)
通过使用内核减少非线性维数(请参阅成对度量,近似关系和内核)。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
n_components | int, default=None 组件数。如果为None,则将保留所有非零分量。 |
kernel | “linear” , “poly” , “rbf” ,“sigmoid” , “cosine” , “precomputed” 内核。默认值为“linear”。 |
gamma | float, default=1/n_features rbf,poly和Sigmoid内核的内核系数。被其他内核忽略。 |
degree | int, default=3 多核度。被其他内核忽略。 |
coef0 | float, default=1 poly核和sigmoid核中的独立项。被其他内核忽略。 |
kernel_params | mapping of string to any, default=None 作为可调用对象传递的内核的参数(关键字参数)和值。被其他内核忽略。 |
alpha | int, default=1.0 岭回归的超参数,用于学习逆变换(当fit_inverse_transform = True时)。 |
fit_inverse_transform | bool, default=False 了解非预计算内核的逆变换。(即学会找到一个点的原像) |
eigen_solver | string [‘auto’,’dense’,’arpack’], default=’auto’ 选择要使用的特征求解器。如果n_components远小于训练样本的数量,则arpack可能比密集特征求解器更有效。 |
tol | float, default=0 arpack的收敛容限。如果为0,则arpack将选择最佳值。 |
max_iter | int, default=None arpack的最大迭代次数。如果为None,则arpack将选择最佳值。 |
remove_zero_eig | boolean, default=False 如果为True,则将删除所有具有零特征值的分量,以使输出中的分量数可能小于n_components(有时由于数字不稳定性甚至为零)。当n_components为None时,将忽略此参数,并删除特征值为零的组件。 |
random_state | int, RandomState instance, default=None 在 eigen_solver =='arpack'时使用。在多个函数调用之间传递int以获得可重复的结果。请参阅词汇表。版本0.18中的新功能。 |
copy_X | boolean, default=True 如果为True,则模型将复制输入X并将其存储在 X_fit_ 属性中。如果对X不再做任何更改,则该设置copy_X=False 将通过存储引用来 节省内存。版本0.18中的新功能。 |
n_jobs | int or None, optional (default=None) 要运行的并行作业数。 None 除非joblib.parallel_backend 上下文中,否则表示1 。 -1 表示使用所有处理器。有关 更多详细信息,请参见词汇表。版本0.18中的新功能。 |
属性 | 说明 |
---|---|
lambdas_ | array, (n_components,) 中心核矩阵的特征值以降序排列。如果 n_components 和remove_zero_eig 均未设置,则将存储所有值。 |
alphas_ | array, (n_samples, n_components) 中心核矩阵的特征向量。如果 n_components 和 remove_zero_eig 均未设置,则将存储所有组件。 |
dual_coef_ | array, (n_samples, n_features) 逆变换矩阵。仅当 fit_inverse_transform 为True 时可用 。 |
X_transformed_fit_ | array, (n_samples, n_components) 拟合数据在内核主成分上的投影。仅当 fit_inverse_transform 为True 时可用。 |
X_fit_ | (n_samples, n_features) 用于拟合模型的数据。如果为 copy_X=False ,则X_fit_ 为参考。此属性用于进行转换的调用。 |
参考文献
内核PCA引入于:
Bernhard Schoelkopf, Alexander J. Smola, and Klaus-Robert Mueller. 1999. Kernel principal component analysis. In Advances in kernel methods, MIT Press, Cambridge, MA, USA 327-352.
例子
>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import KernelPCA
>>> X, _ = load_digits(return_X_y=True)
>>> transformer = KernelPCA(n_components=7, kernel='linear')
>>> X_transformed = transformer.fit_transform(X)
>>> X_transformed.shape
(1797, 7)
方法
方法 | 说明 |
---|---|
fit (X[, y]) |
根据X中的数据拟合模型。 |
fit_transform (X[, y]) |
根据X中的数据拟合模型并转换X。 |
get_params ([deep]) |
获取此估计量的参数。 |
inverse_transform (X) |
将X转换回原始空间。 |
set_params (**params) |
设置此估算器的参数。 |
transform (X) |
转换X。 |
__init__(n_components=None, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, alpha=1.0, fit_inverse_transform=False, eigen_solver='auto', tol=0, max_iter=None, remove_zero_eig=False, random_state=None, copy_X=True, n_jobs=None)
初始化self。请参阅help(type(self))获取准确的信息。
fit(X, y=None)
根据X中的数据拟合模型。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 训练向量,其中样本数量为n_samples个,特征数量为n_features个。 |
返回值 | 说明 |
---|---|
self | object 返回实例本身。 |
fit_transform(X, y=None, **params)
根据X中的数据拟合模型并转换X。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 训练向量,其中样本数量为n_samples个,特征数量为n_features个。 |
返回值 | 说明 |
---|---|
X_new | array-like, shape (n_samples, n_components) |
get_params(deep=True)
获取此估计量的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估算器和其所包含子对象的参数。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到其值。 |
inverse_transform(X )
将X转换回原始空间。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_components) |
返回值 | 说明 |
---|---|
X_new | array-like, shape (n_samples, n_features) |
参考文献
“Learning to Find Pre-Images”, G BakIr et al, 2004.
set_params(**params)
设置此估算器的参数。
该方法适用于简单的估计器以及嵌套对象(例如管道)。后者具有<component>__<parameter>
形式的参数, 以便可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算器参数。 |
返回值 | 说明 |
---|---|
self | object 估算器实例。 |
transform(X )
转换X。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) |
返回值 | 说明 |
---|---|
X_new | array-like, shape (n_samples, n_components) |