A3SOM
Introduction
A3SOM is a semi-supervised classifier, made explainable and visualizable by the integration of a self-organizing map. It offers the option of performing abstained classification to detect class overlaps and discover new classes in the data.
Quick start
From the command line, clone this project:
git clone https://forge.ibisc.univ-evry.fr/ccreux/A3SOM.git
Move to the directory containing source files:
cd A3SOM/A3SOM
From there, A3SOM can be used in a Python script with from A3SOM import A3SOM
. Usage is similar to Keras models:
model = A3SOM(input_dim, n_classes, n) # input_dim = nb of features, n_classes = nb of classes, n = dimension of the SOM model.compile() model.fit(data_train, target_train, validation_split, batch_size, epochs)
Importing the Dataset.py
module is optional, but makes formatting the input easier.
For abstained classification, import abstention.py
to apply global or local abstention thresholds and study the effects of abstention.
Finally, utils.py
contains various functions for visualization purposes, as well as a function to mask some of the labels in a target object.
Examples
Examples of how to train A3SOM and study its results are given in examples.ipynb
.
Documentation
Documentation of the different modules can be found here: https://a3som.readthedocs.io/en/latest/.
Cite
Creux C, Zehraoui F, Hanczar B, Tahi F (2023) A3SOM, abstained explainable semi-supervised neural network based on self-organizing map. PLoS ONE 18(5): e0286137. https://doi.org/10.1371/journal.pone.0286137