class_docstr: Represents an post nonlinear FCM, i.e. models of the form:
      Y = g(f(X) + N),
  where X are parent nodes of the target node Y, f an arbitrary prediction model expecting inputs from the
  parents X, N a noise variable and g an invertible function.
class_docstr_tok: ["Represents","an","post","nonlinear","FCM",",","i.e",".","models","of","the","form",":","Y","=","g","(","f","(","X",")","+","N",")",",","where","X","are","parent","nodes","of","the","target","node","Y",",","f","an","arbitrary","prediction","model","expecting","inputs","from","the","parents","X",",","N","a","noise","variable","and","g","an","invertible","function","."]
docstr: :param prediction_model: The prediction model f.
  :param invertible_function: The invertible function g.
  :param noise_model: The StochasticModel to describe the distribution of the noise N.
docstr_tok: [":","param","prediction_model",":","The","prediction","model","f.",":","param","invertible_function",":","The","invertible","function","g.",":","param","noise_model",":","The","StochasticModel","to","describe","the","distribution","of","the","noise","N","."]
code: def __init__(
      self,
      prediction_model: PredictionModel,
      noise_model: StochasticModel,
      invertible_function: InvertibleFunction,
  ) -> None:
      """
      :param prediction_model: The prediction model f.
      :param invertible_function: The invertible function g.
      :param noise_model: The StochasticModel to describe the distribution of the noise N.
      """
      self._prediction_model = prediction_model
      self._noise_model = noise_model
      self._invertible_function = invertible_function
  
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 1 to create a new PostNonlinearModel object from inherited base classes: InvertibleFunctionalCausalModel with example: obj = PostNonlinearModel(prediction_model, noise_model, invertible_function)