class_docstr: Kernel Density Estimation
  
  Read more in the :ref:`User Guide <kernel_density>`.
  
  Parameters
  ----------
  bandwidth : float
      The bandwidth of the kernel.
  
  algorithm : string
      The tree algorithm to use.  Valid options are
      ['kd_tree'|'ball_tree'|'auto'].  Default is 'auto'.
  
  kernel : string
      The kernel to use.  Valid kernels are
      ['gaussian'|'tophat'|'epanechnikov'|'exponential'|'linear'|'cosine']
      Default is 'gaussian'.
  
  metric : string
      The distance metric to use.  Note that not all metrics are
      valid with all algorithms.  Refer to the documentation of
      :class:`BallTree` and :class:`KDTree` for a description of
      available algorithms.  Note that the normalization of the density
      output is correct only for the Euclidean distance metric. Default
      is 'euclidean'.
  
  atol : float
      The desired absolute tolerance of the result.  A larger tolerance will
      generally lead to faster execution. Default is 0.
  
  rtol : float
      The desired relative tolerance of the result.  A larger tolerance will
      generally lead to faster execution.  Default is 1E-8.
  
  breadth_first : boolean
      If true (default), use a breadth-first approach to the problem.
      Otherwise use a depth-first approach.
  
  leaf_size : int
      Specify the leaf size of the underlying tree.  See :class:`BallTree`
      or :class:`KDTree` for details.  Default is 40.
  
  metric_params : dict
      Additional parameters to be passed to the tree for use with the
      metric.  For more information, see the documentation of
      :class:`BallTree` or :class:`KDTree`.
docstr: Compute the total log probability under the model.
  
  Parameters
  ----------
  X : array_like, shape (n_samples, n_features)
      List of n_features-dimensional data points.  Each row
      corresponds to a single data point.
  
  Returns
  -------
  logprob : float
      Total log-likelihood of the data in X.
docstr_tok: ["Compute","the","total","log","probability","under","the","model",".","Parameters","--","--","--","--","--","X",":","array_like",",","shape","(","n_samples",",","n_features",")","List","of","n_features-dimensional","data","points",".","Each","row","corresponds","to","a","single","data","point",".","Returns","--","--","--","-","logprob",":","float","Total","log-likelihood","of","the","data","in","X","."]
code: def score(self, X, y=None):
      """Compute the total log probability under the model.
  
      Parameters
      ----------
      X : array_like, shape (n_samples, n_features)
          List of n_features-dimensional data points.  Each row
          corresponds to a single data point.
  
      Returns
      -------
      logprob : float
          Total log-likelihood of the data in X.
      """
      return np.sum(self.score_samples(X))
  
file_path: catboost/contrib/python/scikit-learn/py2/sklearn/neighbors/kde.py
imports: import numpy
  from scipy.special import gammainc
  from ..base import BaseEstimator
  from ..utils import check_array, check_random_state
  from ..utils.extmath import row_norms
  from .ball_tree import BallTree, DTYPE
  from .kd_tree import KDTree
label_desc: Use image node_id 5 for calling the KernelDensity obj's underlying member method code with example usage: obj.score(X, y) and returns: np