Skip to main content

Iterative Evidential Mistakeness Minimization - Explainable Evidential Clustering

Project description

IEMM - Iterative Evidential Mistakeness Minimization

IEMM is a Python library for explainable evidential clustering that provides interpretable decision tree explanations for clustering results in the presence of uncertain and imprecise data.

Real-world data often contains imperfections characterized by uncertainty and imprecision, which traditional clustering methods struggle to handle effectively. Evidential clustering, based on Dempster-Shafer theory, addresses these challenges but lacks explainability—a crucial requirement for high-stakes domains such as healthcare.

This library implements the Iterative Evidential Mistake Minimization (IEMM) algorithm, which generates interpretable and cautious decision tree explanations for evidential clustering functions. The algorithm accounts for decision-maker preferences and can provide satisfactory cautious explanations.

For more details, see the original paper: Explainable Evidential Clustering.

Citation

If you use this library in your research, please cite:

@article{souzaExplainableEvidentialClustering2025,
  title = {Explainable Evidential Clustering},
  author = {Lopes de Souza, Victor F. and Bakhti, Karima and Ramdani, Sofiane and Mottet, Denis and Imoussaten, Abdelhak},
  publisher = {arXiv},
  doi = {10.48550/arXiv.2507.12192},
}

Installation

From source (development)

git clone https://github.com/victorsouza89/iemm.git
cd iemm
pip install -e .

Quick Start

If you're new to IEMM, we strongly recommend starting with very_simple_example.ipynb. It provides:

  • Clear explanations of each step
  • Visual outputs to understand the algorithm
  • Simple synthetic data for easy comprehension
  • Complete workflow from data loading to result interpretation
cd experiments
jupyter notebook very_simple_example.ipynb

For a quick example of how to use the IEMM library, you can also run the following code snippet:

from iemm import IEMM
import numpy as np

# Create an IEMM classifier
classifier = IEMM(lambda_mistakeness=1.0)

# Fit the model with your data
# X: feature matrix
# mass: mass functions for each sample
# F: focal sets matrix
classifier.fit(X, mass, F)

# Make predictions
predictions = classifier.predict(X_test)

Examples and Experiments

The experiments/ folder contains several Jupyter notebooks demonstrating the IEMM library:

  • very_simple_example.ipynb - Recommended for new users! A step-by-step tutorial showing how to use IEMM with a simple 2D synthetic dataset. This notebook is perfect for familiarizing yourself with the library's basic functionality, including data preparation, ECM clustering, IEMM training, visualization, and decision tree interpretation.

The other notebooks were used in the original paper and provide more advanced examples:

  • iemm_notebook.ipynb - Core implementation with advanced visualization functions and evaluation metrics used across different experiments.
  • main.ipynb - Comprehensive experiments running IEMM on multiple datasets including synthetic 2D data and real-world credal datasets.

Modules

  • iemm.core: Main IEMM algorithm
  • iemm.belief: Belief function operations and transformations
  • iemm.utils: Utility functions for distance calculations and criteria

Requirements

  • Python >= 3.9
  • NumPy >= 1.19.0
  • pandas >= 1.2.0
  • scikit-learn >= 0.24.0
  • schemdraw >= 0.11

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

Some code snippets were adapted from Conflict EDT (for evidential decision trees construction) and iBelief (for belief function operations).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iemm-0.1.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iemm-0.1.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file iemm-0.1.0.tar.gz.

File metadata

  • Download URL: iemm-0.1.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for iemm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f935d2d6c4119ca905a5a7be58548e90d03207d032d47c3b43d6969c218c97a7
MD5 2ed81d055c154aa88fb0c84d3315ba90
BLAKE2b-256 a9e523a5d7d7363d9632bfcd60a89fa73fda524ec6d899dd010b78ff1bbeace4

See more details on using hashes here.

File details

Details for the file iemm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iemm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for iemm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f09b0b5e98550fc8e99e4c5cd905520edc81df160326dd1319a670632f42433
MD5 d6c143416b060a10d72883e12bdac87c
BLAKE2b-256 282ff48a17fc9023b549de05b5e755d82fcc3e51915d036dafcbdacb29bbe5cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page