<header>
    <img src="./images/DIONN.png"  alt="DIONN"/>
</header>


# DIONN - Intra Cluster Filtering

<!-- badges: start -->

![Python](https://img.shields.io/badge/python-3.10.14-blue)
![Versión de PyPI](https://img.shields.io/pypi/v/dionn)
![Descargas Totales](https://img.shields.io/pypi/dm/dionn)
<!-- badges: end -->
## Overview

DIONN (Detection of Intra-Class Outliers with Neural Networks) is an innovative Python library designed to identify and systematically filter intra-class outliers during the training of neural networks. This library aims to improve the generalization and robustness of neural models across various data types, including images, time-series, and high-dimensional datasets. The approach integrates statistical techniques like Gaussian Mixture Models (GMM) and Principal Component Analysis (PCA) with unsupervised learning to detect data points that deviate significantly from their respective class patterns.
</br>

## Installation Instructions

It is necessary to use Python **Versión 3.10.14** for the installation and proper functioning of the library.

**Step 1:** Create a New Environment

First, create a new environment with Python version 3.10.14.

**Step 2:** Install Git

It is necessary to have Git installed for this installation. If you don't have Git installed, you can download it from [here](https://git-scm.com/downloads).

**Step 3:** Install the Package

In your console (e.g., Anaconda Prompt), execute the following commands:
```sh
# Activate your environment
conda activate YourRepository

# Install the package from GitHub
pip install DIONN
```

Once the installation is complete, you can start using the library.
</br>
## Usage
See [`examples.`](https://github.com/juanzamorai/intracluster-filtering/tree/main/examples) In this folder, you can find three use cases of the library applied to classic datasets like Iris, Diabetes, and MNIST, showcasing its functionality across diverse data types.

