K-NN з декількома ознаками
Тепер ви розумієте, як працює k-NN з однією ознакою. Перейдемо до трохи складнішого прикладу, який використовує дві ознаки: вага та ширина.
У цьому випадку потрібно знаходити сусідів на основі і ширини, і ваги. Але тут виникає невелика проблема. Давайте побудуємо графік цукерок і подивимось, що піде не так:
Ви можете побачити, що вага змінюється від 12 до 64, тоді як ширина лише в межах від 5 до 12. Оскільки діапазон ширини набагато менший, цукерки виглядають майже вертикально вирівняними. Якщо зараз обчислювати відстані, вони в основному відображатимуть різницю у вазі, ніби ширина взагалі не враховується.
Однак є рішення — масштабування даних.
Тепер і вага, і ширина знаходяться в однаковому масштабі та центровані навколо нуля. Це можна зробити за допомогою класу StandardScaler з sklearn. StandardScaler просто віднімає середнє значення вибірки і ділить результат на стандартне відхилення вибірки:
StandardScaler центрує дані навколо нуля. Хоча центрування не є обов'язковим для k-NN і може викликати плутанину, наприклад, «як вага може бути від’ємною», це лише спосіб подання даних комп’ютеру. Деякі моделі вимагають центрування, тому рекомендується за замовчуванням використовувати StandardScaler для масштабування.
Насправді, дані слід завжди масштабувати перед використанням k-Nearest Neighbors. Після масштабування даних можна знаходити сусідів:
У випадку двох ознак k-NN визначає кругове оточення, що містить потрібну кількість сусідів. Для трьох ознак це стає сферою. У вищих вимірах оточення набуває складнішої форми, яку неможливо візуалізувати, проте основні обчислення залишаються незмінними.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.17
K-NN з декількома ознаками
Свайпніть щоб показати меню
Тепер ви розумієте, як працює k-NN з однією ознакою. Перейдемо до трохи складнішого прикладу, який використовує дві ознаки: вага та ширина.
У цьому випадку потрібно знаходити сусідів на основі і ширини, і ваги. Але тут виникає невелика проблема. Давайте побудуємо графік цукерок і подивимось, що піде не так:
Ви можете побачити, що вага змінюється від 12 до 64, тоді як ширина лише в межах від 5 до 12. Оскільки діапазон ширини набагато менший, цукерки виглядають майже вертикально вирівняними. Якщо зараз обчислювати відстані, вони в основному відображатимуть різницю у вазі, ніби ширина взагалі не враховується.
Однак є рішення — масштабування даних.
Тепер і вага, і ширина знаходяться в однаковому масштабі та центровані навколо нуля. Це можна зробити за допомогою класу StandardScaler з sklearn. StandardScaler просто віднімає середнє значення вибірки і ділить результат на стандартне відхилення вибірки:
StandardScaler центрує дані навколо нуля. Хоча центрування не є обов'язковим для k-NN і може викликати плутанину, наприклад, «як вага може бути від’ємною», це лише спосіб подання даних комп’ютеру. Деякі моделі вимагають центрування, тому рекомендується за замовчуванням використовувати StandardScaler для масштабування.
Насправді, дані слід завжди масштабувати перед використанням k-Nearest Neighbors. Після масштабування даних можна знаходити сусідів:
У випадку двох ознак k-NN визначає кругове оточення, що містить потрібну кількість сусідів. Для трьох ознак це стає сферою. У вищих вимірах оточення набуває складнішої форми, яку неможливо візуалізувати, проте основні обчислення залишаються незмінними.
Дякуємо за ваш відгук!