Какой тип нормализации данных следует использовать с KNN?


9

Я знаю, что существует более двух типов нормализации.

Например,

1- Преобразование данных с использованием z-показателя или t-показателя. Это обычно называется стандартизацией.

2- Изменение масштаба данных для получения значений от 0 до 1.

Теперь вопрос, нужно ли мне нормализовать

Какой тип нормализации данных следует использовать с KNN? и почему?

Ответы:


11

Для k-NN я бы предложил нормализовать данные между и .01

k-NN использует евклидово расстояние как средство сравнения примеров. Для вычисления расстояния между двумя точками и , где - это значение признака :x1=(f11,f12,...,f1M)x2=(f21,f22,...,f2M)f1iix1

d(x1,x2)=(f11f21)2+(f12f22)2+...+(f1Mf2M)2

Чтобы все объекты имели одинаковую важность при расчете расстояния, они должны иметь одинаковый диапазон значений. Это возможно только путем нормализации.

Если они не были нормализованы и, например, функция имела диапазон значений в ), тогда как имела диапазон значений в . При расчете расстояния второй член будет в раз важнее первого, что приведет к тому, что k-NN будет больше полагаться на второй признак, чем на первый. Нормализация гарантирует, что все объекты отображаются в один и тот же диапазон значений.f1[0,1f2[1,10)10

Стандартизация, с другой стороны, имеет много полезных свойств, но не может гарантировать, что функции сопоставлены с тем же диапазоном. Хотя стандартизация может лучше всего подходить для других классификаторов, это не относится к k-NN или любому другому классификатору на основе расстояния.


4
Ваш ответ будет таким же, если я использовал другое расстояние вместо евклидова (например, расстояние Манхэттен или другое расстояние, даже дробное расстояние)? Также если диапазон переменных примерно близок друг к другу.
jeza

7
Да, я только что показал евклидово расстояние в качестве примера, но все метрики расстояния страдают от одного и того же. Если диапазоны близки друг к другу , то это не повлияет на расчет метрики , что много , но это все равно будет. Например, если и , все равно будет на важнее, чем . Одна вещь, которую я забыл упомянуть, это то, что стандартизация, очевидно, намного лучше, чем не выполнять масштабирование каких-либо функций; это просто хуже, чем нормализация. f 2[ 0 , 1.2 ) f 2 20 % f 1f1[0,1)f2[0,1.2)f220%f1
Djib2011

Ах я вижу. "это просто хуже, чем нормализация" !?
января
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.