Що насправді відбувається під час виклику fit() у KNeighborsClassifier?
Чому так. kNN — непараметрична модель: підбирати нічого, бо параметрів немає. fit копіює дані в памʼять, тому навчання миттєве навіть на великих таблицях. Уся робота переїжджає в момент передбачення — там кожен запит порівнюється з усією навчальною таблицею.
Питання 2 / 8
Ти провів повзунок k від 1 до 50 на тих самих даних. Що відбувається з межею рішень і з точністю на тестовій вибірці?
Чому так. В інтерактиві лекції видно обидва кінці: при k = 1 точність 0.885 і межа рвана, при k = 9 максимум 0.942, при k = 51 уже 0.881 і вузький згусток «преміум»-шахрайства зникає з карти зовсім. «Більше k завжди краще» — хибне правило: при k, рівному розміру вибірки, модель каже те саме всюди.
Питання 3 / 8
Точність kNN з k = 1 на навчальній вибірці дорівнює рівно 1.000. Про що це говорить?
Чому так. Це не досягнення, а тавтологія. Відстань від обʼєкта до самого себе дорівнює нулю, тож при k = 1 він завжди голосує сам за себе. Саме тому якість kNN міряють лише на відкладених даних: на них та сама модель дала 0.885 проти 0.942 у k = 9.
Питання 4 / 8
Ознаки — ціна в гривнях (від 3 600 до 17 300) і вік акаунта в днях (від 0 до 365). Що станеться, якщо подати їх у kNN як є?
Чому так. У відстань кожна ознака входить у квадраті різниці. Розрив у ціні сягає 13 700, у віці — щонайбільше 365; у квадраті це приблизно 1 400 разів. Друга ознака формально в моделі є, а фактично її немає. В інтерактиві лекції це коштувало 0.750 проти 0.931 після зрівнювання масштабів — при базовій лінії «усі чесні» 0.715.
Питання 5 / 8
Що саме ламається в kNN, коли ознак стає багато — скажімо, п'ятдесят?
Чому так. Це прокляття розмірності. В інтерактиві лекції відношення «найближча відстань до найдальшої» повзе від 0.027 при двох вимірах до 0.620 при пʼятдесяти. Метод спирається на локальність, а локальності в такому просторі просто не залишається. Памʼяті й коректності формули це не стосується — вона працює, але нічого не розрізняє.
Питання 6 / 8
kNN-регресію навчили на цінах від 8 000 до 22 600 ₴, k = 5, звичайне усереднення. Яке число вона може видати для нового телефона?
Чому так. Прогноз — це середнє пʼяти реальних цін із таблиці, а середнє ніколи не виходить за межі найменшого й найбільшого зі значень. Тому kNN не вміє екстраполювати: лінійна регресія на запит «а скільки коштуватиме модель 2027 року» видасть якесь число, kNN — ціну найдорожчого з відомих і не зрушить далі. Варіант «одна з цін таблиці» вірний лише для k = 1.
Питання 7 / 8
Архів — 5 мільйонів оголошень, вимога — відповідь за 50 мілісекунд. Чи годиться тут kNN?
Чому так. У kNN дорога половина — це передбачення, а не навчання: fit просто копіює таблицю. Один запит коштує n·p обчислень, і k тут ні до чого — щоб знайти навіть одного найближчого, все одно треба переглянути всі 5 мільйонів. KD-дерево допомагає лише в невеликій розмірності, приблизно до двох десятків ознак.
Питання 8 / 8
Ти перебрав k від 1 до 50 і залишив те значення, яке дало найбільшу точність на тестовій вибірці. Що з цим не так?
Чому так. Тест — це одноразова лінійка. Обравши за ним k, ти вже підігнав модель під ці дані, і заявлена точність буде оптимістично зміщеною. Чесний шлях — крос-валідація на навчальній частині: там перебирають k, а тестову чіпають один раз наприкінці. У лекції крива по тесту показана лише як ілюстрація поведінки методу, і це там сказано прямо.