Raw

2. Методичні вказівки

Цей розділ самодостатній: у ньому зібрано теорію методу kk найближчих сусідів і оцінювання класифікаторів, потрібну для аудиторних задач (3classroom.md) та домашньої програми (4task.md). Ширше ту саму теорію викладено в Лекції 6.

2.1 Задача класифікації

Класифікація — це навчання з учителем: за вектором ознак об’єкта x=(x1,,xm)x = (x_1, \dots, x_m) передбачити його клас yy з наперед відомої скінченної множини {c1,,cK}\{c_1, \dots, c_K\}. Класифікатор навчають на тренувальній множині розмічених прикладів D={(xi,yi)}i=1ND = \{(x_i, y_i)\}_{i=1}^{N}, а оцінюють на окремій тестовій множині — щоб перевірити узагальнення, а не запам’ятовування.

2.2 Функції відстані

Метод kNN міряє схожість об’єктів відстанню в просторі ознак. Для числових ознак:

евклідова:d2(x,y)=i=1m(xiyi)2,манхеттенська:d1(x,y)=i=1mxiyi, \text{евклідова:}\quad d_2(x, y) = \sqrt{\sum_{i=1}^{m} (x_i - y_i)^2}, \qquad \text{манхеттенська:}\quad d_1(x, y) = \sum_{i=1}^{m} |x_i - y_i|,

Мінковського порядку p:dp(x,y)=(i=1mxiyip)1/p(p=2евклідова, p=1манхеттенська). \text{Мінковського порядку } p:\quad d_p(x, y) = \Big( \sum_{i=1}^{m} |x_i - y_i|^{p} \Big)^{1/p} \quad(p=2 \to \text{евклідова},\ p=1 \to \text{манхеттенська}).

Для категоріальних ознак беруть відстань Геммінга — кількість позицій, у яких вектори різняться.

Порада. Щоб лише порівняти сусідів, корінь можна не брати: порядок за dd і за d2=(xiyi)2d^2 = \sum (x_i - y_i)^2 однаковий. Це економить обчислення.

2.3 Алгоритм kNN

Означення (kNN). Об’єкт відносять до найпоширенішого класу серед його kk найближчих (за обраною відстанню) об’єктів навчальної вибірки.

kNN(вибірка D = {(x_i, y_i)}, точка q, число k, відстань d):
  1. для кожного (x_i, y_i): r_i = d(q, x_i)
  2. упорядкувати об'єкти за зростанням r_i
  3. узяти перші k — найближчих сусідів
  4. підрахувати голоси кожного класу серед них
  5. повернути клас із найбільшою кількістю голосів

kNN — ліниве навчання: моделі не будує, вся робота — під час класифікації.

2.4 Вибір kk

  • Мале kk (напр. 11): чутливе до шуму й викидів, «рвані» межі, ризик перенавчання.
  • Велике kk: згладжує межі й придушує шум, але залучає далекі, несхожі об’єкти; за k=Nk = N завжди повертає найбільший клас — надмірне згладжування.
  • Для двокласової задачі беріть непарне kk, щоб не було нічиєї; орієнтир kNk \approx \sqrt{N}.

2.5 Нормалізація ознак

Відстань додає квадрати різниць покоординатно, тож ознака з великим масштабом задавить решту. Перед kNN числові ознаки нормалізують:

мінімакс:x=xxminxmaxxmin[0,1],z-стандартизація:z=xxˉs. \text{мінімакс:}\quad x' = \frac{x - x_{\min}}{x_{\max} - x_{\min}} \in [0, 1], \qquad z\text{-стандартизація:}\quad z = \frac{x - \bar{x}}{s}.

2.6 Зважений kNN

Ближчі сусіди мають важити більше. У зваженому kNN голос сусіда на відстані dd береться з вагою w=1/dw = 1/d або w=1/d2w = 1/d^2; клас об’єкта — той, для якого сума ваг сусідів найбільша. Це знімає нічиї й пом’якшує вибір kk.

2.7 Оцінювання: матриця невідповідності та метрики

Для бінарної задачі (позитивний / негативний клас) кожен об’єкт потрапляє в одну з чотирьох клітинок матриці невідповідності (confusion matrix):

Справжній: позитив Справжній: негатив
Передбачено: позитив TPTP FPFP
Передбачено: негатив FNFN TNTN

