W algorytmie ENN (ang. editing nearest neighbor rule) każdy wektor Xj zbioru treningowego zostaje poddany ocenie. Ocena polega na znalezieniu k najbliżej leżących wektorów względem Xj. Następnie stosując regułę głosowania większościowego wyznaczana jest przewidywana wartość etykiety wektora Xj. Uzyskana w ten sposób wartość porównywana jest z rzeczywistą etykietą Xj. Jeśli obydwie etykiety są różne, wówczas wektor Xi zostaje oznaczony, jako do usunięcia. Zapisuje się to, zgodnie z równaniem 3:
(3)
Q = kNN (T/Xi,xO
gdzie:
Cj - to obliczona etykieta wektora Xj,
T - zbiór treningowy,
Xj - wektor.
Następnie eliminowane są wszystkie wektory, które podczas klasyfikacji zostały oznaczone, jako do usunięcia. Wynikiem jest zbiór danych pomniejszony o usunięte (niezakwalifikowane poprawnie do klasy) wektory odstające, w tym również wektory brzegowe.[10], [11], [15]
Require: T
m *— sizeof(T);
rerrii *— 0;
for i = 1 . . . m do
C(xt) =k-NN ((T \xi),xi); if C(Xj) 7^ C'(Xj) then rerrii = 1; end if end for
for * = 1 ... m do
if rerrii ---1 then
T = T \ Xi end if end for ret urn P
Rysunek 6 Schemat algorytmu ENN.[15]
Na ilustracji 6 został pokazany schemat algorytmu ENN. Metoda ta została stworzona przez Wilsona. Dzięki zastosowaniu tego algorytmu, usuwane są wszystkie szumy w zbiorze treningowym.
18