def _get_kernel(self, X, y):
# When adding a new kernel, update this table and the _get_kernel_map
# method
if callable(self.ovkernel):
ov_kernel = self.ovkernel
elif isinstance(self.ovkernel, str):
# 1) check string and assign the right parameters
if self.ovkernel == 'DGauss':
self.A_ = self._default_decomposable_op(y)
kernel_params = {'A': self.A_, 'scalar_kernel': rbf_kernel,
'scalar_kernel_params': {'gamma': self.gamma}}
elif self.ovkernel == 'DSkewed_chi2':
self.A_ = self._default_decomposable_op(y)
kernel_params = {'A': self.A_, 'scalar_kernel': 'skewed_chi2',
'scalar_kernel_params': {'skew': self.skew}}
elif self.ovkernel == 'CurlF':
kernel_params = {'gamma': self.gamma}
else:
raise NotImplementedError('unsupported kernel')
# 2) Uses lookup table to select the right kernel from string
ov_kernel = \
PAIRWISE_KERNEL_FUNCTIONS[self.ovkernel](**kernel_params)
else:
raise NotImplementedError('unsupported kernel')
return ov_kernel
评论列表
文章目录