code: def polynomial_kernel(X, Y=None, degree=3, gamma=None, coef0=1):
      """
      Compute the polynomial kernel between X and Y::
  
          K(X, Y) = (gamma <X, Y> + coef0)^degree
  
      Read more in the :ref:`User Guide <polynomial_kernel>`.
  
      Parameters
      ----------
      X : ndarray of shape (n_samples_1, n_features)
  
      Y : ndarray of shape (n_samples_2, n_features)
  
      degree : int, default 3
  
      gamma : float, default None
          if None, defaults to 1.0 / n_samples_1
  
      coef0 : int, default 1
  
      Returns
      -------
      Gram matrix : array of shape (n_samples_1, n_samples_2)
      """
      X, Y = check_pairwise_arrays(X, Y)
      if gamma is None:
          gamma = 1.0 / X.shape[1]
  
      K = safe_sparse_dot(X, Y.T, dense_output=True)
      K *= gamma
      K += coef0
      K **= degree
      return K
  
imports: import itertools
  import numpy
  from scipy.spatial import distance
  from scipy.sparse import csr_matrix
  from scipy.sparse import issparse
  from ..utils import check_array
  from ..utils import gen_even_slices
  from ..utils import gen_batches
  from ..utils.fixes import partial
  from ..utils.extmath import row_norms, safe_sparse_dot
  from ..preprocessing import normalize
  from ..externals.joblib import Parallel
  from ..externals.joblib import delayed
  from ..externals.joblib import cpu_count
  from .pairwise_fast import _chi2_kernel_fast, _sparse_manhattan
label_desc: Use image node_id 14 for calling a global function with example usage: polynomial_kernel(X, Y, degree, gamma, coef0) and returns: K