Consensus of partitions

ConsPart.c

This program build a consensus partition from a set of m partitions of a set of n elements X. The data file can be either m partitions of X (all the elements must be clustered), or an array (n x m) of m nominal variables, row indexed on X, each column being a partition.

The X elements are labelled by strings having no more than 20 characters.

The weight of a pair of elements is the number of partitions joining this pair, minus the consensus threshold. The score of a class is the sum of weights of joined pairs. The sum of the class scores is the score of the partition. We try to optimize this score function over the set of all the partitions of X.

Usually the consensus threshold is half the number of partitions (m/2). To make appear non empty classes, this threshold can be weaken.

This program first indicates the best partition of the profile and its score. Then it computes two partitions corresponding to two heuristics :

For each partition, classes are edited, followed by the class score and its robustness. This latter is the average percentage of partitions in the profile, joining the element pairs of the class.

If all the connected components of the Graphe de Regnier have no more than 12 elements, the optimal partition can be determined by enumeration. In that case, the optimal score is given.

ConsPart.pdf
A. Guénoche (2010) Consensus of partitions : a constructive approach, submitted

The data file must be in a folder named Data placed in the same folder as the program.

Its format can be :