Skip to main content
. Author manuscript; available in PMC: 2015 Sep 11.
Published in final edited form as: IEEE Trans Pattern Anal Mach Intell. 2015 Aug;37(8):1602–1614. doi: 10.1109/TPAMI.2014.2375175

TABLE I.

Partitioning algorithm for identifying maximally separated subsets For each class (multiset) X, partition X into two subsets A and B such that NCD1(AB) − NCD1(A) − NCD1(B) is a maximum.

  1. (Initialize) Pick two elements (seeds) of X at random, assigning one element to each A and B. For each remaining element x, assign x to the closer one of A or B using pairwise NCD to the random seeds

  2. For each element x, compute the distance from x to class A and B using (IV.1) and assign to whichever class achieves the smaller distance.

  3. Choose the single element that wants to change subsets, e.g. from A to B or vice versa and whose change maximizes NCD1(AB) − NCD1(A) − NCD1(B) and swap that element from A to B or vice versa.

  4. Repeat steps 2 and 3 until no more elements want to change subsets or until we exceed e.g. 100 iterations.

Repeat the whole process some fixed number of times (here we use 5) for each X and choose the subsets that achieve the maximum of NCD1(AB) − NCD1(A) − NCD1(B). If that value exceeds the minimum inter-class separation and the subsets are not smaller than the specified minimum size then divide X into A and B and repeat the process for A and B. If the value does not exceed the minimum inter-class separation of our training data or the subsets exceed the specified minimum size, then accept X as approximately monotonic and go on to the next class.