де TPTP — істинно-позитивні, TNTN — істинно-негативні, FPFP — хибно-позитивні (помилка I роду), FNFN — хибно-негативні (помилка II роду). Метрики (N=TP+TN+FP+FNN = TP+TN+FP+FN):

ACC=TP+TNN,P=TPTP+FP,R=TPTP+FN,TNR=TNTN+FP,F1=2PRP+R, \text{ACC} = \frac{TP+TN}{N}, \quad P = \frac{TP}{TP+FP}, \quad R = \frac{TP}{TP+FN}, \quad \text{TNR} = \frac{TN}{TN+FP}, \quad F_1 = \frac{2PR}{P+R},

MCC=TPTNFPFN(TP+FP)(TP+FN)(TN+FP)(TN+FN).\text{MCC} = \frac{TP\cdot TN - FP\cdot FN}{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}.

На незбалансованих класах правильність (ACC) оманлива — спирайтесь на F1F_1 і MCC.

2.8 Демонстраційний приклад (на інших даних, ніж у задачах)

(а) kNN «руками». Навчальна вибірка з 88 точок двох класів «++» і «-» у просторі двох ознак:

Клас «++» (4,5) (6,6) (3,3) (1,4)
Клас «-» (7,6) (8,4) (8,7) (8,9)

Класифікуємо точку q=(5,5)q = (5, 5) за евклідовою відстанню. Обчислимо d2d^2 і dd та впорядкуємо:

Сусід Клас d2d^2 dd
(4,5) ++ 11 1.0001{.}000
(6,6) ++ 22 1.4141{.}414
(7,6) - 55 2.2362{.}236
(3,3) ++ 88 2.8282{.}828
(8,4) - 1010 3.1623{.}162
(8,7) - 1313 3.6063{.}606
(1,4) ++ 1717 4.1234{.}123
(8,9) - 2525 5.0005{.}000
  • k=1k = 1: найближчий — (4,5)(4,5) класу «++». Отже, y^=+\hat{y} = +.
  • k=3k = 3: три найближчі — (4,5)+(4,5)\,{+}, (6,6)+(6,6)\,{+}, (7,6)(7,6)\,{-}; голоси 2:12 : 1 на користь «++». Отже, y^=+\hat{y} = +.

Обидва kk дають «++» — рішення робасне (не залежить від дрібного вибору kk).

(б) Метрики за матрицею невідповідності. Нехай класифікатор на тестовій вибірці з N=200N = 200 об’єктів дав TP=50TP = 50, FN=20FN = 20, FP=10FP = 10, TN=120TN = 120:

ACC=50+120200=0.85,P=5050+10=50600.833,R=5050+20=50700.714, \text{ACC} = \frac{50 + 120}{200} = 0{.}85, \qquad P = \frac{50}{50 + 10} = \frac{50}{60} \approx 0{.}833, \qquad R = \frac{50}{50 + 20} = \frac{50}{70} \approx 0{.}714,

TNR=120120+100.923,F1=20.8330.7140.833+0.7140.769, \text{TNR} = \frac{120}{120 + 10} \approx 0{.}923, \qquad F_1 = \frac{2 \cdot 0{.}833 \cdot 0{.}714}{0{.}833 + 0{.}714} \approx 0{.}769,

MCC=5012010206070130140=600020076440000=58008743.00.663. \text{MCC} = \frac{50\cdot 120 - 10\cdot 20}{\sqrt{60\cdot 70\cdot 130\cdot 140}} = \frac{6000 - 200}{\sqrt{76\,440\,000}} = \frac{5800}{8743{.}0} \approx 0{.}663.

Висока специфічність (0.9230{.}923) і нижча чутливість (0.7140{.}714) означають, що модель радше пропускає позитиви (FN=20FN = 20), ніж здіймає хибні тривоги (FP=10FP = 10).

2.9 Робочий контрольний список

  • Перед відстанями числові ознаки нормалізуйте (якщо масштаби різні).
  • Для порівняння сусідів рахуйте d2d^2 — корінь брати не обов’язково.
  • Беріть непарне kk у двокласовій задачі; за нічиєї — зважте голоси 1/d1/d.
  • Якість оцінюйте на тестовій множині; на незбалансованих класах дивіться на F1F_1 і MCC, а не лише на правильність.

Laboratory/Laboratory6/2method.md · 8.5 KB · updated 2026-08-04 23:15