Лекція 6. Класифікація. Метод найближчих сусідів (kNN)
Огляд
Цією лекцією починається Модуль 3 — методи класифікації. Досі ми даними описували (Модуль 1) та робили статистичні висновки про них (Модуль 2); у Лекції 5 регресія навчилася передбачати число за іншими числами. Тепер ми ставимо іншу задачу прогнозу: за ознаками об’єкта передбачити не число, а категорію — до якого з наперед відомих класів об’єкт належить. Лист прийшов — це спам чи ні? Пухлина доброякісна чи злоякісна? Транзакція шахрайська чи законна? Усе це — класифікація.
У розділі ми спершу вводимо саму задачу класифікації, її правила якості (повнота й чистота), місце класифікації в машинному навчанні та типи задач. Потім розбираємо, як оцінювати класифікатор: матрицю невідповідності (confusion matrix) і похідні від неї метрики — правильність, точність, чутливість, специфічність, -міру та коефіцієнт кореляції Меттьюза. Друга половина лекції — перший конкретний метод: найближчих сусідів (англ. -nearest neighbours, kNN), його алгоритм, функції відстані, роль нормалізації ознак, вплив параметра і зважений варіант. У Лекції 7 ми перейдемо до методів, що будують явну модель (дерева рішень), а поки що метод kNN покаже задачу класифікації в найпрозорішому вигляді — без навчання моделі взагалі.
Практичний бік. Класифікувати об’єкт методом kNN «руками» й обчислити метрики за матрицею невідповідності ви навчитесь в аудиторній частині, а програму kNN, що читає навчальну вибірку з CSV, напишете в Лабораторній роботі 6.
6.1 Класифікація як задача
Означення (класифікація). Класифікація — це процес упорядкування за певним критерієм об’єктів, які мають ознаки, задля визначення подібності або відмінності між ними. У задачах аналітики це означає побудову правила, яке кожному об’єкту за значеннями його ознак приписує один із наперед заданих класів.
Уведемо робочі позначення. Об’єкт описують вектором ознак (предикторів, атрибутів) ; кожна ознака — числова або категоріальна. Клас (мітка, цільова ознака) набуває значень зі скінченної множини . Класифікатор — це функція , що за вектором ознак повертає передбачений клас.
Ключова відмінність від регресії (Лекція 5): там ціль — неперервне число, тут — категорія. Тому й міряють якість інакше: не середньоквадратичною похибкою, а часткою правильно віднесених об’єктів (§6.8–6.9).
Приклад 6.1. Банк класифікує заявників на кредит за ознаками у два класи . Це задача класифікації: ціль категоріальна.
6.2 Правила класифікації: повнота і чистота
Будь-яке розбиття об’єктів на класи оцінюють двома взаємодоповняльними критеріями.
Означення (повнота, чистота). Повнота (англ. completeness) вимагає, щоб усі об’єкти, які насправді належать до одного класу, потрапляли в одну групу — клас охоплено повністю, без «загублених» об’єктів. Чистота (англ. purity) вимагає, щоб кожна група містила об’єкти лише одного класу — без домішок чужих об’єктів.
Ці дві вимоги перебувають у природному напруженні. Якщо оголосити всі об’єкти одним великим класом, повнота ідеальна (жоден об’єкт не загублено), але чистота жахлива (група змішана). Якщо ж кожен об’єкт зробити окремою групою, чистота ідеальна, зате повнота нульова (об’єкти одного класу розкидано). Гарний класифікатор балансує повноту й чистоту; кількісно це напруження виражають метрики чутливості та точності (§6.9), а в деревах рішень (Лекція 7) чистоту вузла міряють ентропією та індексом Джині.
6.3 Машинне навчання та його типи
Класифікатор рідко програмують правилами вручну — його навчають на прикладах. Це підгалузь машинного навчання.
Означення (машинне навчання). Машинне навчання (англ. machine learning) — підгалузь штучного інтелекту, яка застосовує статистичні прийоми, щоб надати комп’ютерам здатність «навчатися» (поступово покращувати продуктивність у вирішенні задачі) на даних, замість того щоб бути запрограмованими явно на кожен випадок.
За тим, що саме відомо про дані під час навчання, розрізняють типи навчання:
- Навчання з учителем (англ. supervised learning) — у навчальних прикладах відома правильна відповідь (мітка класу). Модель учиться відтворювати відповідність «ознаки → клас». Класифікація (ця лекція) і регресія (Лекція 5) — саме такі задачі.
- Навчання без учителя (англ. unsupervised learning) — міток немає; модель сама шукає структуру в даних, групуючи схожі об’єкти. Це задача кластеризації (Модуль 4, Лекція 9).
Типова помилка (класифікація проти кластеризації). І там, і там об’єкти «розкладають по групах», але класифікація навчається на готових мітках і приписує об’єкт до наперед відомого класу, а кластеризація мітками не користується й формує групи сама. Плутати їх — усе одно що плутати «навчання з учителем» із «без учителя».
6.4 Типи задач класифікації
Задачі класифікації класифікують і самі — за кількома незалежними ознаками.
| Ознака поділу | Тип | Пояснення |
|---|---|---|
| Кількість класів | бінарна | рівно два класи (): спам / не спам |
| мультиномінальна (багатокласова) | три й більше класів: цифри – | |
| Кількість ознак | одновимірна | рішення за одним предиктором (див. OneR, Лекція 7) |
| багатовимірна | рішення за вектором із кількох ознак (kNN — саме така) | |
| Характер відповіді | ординарна (детерміністична) | видає одну мітку класу |
| ймовірнісна | видає ймовірності належності до кожного класу |
Ці ознаки поєднуються: kNN — це багатовимірна класифікація, яку легко зробити і детерміністичною (мажоритарне голосування, §6.10), і ймовірнісною (частка сусідів кожного класу як оцінка ймовірності). Наступна Лекція 7 присвячена ординарним методам, а Лекція 8 — ймовірнісному (баєсовому) класифікатору.
6.5 Тренувальна й тестова множини
Модель, навчену на певних даних, не можна чесно оцінювати на тих самих даних: вона могла їх просто «запам’ятати». Тому наявні розмічені дані ділять.
Означення (тренувальна й тестова множини). Тренувальну (навчальну) множину модель бачить під час навчання й на ній підбирає свої параметри. Тестову множину приховують до кінця й використовують один раз — щоб оцінити якість на нових, небачених об’єктах.
Мета — не мінімальна похибка на навчальних даних, а узагальнення (англ. generalization): добра робота на нових об’єктах. Модель, яка ідеально відтворює навчальні дані, але провалюється на тестових, перенавчена (англ. overfitting) — вона вловила випадковий шум замість закономірності. Типовий поділ — – на навчання, решта на тест; для надійнішої оцінки застосовують перехресну перевірку (англ. cross-validation), коли роль тесту по черзі грають різні частини даних.
6.6 Характеристики методів класифікації
Методи порівнюють не лише за точністю, а й за практичними властивостями.
- Швидкість — час навчання та час класифікації одного об’єкта. У kNN навчання миттєве (дані просто запам’ятовуються), зате класифікація повільна: щоб віднести об’єкт, треба обчислити відстань до всіх навчальних точок.
- Робасність (стійкість) — здатність давати правильний результат за наявності шуму й викидів у даних.
- Інтерпретованість — наскільки легко людині зрозуміти, чому модель ухвалила саме таке рішення. Дерева рішень прозорі, нейронні мережі — ні.
- Надійність — стабільність якості на різних наборах даних, відсутність різких провалів.
6.7 Огляд методів класифікації
Класифікаторів багато; далі в курсі ми розберемо основні. Оглядовий перелік:
- Метод найближчих сусідів (kNN) — ця лекція;
- дерева рішень та випадковий ліс (ансамбль дерев) — Лекція 7;
- баєсівська (ймовірнісна) класифікація — Лекція 8;
- логістична регресія — лінійна межа, що видає ймовірність класу;
- метод опорних векторів (англ. SVM) — максимізує «зазор» між класами;
- лінійний дискримінантний аналіз (LDA);
- штучні нейронні мережі — гнучкі нелінійні моделі.
Ми починаємо з kNN, бо він не будує моделі взагалі: у ньому задача класифікації видно в чистому вигляді — «схожий об’єкт має схожий клас».
6.8 Матриця невідповідності
Перш ніж вивчати конкретний метод, домовимося, як міряти його якість. Для бінарної класифікації один клас називають позитивним (той, що нас цікавить, — напр. «хворий», «спам»), інший — негативним. Порівнюючи передбачення з істиною, кожен об’єкт потрапляє в одну з чотирьох клітинок.
Означення (матриця невідповідності). Матриця невідповідності (також матриця помилок / плутанини, англ. confusion matrix) — таблиця , що зіставляє справжній клас об’єктів із передбаченим:
Справжній: позитив Справжній: негатив Передбачено: позитив (істинно-позитивні) (хибно-позитивні) Передбачено: негатив (хибно-негативні) (істинно-негативні)
Розшифровка чотирьох чисел:
- (true positive) — позитивні об’єкти, правильно названі позитивними;
- (true negative) — негативні, правильно названі негативними;
- (false positive) — негативні, помилково названі позитивними (помилка I роду, «хибна тривога»);
- (false negative) — позитивні, помилково названі негативними (помилка II роду, «пропуск»).
Діагональ — правильні рішення; поза діагоналлю — два різні за змістом типи помилок. Розрізняти їх критично: для медичного тесту пропуск хвороби () значно небезпечніший за хибну тривогу ().

