Навіщо хтось використовувати KNN для регресії?


26

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

Наприклад (потрібна лише одна з панелей): введіть тут опис зображення

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

Моє запитання: Які переваги використання регресора KNN? Я розумію, що це дуже потужний інструмент класифікації, але, здається, він би погано працював у сценарії регресії.


Чи можете ви уточнити, що ви маєте на увазі під "прогнозуванням у майбутнє"? Чи є у вас часові ряди, і ви хочете робити прогнозування, чи ви намагаєтесь встановити співвідношення між двома змінними і хочете використовувати це в майбутньому, щоб відгадати значення Y від відомого значення X?
gung - Відновіть Моніку

1
Наприклад, якби я хотів передбачити значення Y таке, що X = 15 із зображення вище. KNN-регресор не вирішив би це правильно?

1
Я би погодився з вами, що якщо ви тренувались на множині з але очікували, що ви можете побачити значення x набагато вищі за те, що є у ваших даних, то непараметричні локальні методи можуть бути не ідеальними. Натомість ви можете скористатись знаннями про домен та визначити параметричну модель, яка включає ваші знання про те, як очікується поведінка «незабезпеченого» x . x[0,5]xx
Meadowlark Bradsher

1
Прикладом успішного використання KNN для регресії є річ прогнозування бейсболу PECOTA Nate Silver. Про плюси і мінуси ви можете прочитати з статті Вікіпедії про PECOTA або таких статей у газеті: macleans.ca/authors/colby-cosh/…
Flounderer,

6
Крім того, щоб зробити більш загальну точку, коли ви станете обізнаними зі статистикою (або вилученням даних / машинним навчанням тощо), ви побачите, що відповіді на дуже загальні питання, такі як ваше, часто є перефразованою версією "це залежить". Знаючи, від чого це залежить, і чому це знання.
Meadowlark Bradsher

Відповіді:


17

Місцеві методи, такі як K-NN, мають сенс у деяких ситуаціях.

Один із прикладів, який я робив у шкільній роботі, стосувався прогнозування міцності на стиск різних сумішей цементних інгредієнтів. Усі ці інгредієнти були відносно енергонезалежними щодо відповіді чи один на одного, і KNN зробив на це достовірні прогнози. Іншими словами, жодна з незалежних змінних не мала пропорційно великої дисперсії для надання моделі окремо або, можливо, шляхом взаємної взаємодії.

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

Якщо ви думаєте про це з узагальненої точки зору, існує широкий клас застосувань, де подібні «рецепти» дають подібні результати. Це, звичайно, описувало ситуацію прогнозування результатів змішування цементу. Я б сказав, якби у вас були дані, які поводилися відповідно до цього опису, і крім того, ваша міра відстані також була природною для домену, і, нарешті, що у вас є достатня кількість даних, я б вважав, що ви повинні отримати корисні результати від KNN чи іншого локального методу .

Ви також отримуєте перевагу вкрай низької упередженості, коли використовуєте місцеві методи. Іноді узагальнені моделі добавок (GAM) врівноважують зміщення та дисперсію, встановлюючи кожну окрему змінну за допомогою KNN таким чином:

y^=f1(x1)+f2(x2)++fn(xn)+ϵ

fn(xn)

Я б не списав КНН так швидко. Це має своє місце.


1
Ця відповідь щодо масштабування даних для кн може допомогти виразити, що ви маєте на увазі під "пропорційною мірою відхилень". stats.stackexchange.com/questions/287425/…
eric_kernfeld

5

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

Звичайно, ви можете екстраполювати лінію лінійної регресії або гіперплощину SVM, але врешті-решт ви не знаєте, яким буде майбутнє, бо, як ми знаємо, лінія може бути просто невеликою частиною кривої реальності. Це стає очевидним, коли ви, наприклад, дивитесь на методи Баєса, як Гауссові процеси, ви помітите велику невизначеність, як тільки ви покинете "відомий вхідний домен".

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


+1 для обережності проти екстраполяції та для обговорення (відносно консервативної) поведінки КНН при екстраполяції.
eric_kernfeld

KNN є більш консервативним, ніж лінійна регресія при екстраполяції саме через поведінку, яку відмічає ОП: він може давати прогнози лише в межах вже відзначених значень Y. Це може бути перевагою у багатьох ситуаціях.
eric_kernfeld

1

Перший приклад для "Як я можу передбачити майбутнє за допомогою регресора KNN?".

сунт+1сунт..сунт-6
сунт

шеектсунт..сунт-6 і томоrrош(шеект))сунт+1 .

Спосіб: ставити 3650 непарних шеекткриві у дереві kd з k = 7.
Дано новешеек, шукайте його сказати 10 найближчих сусідів тижнів
з їхтомоrrош0..томоrrош9 і обчислити
prегicт(шеек) середньозважене значення томоrrош0..томоrrош9

Налаштуйте ваги, див., Наприклад, зважене-зворотне відстань-idw-інтерполяція-з-пітоном ,
а відстань метрики для «найближчого сусіда» в 7d.

"Які переваги використання регресора KNN?"
До хороших коментарів інших людей я б додав легкого кодування та розуміння та масштабування великих даних.
Недоліки: чутливість до даних та налаштування, не дуже розуміння .


(Довга виноска на термінології:
"регресія" використовується як вигадливе слово для "пристосування моделі до даних".
Найбільш поширеними є відповідні даніХ до цілі Y з лінійною моделлю:
Yt=b0Xt+b1Xt1+...
Also common is predicting tomorrow's say stock price Yt+1 from prices over the last week or year:
Yt+1=a0Yt+a1Yt1+...
Forecasters call this an ARMA, Autoregressive moving-average_model or Autoregressive model . See also Regression analysis .

So your first line "we can only build a regression function that lies within the interval of the training data" seems to be about the confusing word "regression".)


1

From An Introduction to Statistical Learning, section 3.5:

In a real-life situation in which the true relationship is unknown, one might draw the conclusion that KNN should be favored over linear regression because it will at worst be slightly inferior than linear regression if the true relationship is linear, and may give substantially better results if the true relationship is non-linear.

But there are constraints (not from the textbook, just what I concluded):

  1. a sufficient number of observations per predictor.
  2. the number of predictors should not be too big.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.