evclust.ecm#
This module contains the main function for ecm :
M.-H. Masson and T. Denoeux. ECM: An evidential version of the fuzzy c-means algorithm. Pattern Recognition, Vol. 41, Issue 4, pages 1384–1397, 2008.
Module Contents#
- evclust.ecm.ecm(x, c, g0=None, type='full', pairs=None, Omega=True, ntrials=1, alpha=1, beta=2, delta=10, epsi=0.001, init='kmeans', disp=True)[source]#
Evidential c-means algorithm. ecm Computes a credal partition from a matrix of attribute data using the Evidential c-means (ECM) algorithm.
ECM is an evidential version algorithm of the Hard c-Means (HCM) and Fuzzy c-Means (FCM) algorithms. As in HCM and FCM, each cluster is represented by a prototype. However, in ECM, some sets of clusters are also represented by a prototype, which is defined as the center of mass of the prototypes in each individual cluster. The algorithm iteratively optimizes a cost function, with respect to the prototypes and to the credal partition. By default, each mass function in the credal partition has 2^c focal sets, where c is the supplied number of clusters. We can also limit the number of focal sets to subsets of clusters with cardinalities 0, 1 and c (recommended if c>=10), or to all or some selected pairs of clusters. If initial prototypes g0 are provided, the number of trials is automatically set to 1.
Parameters:#
- x (DataFrame):
input matrix of size n x d, where n is the number of objects and d is the number of attributes.
- c (int):
Number of clusters.
- g0:
Initial prototypes, matrix of size c x d. If not supplied, the prototypes are initialized randomly.
- type (str):
- Type of focal sets (“simple”: empty set, singletons and Omega; “full”: all 2^c subsets of Omega;
“pairs”: empty set, singletons, Omega, and all or selected pairs).
- pairs:
Set of pairs to be included in the focal sets; if None, all pairs are included. Used only if type=”pairs”.
- Omega:
Logical. If True (default), the whole frame is included (for types ‘simple’ and ‘pairs’).
- ntrials (int):
Number of runs of the optimization algorithm (set to 1 if g0 is supplied).
- alpha (float):
Exponent of the cardinality in the cost function.
- beta (float):
Exponent of masses in the cost function.
- delta (float):
Distance to the empty set.
- epsi (float):
Minimum amount of improvement.
- init (str):
Initialization: “kmeans” (default) or “rand” (random).
- disp (bool):
If True (default), intermediate results are displayed.
Returns:#
The credal partition (an object of class “credpart”).
Example:#
# Import test data from evclust.datasets import load_iris df = load_iris() 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)
References:#
M.-H. Masson and T. Denoeux. ECM: An evidential version of the fuzzy c-means algorithm. Pattern Recognition, Vol. 41, Issue 4, pages 1384–1397, 2008.
See also
extractMass()Note
Keywords : Clustering, Unsupervised learning, Dempster–Shafer theory, Evidence theory, Belief functions, Cluster validity, Robustness