6.9 Метрики якості класифікації
З чотирьох чисел матриці утворюють кілька метрик; усього об’єктів .
Означення (метрики).
Змістовно: точність відповідає на запитання «серед названих позитивними — скільки справді позитивні?», а чутливість — «серед справді позитивних — скільки ми вловили?». Вони в напруженні (як повнота й чистота §6.2), тож їх зводять в одну величину — гармонійне середнє:
Означення (-міра).
близька до , лише коли обидві — і точність, і чутливість — високі; провал будь-якої тягне вниз.
Правильність (accuracy) сама по собі оманлива на незбалансованих класах.
Типова помилка (парадокс правильності). Нехай серед пацієнтів лише хворих. Класифікатор, що завжди каже «здоровий», має , , , , тобто — « правильних»! Але його чутливість : він не виявив жодного хворого. Тому на рідкісний позитивний клас завжди дивіться на чутливість, точність і , а не лише на ACC.
Єдина метрика, збалансована навіть за перекосу класів, — коефіцієнт кореляції Меттьюза.
Означення (коефіцієнт Меттьюза, MCC).
: — ідеальне передбачення, — рівень випадкового вгадування, — цілковита протилежність.
Приклад 6.2 (усі метрики за матрицею). Класифікатор дав матрицю , , , ():
Коефіцієнт Меттьюза:
Модель добре вловлює позитиви (), а помірна точність () означає, що частина тривог хибні ().

