.metrics.pairwise.

Note: Evaluation of eval_gradient is not analytic but numeric and all
      kernels support only isotropic distances. The parameter gamma is
      considered to be a hyperparameter and may be optimized. The other
      kernel parameters are set directly at initialization and are kept
      fixed.

.. versionadded:: 0.18

Parameters
----------
gamma : float, default=1.0
    Parameter gamma of the pairwise kernel specified by metric. It should
    be positive.

gamma_bounds : pair of floats >= 0 or "fixed", default=(1e-5, 1e5)
    The lower and upper bound on 'gamma'.
    If set to "fixed", 'gamma' cannot be changed during
    hyperparameter tuning.

metric : {"linear", "additive_chi2", "chi2", "poly", "polynomial",               "rbf", "laplacian", "sigmoid", "cosine"} or callable,               default="linear"
    The metric to use when calculating kernel between instances in a
    feature array. If metric is a string, it must be one of the metrics
    in pairwise.PAIRWISE_KERNEL_FUNCTIONS.
    If metric is "precomputed", X is assumed to be a kernel matrix.
    Alternatively, if metric is a callable function, it is called on each
    pair of instances (rows) and the resulting value recorded. The callable
    should take two arrays from X as input and return a value indicating
    the distance between them.

pairwise_kernels_kwargs : dict, default=None
    All entries of this dict (if any) are passed as keyword arguments to
    the pairwise kernel function.

Examples
--------
>>> 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...]])
Nc