:py:mod:`desdeo_emo.surrogatemodels.EvoDN2`
===========================================

.. py:module:: desdeo_emo.surrogatemodels.EvoDN2


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   desdeo_emo.surrogatemodels.EvoDN2.EvoDN2



Functions
~~~~~~~~~

.. autoapisummary::

   desdeo_emo.surrogatemodels.EvoDN2.negative_r2_score



.. py:function:: negative_r2_score(y_true, y_pred)


.. py:class:: EvoDN2(num_subnets: int = 4, num_subsets: int = 4, max_layers: int = 4, max_nodes: int = 4, p_omit: float = 0.2, w_low: float = -5.0, w_high: float = 5.0, subsets: list = None, activation_function: str = 'sigmoid', loss_function: str = 'mse', training_algorithm: desdeo_emo.EAs.BaseEA.BaseEA = PPGA, pop_size: int = 500, model_selection_criterion: str = 'min_error', verbose: int = 0)

   Bases: :py:obj:`desdeo_problem.surrogatemodels.SurrogateModels.BaseRegressor`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:method:: fit(X: numpy.ndarray, y: numpy.ndarray)


   .. py:method:: _model_performance(individuals: numpy.ndarray = None, X: numpy.ndarray = None, y_true: numpy.ndarray = None)


   .. py:method:: _feed_forward(subnets, X)


   .. py:method:: _calculate_linear(previous_layer_output)

      Calculate the final layer using LLSQ or

      :param non_linear_layer: Output of the activation function
      :type non_linear_layer: np.ndarray

      :returns: * **linear_layer** (*np.ndarray*) -- The optimized weight matrix of the upper part of the network
                * **predicted_values** (*np.ndarray*) -- The prediction of the model


   .. py:method:: activate(x)


   .. py:method:: predict(X)


   .. py:method:: select()


   .. py:method:: _create_individuals()