6.10 Метод найближчих сусідів: ідея
Найпростіший принцип класифікації спирається на здоровий глузд: схожі об’єкти належать до схожих класів. Схожість вимірюють відстанню в просторі ознак (§6.12).
Означення (kNN). У методі найближчих сусідів об’єкт відносять до того класу, який є найпоширенішим серед його найближчих (за обраною відстанню) об’єктів навчальної вибірки.
kNN — приклад лінивого навчання (англ. lazy learning): він не будує моделі. «Навчання» зводиться до запам’ятовування навчальної вибірки, а вся робота відбувається під час класифікації — тоді й обчислюють відстані до всіх точок. Через це kNN простий і напрочуд ефективний на малих даних, але повільний на великих (§6.6) і чутливий до масштабу ознак (§6.13).
Приклад 6.3 (kNN «руками»). Навчальна вибірка з точок двох класів — (клас 1) і (клас 2) — у просторі двох нормованих ознак:
| Клас | (1,1) | (2,1) | (2,2) | (5,4) |
|---|---|---|---|---|
| Клас | (6,6) | (6,7) | (7,7) | (8,6) |
Класифікуємо нову точку . Обчислимо евклідові відстані й упорядкуємо їх:
| Сусід | Клас | |
|---|---|---|
| (5,4) | ||
| (6,6) | ||
| (6,7) | ||
| (7,7) | ||
| (8,6) | ||
| (2,2) | ||
| (2,1) | ||
| (1,1) |
- : найближчий сусід — класу . Отже, .
- : три найближчі — , , ; голоси на користь . Отже, .
Відповіді різні! Точка — поодинокий серед (шум або викид); при він визначає рішення сам, а при його «переголошують» два сусіди-. Це наочно показує, чому вибір важливий (§6.14).

