Learn R Programming

evclust (version 2.0.3)

ecm: Evidential c-means algorithm

Description

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

Usage

ecm(
  x,
  c,
  g0 = NULL,
  type = "full",
  pairs = NULL,
  Omega = TRUE,
  ntrials = 1,
  alpha = 1,
  beta = 2,
  delta = 10,
  epsi = 0.001,
  init = "kmeans",
  disp = TRUE
)

Value

The credal partition (an object of class "credpart").

Arguments

x

input matrix of size n x d, where n is the number of objects and d the number of attributes.

c

Number of clusters.

g0

Initial prototypes, matrix of size c x d. If not supplied, the prototypes are initialized randomly.

type

Type of focal sets ("simple": empty set, singletons and Omega; "full": all \(2^c\) subsets of \(\Omega\); "pairs": \(\emptyset\), singletons, \(\Omega\), and all or selected pairs).

pairs

Set of pairs to be included in the focal sets; if NULL, 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

Number of runs of the optimization algorithm (set to 1 if m0 is supplied).

alpha

Exponent of the cardinality in the cost function.

beta

Exponent of masses in the cost function.

delta

Distance to the empty set.

epsi

Minimum amount of improvement.

init

Initialization: "kmeans" (default) or "rand" (random).

disp

If TRUE (default), intermediate results are displayed.

Author

Thierry Denoeux (from a MATLAB code written by Marie-Helene Masson).

Details

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.

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

makeF, extractMass, recm, cecm, plot.credpart

Examples

Run this code
## Clustering of the Four-class dataset
if (FALSE) {
data(fourclass)
x<-fourclass[,1:2]
y<-fourclass[,3]
clus<-ecm(x,c=4,type='full',alpha=1,beta=2,delta=sqrt(20),epsi=1e-3,disp=TRUE)
plot(clus,X=x,mfrow=c(2,2),ytrue=y,Outliers=TRUE,Approx=2)
}

Run the code above in your browser using DataLab