Для чого потрібно масштабувати дані в КНН


15

Чи не могли б хтось пояснити мені, чому потрібно нормалізувати дані при використанні K найближчих сусідів.

Я намагався розібратися в цьому, але все ще не можу його зрозуміти.

Я знайшов таке посилання:

https://discuss.analyticsvidhya.com/t/why-it-is-ne необходимо-to-normalize-in-knn/2715

Але в цьому поясненні я не розумію, чому більший діапазон в одній з особливостей впливає на прогнози.


Я думаю, нормалізація повинна бути виправданою з предметної точки зору. По суті, важливим є те, що визначає відстань між точками. Ви повинні знайти зручне арифметичне визначення відстані, яке відображає предметне визначення відстані. За своїм обмеженим досвідом я нормалізувався в деяких, але не у всіх напрямках, виходячи з предметних міркувань.
Річард Харді

1
Для повного прикладу див. Stats.stackexchange.com/questions/140711 .
whuber

Відповіді:


27

Алгоритм k-найближчого сусіда покладається на голосування більшості на основі приналежності класу до "k" найближчих зразків для заданої точки тестування. Близькість зразків, як правило, заснована на евклідовій відстані.

Розглянемо просту проблему класифікації двох класів, де обраний зразок 1 класу (чорний) разом із 10-ти найближчими сусідами (заповнений зеленим). На першому малюнку дані не нормалізуються, тоді як у другому - це.

Дані без нормалізації Дані з нормалізацією

Зауважте, як без нормалізації всі найближчі сусіди вирівнюються у напрямку осі з меншим діапазоном, тобто веде до неправильної класифікації.x1

Нормалізація вирішує цю проблему!


1
Ця відповідь цілком правильна, але я боюся, що ілюстрації можуть бути оманливими через спотворення. Точку можна краще зробити, намалювавши їх обидві так, щоб дві осі в кожній були в одному масштабі.
whuber

1
Мені складно було встановити всі точки даних в одній шкалі для обох фігур. Отже, я зазначив у примітці, що луски осей різні.
kedarps

1
Ця складність насправді полягає у вашій відповіді! Один із способів подолати це - не використовувати такий екстремальний діапазон ваг. Різниця в масштабах 5: 1, а не різниця 1000: 1, все одно добре зробить вашу думку. Інший спосіб - вірно намалювати малюнок: верхній розсіювач здасться вертикальною лінією точок.
whuber

2
@whuber, я неправильно зрозумів твій перший коментар. Виправлено сюжети, сподіваємось, зараз краще!
кедрпс

1
@Undertherainbow Це правильно!
kedarps

6

Припустимо, у вас був набір даних (m "прикладів" за n "ознаками"), і всі параметри, окрім однієї функції, мали значення строго між 0 і 1, тоді як для одного розміру функції було значення, що варіюється від -1000000 до 1000000. між парами "прикладів" значення розмірних ознак, що варіюються між 0 і 1, можуть стати неінформативними, і алгоритм по суті буде покладатися на єдиний вимір, значення якого істотно більше. Просто розробіть кілька прикладів евклідового обчислення відстані, і ви можете зрозуміти, як масштаб впливає на обчислення найближчого сусіда.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.