6.11 Алгоритм kNN
kNN(навчальна вибірка D = {(x_i, y_i)}, нова точка q, число k, відстань d):
1. для кожного (x_i, y_i) з D:
обчислити відстань r_i = d(q, x_i)
2. упорядкувати об'єкти за зростанням r_i
3. узяти перші k об'єктів — множину N_k(q) «найближчих сусідів»
4. підрахувати, скільки сусідів у N_k(q) належить кожному класу
5. повернути клас із найбільшою кількістю голосів
(за нічиєї — обрати клас із меншою сумарною відстанню
або зменшити/збільшити k)
Часова складність класифікації одного об’єкта — на обчислення відстаней плюс (чи ) на відбір найменших, де — розмір вибірки, — число ознак. Для великих застосовують просторові структури (напр., -d-дерева), що прискорюють пошук сусідів.
6.12 Функції відстані
«Найближчий» означає «найближчий за деякою метрикою». Вибір відстані — частина налаштування kNN.
Для числових ознак ():
Означення (метрики Мінковського).
Евклідова — це , манхеттенська — ; за дістають відстань Чебишова .
Для категоріальних ознак різниці не означено; тоді беруть відстань Геммінга.
Означення (відстань Геммінга). Для двох векторів категоріальних ознак відстань Геммінга дорівнює кількості позицій, у яких вони різняться.
Приклад 6.4 (порівняння метрик). Для , різниці координат — і :

Зі зростанням відстань спадає (від до ), бо все більшу вагу перебирає найбільша з покоординатних різниць.
Приклад 6.5 (Геммінг). Об’єкти і різняться у двох позиціях (стать і третя ознака), тож відстань Геммінга .
6.13 Нормалізація ознак
kNN спирається на відстані, а відстань сліпа до сенсу ознак: вона просто додає квадрати різниць. Якщо ознаки мають різні масштаби, ознака з великими числами задавить усі інші.
Приклад 6.6 (масштаб спотворює сусідство). Клієнтів описують ознаками (вік, дохід): , , . Хто ближчий до ? За «сирою» евклідовою відстанню
тобто найближчий до — : дохід (тисячі) повністю заглушив вік (десятки). Але за віком і майже однакові, а старший на років — інтуїтивно ближчим має бути . Вину несе масштаб, і його усуває нормалізація.
Означення (нормалізація ознак). Мінімаксна нормалізація стискає ознаку в :
а -стандартизація зводить її до нульового середнього й одиничного СКВ:
Візьмемо діапазони вік (розмах ) і дохід (розмах ). Після мінімаксної нормалізації , , , і тепер
Найближчим став — відстань перестала визначатися лише доходом. Висновок: перед kNN числові ознаки майже завжди нормалізують; інакше метод фактично використовує одну «найбільшу» ознаку.
6.14 Вплив значення
Параметр керує гладкістю меж між класами.
- Малий (напр. ) робить рішення чутливим до кожної точки, зокрема до шуму й викидів: одна помилкова мітка поряд — і об’єкт класифіковано хибно (див. Приклад 6.3). Межі класів «рвані», є ризик перенавчання.
- Великий усереднює по багатьох сусідах і згладжує межі, придушуючи шум. Та якщо завелике, у голосуванні починають брати участь далекі, уже несхожі об’єкти; у крайньому разі завжди повертає найбільший клас усієї вибірки — надмірне згладжування (недонавчання).

Оптимальне шукають експериментально — за якістю на тестовій множині (§6.5). Практичне правило-орієнтир .
Типова помилка (парне у бінарній задачі). За парного можливий нічийний голос ( проти ), який доведеться розв’язувати штучно. Для двокласової задачі беріть непарне () — тоді нічиєї між двома класами не буде.
6.15 Зважений kNN
У звичайному голосуванні всі сусідів рівноправні, хоч один із них може бути впритул, а інший — на самому краю околу. Логічно дати ближчим сусідам більшу вагу.
Означення (зважений kNN). У зваженому kNN голос сусіда на відстані береться з вагою або (за — нескінченна вага, тобто збіг із навчальною точкою). Клас об’єкта — той, для якого сума ваг сусідів найбільша.
Зважування, зокрема, розв’язує нічиї й пом’якшує вимогу до вибору .
Приклад 6.7 (зважений голос знімає нічию). Нехай серед сусідів два — класу A на відстанях і два — класу B на відстанях . Звичайне голосування дає нічию . Зважимо:
Обидві схеми ваг віддають об’єкт класу A — завдяки дуже близькому сусіду на відстані , який в незваженому голосуванні важив стільки ж, скільки далекий.

