Чому KNN не є "модельною"?


10

Розділ 2.4 ESL, схоже, класифікує лінійну регресію як "засновану на моделі", оскільки вона передбачає , тоді як аналогічне наближення не вказано для k-найближчих сусідів. Але чи не обидва методи роблять припущення щодо ?f(x)xβf(x)

Пізніше в 2.4 він навіть говорить:

  • Найменші квадрати припускають, що добре наближений глобально лінійною функцією.f(x)
  • k-найближчі сусіди припускають, що добре апроксимується локально постійною функцією.f(x)

Припущення KNN здається, що воно також може бути формалізовано (хоча не впевнене, якщо це буде призводити до алгоритму KNN таким чином, якщо припускати, що лінійне призводить до лінійної регресії).f

Тож якщо KNN насправді не базується на моделях, чому? Або я неправильно читаю ESL?

Відповіді:


8

Досить важко порівняти kNN та лінійну регресію безпосередньо, оскільки вони є дуже різними речами, однак, я думаю, ключовим моментом тут є різниця між "моделюванням " та "з припущеннями про ".f(x)f(x)

Роблячи лінійну регресію, конкретно моделюється , часто щось серед рядків де - термін шуму Гаусса. Ви можете зрозуміти, що модель максимальної ймовірності еквівалентна моделі помилок мінімальної суми квадратів.f(x)f(x)=wx+ϵϵ

KNN, з іншого боку, як підказує ваш другий пункт, передбачає, що ви могли б наблизити цю функцію локально постійною функцією - деякою мірою відстані між -зами, не конкретно моделюючи весь розподіл.x

Іншими словами, лінійна регресія часто матиме гарне уявлення про значення для деякого невидимого від просто значення , тоді як kNN знадобиться якась інша інформація (тобто k сусіди) для прогнозування , оскільки значення , а саме значення, не дасть жодної інформації, оскільки для немає моделі .f(x)xxf(x)xf(x)

EDIT: повторити це нижче, щоб повторно висловити це чіткіше (див. Коментарі)

Зрозуміло, що і лінійна регресія, і методи найближчого сусіда мають на меті передбачити значення для нового . Зараз є два підходи. Лінійна регресія продовжується, якщо припустити, що дані потрапляють на пряму (плюс мінус деякий шум), і тому значення y дорівнює значенню меншому за нахил лінії. Іншими словами, лінійний вираз моделює дані як пряму.y=f(x)xf(x)

Тепер методи найближчого сусіда не переймаються тим, як виглядають дані (не моделюють дані), тобто їм байдуже, чи це лінія, парабола, коло тощо. і будуть подібними, якщо і схожі. Зауважте, що це припущення приблизно відповідає дійсності будь-якої моделі, включаючи всі, про які я згадував вище. Однак метод NN не міг сказати, як значення пов'язане з (чи це лінія, парабола тощо), оскільки у неї немає моделі цього відношення, вона просто передбачає, що її можна наблизити по дивлячись на ближні точки.f(x1)f(x2)x1x2f(x)x


"конкретно моделює f (x)" Що це означає? Здається, можна формалізувати припущення, що f локально постійна. Чи просто KNN не може бути отриманий такою формалізацією?
Алек

"лінійна регресія часто матиме гарне уявлення про значення f (x) для деякого невидимого x від просто значення x", не впевнений, що ви маєте на увазі під цим ... вам все ще потрібні параметри лінійної моделі, просто як вам знадобляться параметри для KNN (хоча його параметри більше задіяні)
Алек

Хороші моменти, я спробував відредагувати свою відповідь, щоб зробити її більш зрозумілою та сподіваюсь відповісти на ваші бали (обмеження кількості персонажів для коментарів низьке).
Саулій Лукаускас

+1, це добре пояснено. 'різниця між "моделюванням f (x)" і "маючи припущення про f (x)" ", дуже добре фіксує ідею, IMO. Можливо, іншим способом цього є врахування, що моделювання f (x) означає надання припущень щодо процесу генерування даних , тоді як knn цього не робить, а лише вважає, що значення даної даної даних може бути подібним до значення поблизу дані.
gung - Відновіть Моніку

Гм, гаразд. Ваша редакція, безумовно, робить це трохи зрозумілішим, але у мене все ще виникають проблеми, коли я бачу офіційну відмінність. Здається, що під «моделюванням» ви маєте на увазі «здобути гарне уявлення про форму F глобально», тоді як КНН дбає лише про місцеву поведінку. Тож саме ця різниця у глобальному та локальному зробить лінійне регресійне моделювання, а КНН - ні?
Алек

5

Лінійна регресія заснована на моделі, оскільки вона робить припущення про структуру даних з метою генерування моделі. При завантаженні набору даних в статистичну програму і використовувати її для виконання лінійної регресії виходу фактично є моделлю: . Ви можете подати нові дані в цю модель і отримати прогнозований вихід, оскільки ви зробили припущення про те, як насправді генерується вихідна змінна.f^(X)=β^X

З KNN насправді взагалі немає моделі - є лише припущення, що спостереження, що знаходяться поруч один з одним у просторі, ймовірно, будуть поводитись аналогічно з точки зору вихідної змінної. Ви не вводите нове спостереження в 'модель KNN', ви просто визначаєте, які існуючі спостереження найбільш схожі на нове спостереження, і прогнозуєте вихідну змінну для нового спостереження з навчальних даних.X


Хоча інтуїтивно я розумію, що ви маєте на увазі, відмінність все ще здається мені хиткою ... ви не можете розглянути KNN як параметризований розділом R ^ d та вагами, присвоєними розділам?
Алек

1
Якщо хтось попросив вас обґрунтувати свої прогнози, ви могли б це зробити, якщо ви використовували лінійну регресію, пояснюючи взаємозв'язки між входами та виходами, які ваша модель передбачає. Модель намагається пояснити взаємозв'язок введення / виводу вводу / виводу. KNN не намагається пояснити взаємозв'язок введення / виводу вхідних даних і виходів, отже, немає моделі.
tjnel

4

Термін на основі моделі є синонімом «розподілу на основі» при обговоренні методів кластеризації. Лінійна регресія робить припущення щодо розподілу (що помилки є гауссовими). KNN не робить жодних припущень щодо розподілу. У цьому полягає відмінність.


1
Це має найбільш сенс для мене з точки зору формального розрізнення, хоча ESL насправді не представляв лінійної регресії таким чином. Спочатку вони запровадили функцію витрат на квадратну помилку, якусь довільно (замість того, щоб робити MLE для Гаусса), і використали її для того, щоб визначити, що ми повинні передбачити f (x) = E (Y | X = x), пояснили, як KNN наближається це за певних припущень, а потім припускав, що f є лінійним, щоб отримати лінійну регресію.
Алек

Цікава пропозиція, але було б набагато краще, якби ми мали про це кілька посилань.
ivanmp

0

kNN заснований на екземплярі

Для того, щоб зробити прогноз на нове спостереження, ви повинні зберегти весь навчальний набір даних, оскільки немає моделі щодо набору даних.

Ось так працює kNN: давши нове спостереження, ми обчислимо відстань між цим новим спостереженням та всіма іншими спостереженнями в навчальному наборі даних. Потім ви отримуєте сусідів (тих, які найближчі до нового спостереження).

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

Як знайти модель?

Тепер, якщо ми спробуємо знайти функцію, яка не є "локально постійною", це було б нормальним розподілом. У цьому випадку ви отримаєте виклик алгоритму Лінійний дискримінантний аналіз або Naive Bayes (залежно від деяких інших припущень).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.