class_docstr: Represents the continuous functional causal model of the form
      Y = f(X) + N,
  where X is the input (typically, direct causal parents of Y) and the noise N is assumed to be independent of X. This
  is a special instance of a :py:class:`PostNonlinearModel <dowhy.gcm.PostNonlinearModel>` where the function g is the
  identity function.
  
  Given joint samples from (X, Y), this model can be fitted by first training a model f (e.g. using least squares
  regression) and then reconstruct N by N = Y - f(X), i.e. using the residual.
class_docstr_tok: ["Represents","the","continuous","functional","causal","model","of","the","form","Y","=","f","(","X",")","+","N",",","where","X","is","the","input","(","typically",",","direct","causal","parents","of","Y",")","and","the","noise","N","is","assumed","to","be","independent","of","X",".","This","is","a","special","instance","of","a",":","py",":","class",":","`","PostNonlinearModel","<","dowhy.gcm.PostNonlinearModel",">","`","where","the","function","g","is","the","identity","function",".","Given","joint","samples","from","(","X",",","Y",")",",","this","model","can","be","fitted","by","first","training","a","model","f","(","e.g",".","using","least","squares","regression",")","and","then","reconstruct","N","by","N","=","Y","-","f","(","X",")",",","i.e",".","using","the","residual","."]
code: def __str__(self) -> str:
      if isinstance(self._prediction_model, SklearnRegressionModel):
          prediction_model_string = (
              self._prediction_model.sklearn_model.__class__.__name__
          )
      else:
          prediction_model_string = (
              self._prediction_model.__class__.__name__
          )
  
      return "AdditiveNoiseModel using %s" % prediction_model_string
  
imports: import copy
  from abc import ABC, abstractmethod
  from typing import List, Optional
  import numpy
  from dowhy.gcm.ml import ClassificationModel, PredictionModel
  from dowhy.gcm.ml.regression import InvertibleFunction, SklearnRegressionModel
  from dowhy.gcm.util.general import is_categorical, is_discrete, shape_into_2d
label_desc: Use image node_id 3 for calling the AdditiveNoiseModel obj's underlying member method code with example usage: obj.__str__() and returns: unknown