Nystroem#

class sklearn.kernel_approximation.Nystroem(kernel='rbf', *, gamma=None, coef0=None, degree=None, kernel_params=None, n_components=100, random_state=None, n_jobs=None)#

近似使用训练数据的一个子集来近似一个核映射。

为任意核构造一个近似的特征映射,使用数据的一个子集作为基。

更多信息请参阅 用户指南

Added in version 0.13.

Parameters:
kernelstr or callable, default=’rbf’

要近似的核映射。一个可调用对象应接受两个参数 并传递给此对象作为 kernel_params 的关键字参数, 并应返回一个浮点数。

gammafloat, default=None

RBF、拉普拉斯、多项式、指数卡方 和 sigmoid 核的 Gamma 参数。默认值的解释留给 核;请参阅 sklearn.metrics.pairwise 的文档。 其他核忽略此参数。

coef0float, default=None

多项式和 sigmoid 核的零系数。 其他核忽略此参数。

degreefloat, default=None

多项式核的度数。其他核忽略此参数。

kernel_paramsdict, default=None

传递给核函数的关键字参数。

n_componentsint, default=100

要构造的特征数量。 将用于构造映射的数据点数量。

random_stateint, RandomState instance or None, default=None

伪随机数生成器,用于控制均匀采样而无需 替换 n_components 的训练数据以构造 基核。 传递一个 int 以在多次函数调用中重现输出。 请参阅 Glossary

n_jobsint, default=None

用于计算的作业数。通过将 核矩阵分解为 n_jobs 个均匀切片并在 并行计算它们。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。请参阅 Glossary 了解更多详情。

Added in version 0.24.

Attributes:
components_ndarray of shape (n_components, n_features)

用于构造特征映射的训练点子集。

component_indices_ndarray of shape (n_components)

components_ 在训练集中的索引。

normalization_ndarray of shape (n_components, n_components)

嵌入所需的归一化矩阵。 components_ 上的核矩阵的平方根。

n_features_in_int

fit 期间看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 期间看到的特征名称。仅当 X 的特征名称均为字符串时定义。

Added in version 1.0.

See also

AdditiveChi2Sampler

近似加性卡方核的特征映射。

PolynomialCountSketch

通过张量草图进行多项式核近似。

RBFSampler

使用随机傅里叶特征近似 RBF 核特征映射。

SkewedChi2Sampler

近似“偏斜卡方”核的特征映射。

sklearn.metrics.pairwise.kernel_metrics

内置核列表。

References

  • Williams, C.K.I. and Seeger, M. “Using the Nystroem method to speed up kernel machines”, Advances in neural information processing systems 2001

  • T. Yang, Y. Li, M. Mahdavi, R. Jin and Z. Zhou “Nystroem Method vs Random Fourier Features: A Theoretical and Empirical Comparison”, Advances in Neural Information Processing Systems 2012

Examples

>>> from sklearn import datasets, svm
>>> from sklearn.kernel_approximation import Nystroem
>>> X, y = datasets.load_digits(n_class=9, return_X_y=True)
>>> data = X / 16.
>>> clf = svm.LinearSVC()
>>> feature_map_nystroem = Nystroem(gamma=.2,
...                                 random_state=1,
...                                 n_components=300)
>>> data_transformed = feature_map_nystroem.fit_transform(data)
>>> clf.fit(data_transformed, y)
LinearSVC()
>>> clf.score(data_transformed, y)
0.9987...
fit(X, y=None)#

拟合估计器到数据。

采样一部分训练点,计算这些点上的核函数并计算归一化矩阵。

Parameters:
Xarray-like, shape (n_samples, n_features)

训练数据,其中 n_samples 是样本数量, n_features 是特征数量。

yarray-like, shape (n_samples,) or (n_samples, n_outputs), default=None

目标值(无监督变换时为None)。

Returns:
selfobject

返回实例本身。

fit_transform(X, y=None, **fit_params)#

拟合数据,然后进行转换。

将转换器拟合到 Xy ,并带有可选参数 fit_params , 并返回 X 的转换版本。

Parameters:
X形状为 (n_samples, n_features) 的类数组

输入样本。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组, 默认=None

目标值(无监督转换为 None)。

**fit_paramsdict

其他拟合参数。

Returns:
X_new形状为 (n_samples, n_features_new) 的 ndarray 数组

转换后的数组。

get_feature_names_out(input_features=None)#

获取转换后的输出特征名称。

输出特征名称将以小写的类名作为前缀。例如,如果转换器输出3个特征,那么输出特征名称将是: ["class_name0", "class_name1", "class_name2"]

Parameters:
input_features类似数组的对象或None,默认为None

仅用于验证特征名称与 fit 中看到的名称。

Returns:
feature_names_outndarray of str对象

转换后的特征名称。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_output(*, transform=None)#

设置输出容器。

请参阅 介绍 set_output API 以了解如何使用API的示例。

Parameters:
transform{“default”, “pandas”, “polars”}, 默认=None

配置 transformfit_transform 的输出。

  • "default" : 转换器的默认输出格式

  • "pandas" : DataFrame 输出

  • "polars" : Polars 输出

  • None : 转换配置不变

Added in version 1.4: "polars" 选项已添加。

Returns:
self估计器实例

估计器实例。

set_params(**params)#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline )。后者具有形式为 <component>__<parameter> 的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(X)#

应用特征图到X。

使用核函数在某些训练点和X之间计算近似特征图。

Parameters:
X形状为 (n_samples, n_features) 的类数组

要转换的数据。

Returns:
X_transformed形状为 (n_samples, n_components) 的 ndarray

转换后的数据。