Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте K-NN з декількома ознаками | Класифікатор K-NN
Класифікація з Python

K-NN з декількома ознаками

Свайпніть щоб показати меню

Тепер ви розумієте, як працює k-NN з однією ознакою. Перейдемо до трохи складнішого прикладу, який використовує дві ознаки: вага та ширина.

У цьому випадку потрібно знаходити сусідів на основі і ширини, і ваги. Але тут виникає невелика проблема. Давайте побудуємо графік цукерок і подивимось, що піде не так:

TwoFeatureNN1

Ви можете побачити, що вага змінюється від 12 до 64, тоді як ширина лише між 5 та 12. Оскільки діапазон ширини набагато менший, цукерки виглядають майже вертикально вирівняними. Якщо зараз обчислювати відстані, вони в основному відображатимуть різницю у вазі, ніби ширина взагалі не враховується.

Однак є рішення — масштабування даних.

TwoFeatureNNScaled

Тепер і вага, і ширина знаходяться в одній шкалі та центровані навколо нуля. Це можна досягти за допомогою класу StandardScaler з sklearn. StandardScaler просто віднімає середнє значення вибірки та ділить результат на стандартне відхилення вибірки:

Xscaled=XxˉsX_{scaled} = \frac{X - \bar x}{s}

StandardScaler центрує дані навколо нуля. Хоча центрування не є обов'язковим для k-NN і може викликати плутанину, наприклад, «як вага може бути від'ємною», це лише спосіб подання даних для комп'ютера. Деякі моделі вимагають центрування, тому використання StandardScaler для масштабування за замовчуванням є доцільним.

Фактично, дані слід завжди масштабувати перед використанням k-Nearest Neighbors. Після масштабування даних можна знаходити сусідів:

TwoFeatureNN

У випадку двох ознак k-NN визначає кругове оточення, що містить потрібну кількість сусідів. Для трьох ознак це стає сферою. У вищих вимірах оточення набуває складнішої форми, яку неможливо візуалізувати, проте основні обчислення залишаються незмінними.

question mark

Оберіть правильне твердження.

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 3
some-alt