成对核#
- class sklearn.gaussian_process.kernels.PairwiseKernel(gamma=1.0, gamma_bounds=(1e-05, 100000.0), metric='linear', pairwise_kernels_kwargs=None)[source]#
sklearn.metrics.pairwise中核函数的包装器。
对sklearn.metrics.pairwise中核函数功能的简单包装。
- 注意:eval_gradient的评估不是解析的,而是数值的,并且
所有核函数只支持各向同性距离。参数gamma被认为是一个超参数,可以被优化。其他核参数在初始化时直接设置,并保持不变。
版本0.18中添加。
- 参数:
- gammafloat, default=1.0
由metric指定的成对核的参数gamma。它应该为正数。
- gamma_bounds一对浮点数>= 0 或 “fixed”, default=(1e-5, 1e5)
‘gamma’的下限和上限。如果设置为“fixed”,“gamma”在超参数调整期间不能更改。
- metric{"linear", "additive_chi2", "chi2", "poly", "polynomial", "rbf", "laplacian", "sigmoid", "cosine"} 或可调用对象,默认为“linear”
用于计算特征数组中实例之间核函数的度量标准。如果 metric 是字符串,则它必须是 pairwise.PAIRWISE_KERNEL_FUNCTIONS 中的度量之一。如果 metric 是“precomputed”,则假设 X 是一个核矩阵。或者,如果 metric 是一个可调用函数,则它会在每一对实例(行)上调用,并记录结果值。此可调用函数应将 X 中的两数组作为输入,并返回一个表示它们之间距离的值。
- pairwise_kernels_kwargsdict, default=None
此字典(如有)的所有条目都将作为关键字参数传递给成对核函数。
示例
>>> from sklearn.datasets import load_iris >>> from sklearn.gaussian_process import GaussianProcessClassifier >>> from sklearn.gaussian_process.kernels import PairwiseKernel >>> X, y = load_iris(return_X_y=True) >>> kernel = PairwiseKernel(metric='rbf') >>> gpc = GaussianProcessClassifier(kernel=kernel, ... random_state=0).fit(X, y) >>> gpc.score(X, y) 0.9733... >>> gpc.predict_proba(X[:2,:]) array([[0.8880..., 0.05663..., 0.05532...], [0.8676..., 0.07073..., 0.06165...]])
- __call__(X, Y=None, eval_gradient=False)[source]#
返回核函数 k(X, Y) 及其梯度(可选)。
- 参数:
- Xndarray of shape (n_samples_X, n_features)
返回的核函数 k(X, Y) 的左参数
- Yndarray of shape (n_samples_Y, n_features), default=None
返回的核函数 k(X, Y) 的右参数。如果为 None,则计算 k(X, X)。
- eval_gradientbool, default=False
确定是否计算关于核超参数对数的梯度。仅当 Y 为 None 时才支持。
- 返回:
- Kndarray of shape (n_samples_X, n_samples_Y)
核函数 k(X, Y)
- K_gradientndarray of shape (n_samples_X, n_samples_X, n_dims), optional
关于核超参数对数的核函数 k(X, X) 的梯度。仅当
eval_gradient
为 True 时返回。
- property bounds#
返回 theta 的对数转换边界。
- 返回:
- boundsndarray of shape (n_dims, 2)
核超参数 theta 的对数转换边界
- diag(X)[source]#
返回核函数 k(X, X) 的对角线。
此方法的结果与 np.diag(self(X)) 相同;但是,它可以更有效地计算,因为只计算对角线。
- 参数:
- Xndarray of shape (n_samples_X, n_features)
返回的核函数 k(X, Y) 的左参数
- 返回:
- K_diagndarray of shape (n_samples_X,)
核函数 k(X, X) 的对角线
- get_params(deep=True)[source]#
获取此内核的参数。
- 参数:
- deepbool, default=True
如果为 True,则将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到它们的值。
- property hyperparameters#
返回所有超参数规范的列表。
- property n_dims#
返回内核的非固定超参数的数量。
- property requires_vector_input#
返回内核是定义在固定长度特征向量上还是通用对象上。为了向后兼容性,默认为 True。
- set_params(**params)[source]#
设置此内核的参数。
此方法适用于简单的内核以及嵌套内核。后者具有
<component>__<parameter>
形式的参数,因此可以更新嵌套对象的每个组件。- 返回:
- self
- property theta#
返回(扁平化,对数转换的)非固定超参数。
请注意,theta 通常是内核超参数的对数转换值,因为搜索空间的这种表示更适合超参数搜索,因为像长度尺度这样的超参数自然存在于对数尺度上。
- 返回:
- thetandarray of shape (n_dims,)
内核的非固定、对数转换的超参数