class_docstr: Bernoulli Naive Bayes.
  
  Bernoulli Naive Bayes model learns from occurrences between features such as word
  counts and discrete classes. The input vector must contain positive values, such as
  counts or TF-IDF values.
  
  Parameters
  ----------
  alpha
      Additive (Laplace/Lidstone) smoothing parameter (use 0 for no smoothing).
  true_threshold
      Threshold for binarizing (mapping to booleans) features.
  
  Attributes
  ----------
  class_counts : collections.Counter
      Number of times each class has been seen.
  feature_counts : collections.defaultdict
      Total frequencies per feature and class.
  
  Examples
  --------
  
  >>> import pandas as pd
  >>> from river import compose
  >>> from river import feature_extraction
  >>> from river import naive_bayes
  
  >>> docs = [
  ...     ("Chinese Beijing Chinese", "yes"),
  ...     ("Chinese Chinese Shanghai", "yes"),
  ...     ("Chinese Macao", "yes"),
  ...     ("Tokyo Japan Chinese", "no")
  ... ]
  
  >>> model = compose.Pipeline(
  ...     ("tokenize", feature_extraction.BagOfWords(lowercase=False)),
  ...     ("nb", naive_bayes.BernoulliNB(alpha=1))
  ... )
  
  >>> for sentence, label in docs:
  ...     model.learn_one(sentence, label)
  
  >>> model["nb"].p_class("yes")
  0.75
  >>> model["nb"].p_class("no")
  0.25
  
  >>> model.predict_proba_one("test")
  {'yes': 0.883..., 'no': 0.116...}
  
  >>> model.predict_one("test")
  'yes'
  
  You can train the model and make predictions in mini-batch mode using the class methods
  `learn_many` and `predict_many`.
  
  >>> df_docs = pd.DataFrame(docs, columns = ["docs", "y"])
  
  >>> X = pd.Series([
  ...    "Chinese Beijing Chinese",
  ...    "Chinese Chinese Shanghai",
  ...    "Chinese Macao",
  ...    "Tokyo Japan Chinese"
  ... ])
  
  >>> y = pd.Series(["yes", "yes", "yes", "no"])
  
  >>> model = compose.Pipeline(
  ...     ("tokenize", feature_extraction.BagOfWords(lowercase=False)),
  ...     ("nb", naive_bayes.BernoulliNB(alpha=1))
  ... )
  
  >>> model.learn_many(X, y)
  
  >>> unseen = pd.Series(["Taiwanese Taipei", "Chinese Shanghai"])
  
  >>> model.predict_proba_many(unseen)
           no       yes
  0  0.116846  0.883154
  1  0.047269  0.952731
  
  >>> model.predict_many(unseen)
  0    yes
  1    yes
  dtype: object
  
  References
  ----------
  [^1]: [The Bernoulli model](https://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html)
class_docstr_tok: ["Bernoulli","Naive","Bayes",".","Bernoulli","Naive","Bayes","model","learns","from","occurrences","between","features","such","as","word","counts","and","discrete","classes",".","The","input","vector","must","contain","positive","values",",","such","as","counts","or","TF-IDF","values",".","Parameters","--","--","--","--","--","alpha","Additive","(","Laplace\/Lidstone",")","smoothing","parameter","(","use","0","for","no","smoothing",")",".","true_threshold","Threshold","for","binarizing","(","mapping","to","booleans",")","features",".","Attributes","--","--","--","--","--","class_counts",":","collections.Counter","Number","of","times","each","class","has","been","seen",".","feature_counts",":","collections.defaultdict","Total","frequencies","per","feature","and","class",".","Examples","--","--","--","--",">",">",">","import","pandas","as","pd",">",">",">","from","river","import","compose",">",">",">","from","river","import","feature_extraction",">",">",">","from","river","import","naive_bayes",">",">",">","docs","=","[","...","(","``","Chinese","Beijing","Chinese","''",",","``","yes","''",")",",","...","(","``","Chinese","Chinese","Shanghai","''",",","``","yes","''",")",",","...","(","``","Chinese","Macao","''",",","``","yes","''",")",",","...","(","``","Tokyo","Japan","Chinese","''",",","``","no","''",")","...","]",">",">",">","model","=","compose.Pipeline","(","...","(","``","tokenize","''",",","feature_extraction.BagOfWords","(","lowercase=False",")",")",",","...","(","``","nb","''",",","naive_bayes.BernoulliNB","(","alpha=1",")",")","...",")",">",">",">","for","sentence",",","label","in","docs",":","...","model.learn_one","(","sentence",",","label",")",">",">",">","model","[","``","nb","''","]",".p_class","(","``","yes","''",")","0.75",">",">",">","model","[","``","nb","''","]",".p_class","(","``","no","''",")","0.25",">",">",">","model.predict_proba_one","(","``","test","''",")","{","'yes","'",":","0.883","...",",","'no","'",":","0.116","...","}",">",">",">","model.predict_one","(","``","test","''",")","'yes'","You","can","train","the","model","and","make","predictions","in","mini-batch","mode","using","the","class","methods","`","learn_many","`","and","`","predict_many","`",".",">",">",">","df_docs","=","pd.DataFrame","(","docs",",","columns","=","[","``","docs","''",",","``","y","''","]",")",">",">",">","X","=","pd.Series","(","[","...","``","Chinese","Beijing","Chinese","''",",","...","``","Chinese","Chinese","Shanghai","''",",","...","``","Chinese","Macao","''",",","...","``","Tokyo","Japan","Chinese","''","...","]",")",">",">",">","y","=","pd.Series","(","[","``","yes","''",",","``","yes","''",",","``","yes","''",",","``","no","''","]",")",">",">",">","model","=","compose.Pipeline","(","...","(","``","tokenize","''",",","feature_extraction.BagOfWords","(","lowercase=False",")",")",",","...","(","``","nb","''",",","naive_bayes.BernoulliNB","(","alpha=1",")",")","...",")",">",">",">","model.learn_many","(","X",",","y",")",">",">",">","unseen","=","pd.Series","(","[","``","Taiwanese","Taipei","''",",","``","Chinese","Shanghai","''","]",")",">",">",">","model.predict_proba_many","(","unseen",")","no","yes","0","0.116846","0.883154","1","0.047269","0.952731",">",">",">","model.predict_many","(","unseen",")","0","yes","1","yes","dtype",":","object","References","--","--","--","--","--","[","^1","]",":","[","The","Bernoulli","model","]","(","https",":","\/\/nlp.stanford.edu\/IR-book\/html\/htmledition\/the-bernoulli-model-1.html",")"]
code: def p_class_many(self) -> pd.DataFrame:
      return base.from_dict(self.class_counts).T[
          list(self.class_counts.keys())
      ] / sum(self.class_counts.values())
  
file_path: river/river/naive_bayes/bernoulli.py
imports: from __future__ import annotations
  import collections
  import math
  import numpy
  import pandas
  from scipy import sparse
  from .None import base
label_desc: Use image node_id 5 for calling the BernoulliNB obj's underlying member method code with example usage: obj.p_class_many() and returns: unknown