% -*- coding: utf-8 -*-

Software MLPBayesian : Multi-Layer Perceptron with Bayessian loss using Parzen Windows (for EDC and Ordinal classification)
Python code implementing the learning methods proposed in the following papers:

'A Bayes Risk Minimization Machine for Example-Dependent Cost Classification'
Marcelino Lázaro, Aníbal R. Figueiras-Vidal
IEEE Transactions on Cybernetics (2021)
https://doi.org/10.1109/tcyb.2019.2913572

'Neural network for ordinal classification of imbalanced data by minimizing a Bayesian cost'
Marcelino Lázaro, Aníbal R. Figueiras-Vidal
Pattern Recognition (2023)
https://doi.org/10.1016/j.patcog.2023.109303


The main classes supporting the training algorithms are:

 - MLPBayesBin
   MLP for binary classification trained with a Bayesian loss.
   
 - MLPBayesBinW
   MLP for binary classification trained with a Bayesian loss.
   This class allow to specify a weight for each training sample.
   
 - MLPOrdinal
   MLP for ordinal classification based on a Bayesian loss and a
   threshold-based decision rule

These functions are programmed to be compatible with scikit-learn cross-validation tools, and methods follow the corresponding style. 
For each class, a detailed docstring is included in file 'mlpbayesian.py', with basic examples of skeleton code for training the networks.
