class_docstr: Poisson loss.
  
  The Poisson loss is usually more suited for regression with count data than the squared loss.
  
  Mathematically, it is defined as
  
  $$L = exp(p_i) - y_i \times p_i$$
  
  It's gradient w.r.t. to $p_i$ is
  
  $$\frac{\partial L}{\partial p_i} = exp(p_i) - y_i$$
class_docstr_tok: ["Poisson","loss",".","The","Poisson","loss","is","usually","more","suited","for","regression","with","count","data","than","the","squared","loss",".","Mathematically",",","it","is","defined","as","$","$","L","=","exp","(","p_i",")","-","y_i","\\times","p_i","$","$","It","'s","gradient","w.r.t",".","to","$","p_i","$","is","$","$","\\frac","{","\\partial","L","}","{","\\partial","p_i","}","=","exp","(","p_i",")","-","y_i","$","$"]
code: def __call__(self, y_true, y_pred):
      if isinstance(y_pred, np.ndarray):
          return np.exp(y_pred) - y_true * y_pred
      return math.exp(y_pred) - y_true * y_pred
  
imports: from __future__ import annotations
  import math
  import numpy
  from scipy import special
  from river import base, utils
  from river.optim.base import Loss
label_desc: Use image node_id 1 for calling the Poisson obj's underlying member method code with example usage: obj.__call__(y_true, y_pred) and returns: unknown, unknown