Для k-NN я б запропонував нормалізувати дані між і 1 .01
k-NN використовує евклідову відстань як свій засіб порівняння прикладів. Для того, щоб розрахувати відстань між двома точками і х 2 = ( F 1 2 , F 2 2 , . . . , Е M 2 ) , де f i 1 - значення ix1=(f11,f21,...,fM1)x2=(f12,f22,...,fM2)fi1i-та особливість :x1
d(x1,x2)=(f11−f12)2+(f21−f22)2+...+(fM1−fM2)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√
Щоб усі функції мали однакове значення при обчисленні відстані, функції повинні мати однаковий діапазон значень. Це досягається лише шляхом нормалізації.
Якщо вони не були нормалізовані і, наприклад, функція мала діапазон значень [ 0 , 1 ), тоді як f 2 мав діапазон значень у [ 1 , 10 ) . При обчисленні відстані другий доданок був би в 10 разів важливішим за перший, змушуючи k-NN більше покладатися на другу особливість, ніж на перший. Нормалізація забезпечує те, що всі функції відображаються в однаковому діапазоні значень.f1[0,1f2[1,10)10
З іншого боку, стандартизація має багато корисних властивостей, але не може гарантувати, що функції відображаються в одному діапазоні. Хоча стандартизація може бути найкращим чином підходить для інших класифікаторів, це не стосується k-NN або будь-якого іншого класифікатора на основі відстані.