Зачем кому-то использовать KNN для регрессии?


26

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

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

Как бы я мог предсказать будущее, используя регрессор KNN? Опять же, это, кажется, только приближает функцию, которая находится в пределах интервала обучающих данных.

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


Можете ли вы уточнить, что вы подразумеваете под «предсказывать будущее»? Есть ли у вас временные ряды, и вы хотите сделать прогноз, или вы пытаетесь согласовать отношения между двумя переменными и хотите использовать это в будущем, чтобы угадать значение Y из известного значения X?
gung - Восстановить Монику

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

1
Я бы согласился с вами, что если вы тренировались на множестве с но ожидали, что вы можете увидеть значения выходящие за рамки ваших данных, то непараметрические локальные методы могут быть не идеальными. Вместо этого вы можете использовать это знание предметной области и определить параметрическую модель, которая включает в себя ваши знания о том, как ожидается, что «ненаблюдаемый» будет вести себя. 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)+ϵ

Аддитивная часть (символы плюс) защищает от высокой дисперсии, в то время как использование KNN вместо защищает от высокого смещения.fn(xn)

Я бы не стал так быстро списывать KNN. Это имеет свое место.


1
Этот ответ о масштабировании данных для knn может помочь выразить то, что вы подразумеваете под «пропорциональной степенью отклонений». stats.stackexchange.com/questions/287425/…
eric_kernfeld

5

Я не люблю это говорить, но на самом деле короткий ответ таков: «предсказывать будущее» на самом деле невозможно ни с помощью knn, ни с каким-либо другим существующим в настоящее время классификатором или регрессором.

Конечно, вы можете экстраполировать линию линейной регрессии или гиперплоскость SVM, но, в конце концов, вы не знаете, каким будет будущее, насколько нам известно, линия может быть лишь небольшой частью пышной реальности. Это становится очевидным, когда вы смотрите на байесовские методы, такие как, например, гауссовские процессы, вы заметите большую неопределенность, как только выйдете из «известного входного домена».

Конечно, вы можете попытаться обобщить то, что произошло сегодня, и то, что, вероятно, произойдет завтра, что легко можно сделать с помощью регулятора knn (например, прошлогодние номера клиентов во время Рождества могут дать вам хороший совет о цифрах этого года). Конечно, другие методы могут включать тренды и так далее, но в конце вы можете увидеть, насколько хорошо это работает, когда дело доходит до фондового рынка или долгосрочных прогнозов погоды.


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

KNN является более консервативным, чем линейная регрессия, когда экстраполирует именно из-за поведения, отмеченного OP: он может давать прогнозы только в пределах диапазона значений Y, уже наблюдаемых. Это может быть преимуществом во многих ситуациях.
eric_kernfeld

1

Сначала приведу пример «Как бы я мог предсказать будущее, используя регрессор KNN?».

sunt+1sunt..sunt6
sunt

weektsunt..sunt6tomorrow(weekt))sunt+1

weekt
week
tomorrow0..tomorrow9
predict(week)tomorrow0..tomorrow9

Выполните настройку весов, смотрите , например , обратное расстояние взвешенных IDW-интерполяцию с-питоном ,
а расстояние метрики для «ближайшего соседа» в 7d.

«Каковы преимущества использования регрессора KNN?»
К хорошим комментариям других, я бы добавил, легко кодировать и понимать, и масштабируется до больших данных.
Недостатки: чувствительны к данным и настройке, не так много понимания .




XY
Yt=b0Xt+b1Xt1+...
Yt+1
Yt+1=a0Yt+a1Yt1+...

Таким образом, ваша первая строка «мы можем построить только регрессионную функцию, которая находится в интервале обучающих данных», кажется, о запутанном слове «регрессия».)


1

От введения к статистическому обучению , раздел 3.5:

В реальной ситуации, в которой истинные отношения неизвестны, можно сделать вывод, что KNN следует отдавать предпочтение перед линейной регрессией, поскольку в худшем случае она будет немного хуже линейной регрессии, если истинные отношения будут линейными, и может дать значительно лучшие результаты. результаты, если истинные отношения нелинейны.

Но есть ограничения (не из учебника, только то, что я сделал вывод):

  1. достаточное количество наблюдений на одного предиктора.
  2. количество предикторов не должно быть слишком большим.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.