| Input: dataset Data, distance threshold Th |
| Output: dataset sample |
(1) | ClearData = Noise_Delete (Data); |
(2) | [majority, minority] = splite (ClearData); |
(3) | Cmaj = agg_cluster (majority, Th); |
(4) | While pp_min < Th |
(5) | p_dist = pdist (Cmin); |
(6) | [pp_min, p1, p2] = min_pp (p_dist); |
(7) | if (pp_min < minds (p1, Cmaj) and pp_min < minds (p2, Cmaj)) |
(8) | merge(p1, p2); |
(9) | end if |
(10) | end while |
(11) | for i = 1:size (Cmin) |
(12) | num[i] = unique (Cmin[i]) |
(13) | |
(14) | end for |
(15) | for i = 1: size (Cmin) |
(16) | nsample = dist_NB (Cmin[i], 5) |
(17) | for |
(18) | = sum (, nsample)) |
(19) | |
(20) | |
(21) | end for |
(22) | |
(23) | num[i] = (majority–minority)∗W[i] |
(24) | seed = seedsample (, num[i], Cmin[i]) |
(25) | while j < seed |
(26) | s = sample (seed, 1) |
(27) | [ns1, ns2] = sample (s, 5, 2, Cmin[i]) |
(28) | |
(29) | snew = s + rand (0, 1)∗(XT–s) |
(30) | ns1new = ns1 + rand (0, 1)∗(XT – ns1) |
(31) | ns2new = ns2 + rand (0, 1)∗(XT – ns2) |
(32) | j = j + 1 |
(33) | end while |
(34) | sample = samplesnewns1newns2new |
(35) | end for |
(36) | return sample |