Застосування в аналітиці даних
- Рекомендаційні системи. «Користувачі, схожі на вас (найближчі сусіди), вподобали…» — це kNN у просторі вподобань.
- Медична діагностика. Класифікація за схожістю на раніше діагностованих пацієнтів; тут матриця невідповідності й чутливість особливо важливі (ціна пропуску висока).
- Оцінювання будь-якого класифікатора. Матриця невідповідності та метрики (ACC, , , , MCC) — універсальний інструмент порівняння моделей; ми застосовуватимемо їх до дерев (Лекція 7) і баєсового класифікатора (Лекція 8).
- Виявлення аномалій. Об’єкт, у якого навіть найближчі сусіди далеко, ймовірно, є викидом.
Підсумок
- Класифікація — навчання з учителем: за ознаками передбачити категорію з наперед відомої множини класів. Якість грунтового розбиття описують повнотою (охопити клас цілком) і чистотою (без домішок).
- Типи задач: бінарна / мультиномінальна; одно- / багатовимірна; детерміністична / ймовірнісна. Дані ділять на тренувальну й тестову множини, щоб оцінити узагальнення й уникнути перенавчання.
- Матриця невідповідності () породжує метрики: правильність , точність , чутливість , специфічність , і MCC. На незбалансованих класах ACC оманлива — дивіться на та MCC.
- kNN відносить об’єкт до найпоширенішого класу серед найближчих сусідів; це ліниве навчання — моделі не будує, зате повільне на великих даних.
- Відстань: евклідова, манхеттенська, Мінковського (числові), Геммінга (категоріальні). Числові ознаки перед kNN обов’язково нормалізують, інакше домінує ознака з найбільшим масштабом.
- Малий — чутливість до шуму (перенавчання); великий — надмірне згладжування. Для бінарної задачі беріть непарне . Зважений kNN (вага чи ) підсилює ближчих сусідів і знімає нічиї.
Вправи
Для розігріву
- Чим задача класифікації відрізняється від задачі регресії (Лекція 5) і від задачі кластеризації (Лекція 9)? Наведіть по прикладу.
- Поясніть на словах різницю між повнотою і чистотою класифікації та чому вони перебувають у напруженні.
- Дано , , , . Обчисліть правильність, точність, чутливість і специфічність.
- Чому для бінарної класифікації методом kNN радять брати непарне ?
Стандартні
- Для точок і обчисліть відстані: евклідову, манхеттенську, Мінковського порядку та Чебишова.
- Навчальна вибірка: клас A — ; клас B — . Класифікуйте точку методом kNN за евклідовою відстанню для і . Чи збігаються відповіді?
- Ознаки об’єктів — (кількість кімнат , площа м²). Поясніть, чому без нормалізації kNN фактично ігноруватиме кількість кімнат, і нормалізуйте мінімаксно об’єкт .
- За матрицею , , , (Приклад 6.2) обчисліть і NPV; поясніть, що означає кожне число.
Підвищеної складності
- Побудуйте приклад незбалансованої вибірки, на якій правильність (accuracy) , а -міра . Який висновок про вибір метрики це ілюструє?
- Доведіть, що для будь-якої матриці невідповідності -міра не перевищує правильності, коли класи збалансовані; за яких умов ?
- У Прикладі 6.3 застосуйте зважений kNN з вагою при до точки . Який клас переможе тепер і чому він може відрізнятися від незваженого голосування? (Підказка: найближчий сусід на відстані має вагу .)
- Поясніть, як зробити kNN ймовірнісним класифікатором (§6.4): що взяти за оцінку ? Як на цю оцінку впливає збільшення ?