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 algorithmiemm.belief: Belief function operations and transformationsiemm.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f935d2d6c4119ca905a5a7be58548e90d03207d032d47c3b43d6969c218c97a7
|
|
| MD5 |
2ed81d055c154aa88fb0c84d3315ba90
|
|
| BLAKE2b-256 |
a9e523a5d7d7363d9632bfcd60a89fa73fda524ec6d899dd010b78ff1bbeace4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f09b0b5e98550fc8e99e4c5cd905520edc81df160326dd1319a670632f42433
|
|
| MD5 |
d6c143416b060a10d72883e12bdac87c
|
|
| BLAKE2b-256 |
282ff48a17fc9023b549de05b5e755d82fcc3e51915d036dafcbdacb29bbe5cb
|