/evclust

evclust : An Python library for evidential clustering

Primary LanguagePythonMIT LicenseMIT

evclust: Evidential c-Means Clustering

Documentation Status tests release python os


Get Started | pip install


Various clustering algorithms that produce a credal partition, i.e., a set of Dempster-Shafer mass functions representing the membership of objects to clusters. The mass functions quantify the cluster-membership uncertainty of the objects. The algorithms are: Evidential c-Means, Relational Evidential c-Means, Constrained Evidential c-Means, Multiples Relational Evidential c-Means.

Informations

References

  • [1] Denœux, T. (Year). evclust: An R Package for Evidential Clustering. Université de technologie de Compiègne. url https://cran.r-project.org/web/packages/evclust/index.html
  • [2] Masson, M. H. et T. Denœux (2008). ECM : An evidential version of the fuzzy c-means algorithm. Pattern Recognition 41, 1384–1397

Installation

$ pip install evclust 

Usage

ecm Computes a credal partition from a matrix of attribute data using the Evidential c-means (ECM) algorithm.

# Import test data
from evclust.datasets import load_decathlon, load_iris
df = load_iris()
df.head()
df=df.drop(['species'], axis = 1)

# Evidential clustering with c=3
from evclust.ecm import ecm
model = ecm(x=df, c=3,beta = 1.1,  alpha=0.1, delta=9)

# Read the output
from evclust.utils import ev_summary, ev_pcaplot
ev_summary(model)    
ev_pcaplot(data=df, x=model, normalize=False)    

Descriptions

Evidential clustering is a modern approach in clustering algorithms that addresses uncertainty in group membership by employing the Dempster-Shafer theory. This approach yields a credal partition, represented by a tuple of mass functions, which captures the uncertain assignment of objects to clusters.

This package offers efficient algorithms for evidential clustering. The package provides functions for visualizing, evaluating, and utilizing credal partitions, allowing for a comprehensive analysis of uncertain group assignments.

It is worth mentioning that the evclust package in Python is based on the previously developed package in R by Thierry Denoeux

Contributing

Interested in contributing? Check out the Contributing Guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

evclust was created by Armel SOUBEIGA. It is licensed under the terms of the MIT license.