def _get_kernel_map(self, X, y):
# When adding a new kernel, update this table and the _get_kernel_map
# method
if callable(self.ovkernel):
ovkernel = self.ovkernel
elif type(self.ovkernel) is 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 == 'DPeriodic':
self.A_ = self._default_decomposable_op(y)
self.period_ = self._default_period(X, y)
kernel_params = {'A': self.A_,
'scalar_kernel': first_periodic_kernel,
'scalar_kernel_params': {'gamma': self.theta,
'period':
self.period_}, }
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
ovkernel = PAIRWISE_KERNEL_FUNCTIONS[self.ovkernel](
**kernel_params)
else:
raise NotImplementedError('unsupported kernel')
return ovkernel(X)
评论列表
文章目录