class_docstr: Abstract base class for naive Bayes on discrete/categorical data
  
  Any estimator based on this class should provide:
  
  __init__
  _joint_log_likelihood(X) as per BaseNB
class_docstr_tok: ["Abstract","base","class","for","naive","Bayes","on","discrete\/categorical","data","Any","estimator","based","on","this","class","should","provide",":","__init__","_joint_log_likelihood","(","X",")","as","per","BaseNB"]
docstr: Fit Naive Bayes classifier according to X, y
  
  Parameters
  ----------
  X : {array-like, sparse matrix}, shape = [n_samples, n_features]
      Training vectors, where n_samples is the number of samples and
      n_features is the number of features.
  
  y : array-like, shape = [n_samples]
      Target values.
  
  sample_weight : array-like, shape = [n_samples], optional (default=None)
      Weights applied to individual samples (1. for unweighted).
  
  Returns
  -------
  self : object
      Returns self.
docstr_tok: ["Fit","Naive","Bayes","classifier","according","to","X",",","y","Parameters","--","--","--","--","--","X",":","{","array-like",",","sparse","matrix","}",",","shape","=","[","n_samples",",","n_features","]","Training","vectors",",","where","n_samples","is","the","number","of","samples","and","n_features","is","the","number","of","features",".","y",":","array-like",",","shape","=","[","n_samples","]","Target","values",".","sample_weight",":","array-like",",","shape","=","[","n_samples","]",",","optional","(","default=None",")","Weights","applied","to","individual","samples","(","1.","for","unweighted",")",".","Returns","--","--","--","-","self",":","object","Returns","self","."]
code: def fit(self, X, y, sample_weight=None):
      """Fit Naive Bayes classifier according to X, y
  
      Parameters
      ----------
      X : {array-like, sparse matrix}, shape = [n_samples, n_features]
          Training vectors, where n_samples is the number of samples and
          n_features is the number of features.
  
      y : array-like, shape = [n_samples]
          Target values.
  
      sample_weight : array-like, shape = [n_samples], optional (default=None)
          Weights applied to individual samples (1. for unweighted).
  
      Returns
      -------
      self : object
          Returns self.
      """
      X, y = check_X_y(X, y, "csr")
      _, n_features = X.shape
  
      labelbin = LabelBinarizer()
      Y = labelbin.fit_transform(y)
      self.classes_ = labelbin.classes_
      if Y.shape[1] == 1:
          Y = np.concatenate((1 - Y, Y), axis=1)
  
      # LabelBinarizer().fit_transform() returns arrays with dtype=np.int64.
      # We convert it to np.float64 to support sample_weight consistently;
      # this means we also don't have to cast X to floating point
      Y = Y.astype(np.float64)
      if sample_weight is not None:
          sample_weight = np.atleast_2d(sample_weight)
          Y *= check_array(sample_weight).T
  
      class_prior = self.class_prior
  
      # Count raw events from data before updating the class log prior
      # and feature log probas
      n_effective_classes = Y.shape[1]
      self.class_count_ = np.zeros(
          n_effective_classes, dtype=np.float64
      )
      self.feature_count_ = np.zeros(
          (n_effective_classes, n_features), dtype=np.float64
      )
      self._count(X, Y)
      self._update_feature_log_prob()
      self._update_class_log_prior(class_prior=class_prior)
      return self
  
imports: from abc import ABCMeta, abstractmethod
  import numpy
  from scipy.sparse import issparse
  from .base import BaseEstimator, ClassifierMixin
  from .preprocessing import binarize
  from .preprocessing import LabelBinarizer
  from .preprocessing import label_binarize
  from .utils import check_X_y, check_array
  from .utils.extmath import safe_sparse_dot, logsumexp
  from .utils.multiclass import _check_partial_fit_first_call
  from .utils.fixes import in1d
  from .utils.validation import check_is_fitted
  from .externals import six
label_desc: Use image node_id 3 for calling the BaseDiscreteNB obj's underlying member method code with example usage: obj.fit(X, y, sample_weight) and returns: self