[ЗАСТАВКА] Итак, мы познакомились с методом k ближайших соседей и теперь можно подумать о том, как же выжать максимум из его качества. Ну конечно, можно попробовать понастраивать какие-нибудь параметры. Но в то же время kNN обучается очень просто — он просто запоминает обучающую выборку. Однако есть параметры, которые выбирает исследователь. Это количество соседей, веса объектов и метрика. Эти параметры можно задать таким образом, чтобы качество работы алгоритма было как можно лучше. Конечно, не стоит их подбирать на обучающей выборке, но можно это сделать на специально отложенной тестовой, или еще лучше по качеству на кросс-валидации. Ну давайте посмотрим на количество соседей k. Как вы видите, самое подходящее k по качественно обучающей выборке, это k=1. Но это и понятно. Если мы пытаемся классифицировать объект из обучающей выборки, то мы просто находим ближайший к нему объект (а это он сам) и смотрим класс, к которому он принадлежит. Именно поэтому и не стоит подбирать такие парамеры по обучающей выборке. При этом видно, что качество и на обучающей выборке, и на тестовой не выглядит как совсем прям монотонная зависимость, а есть небольшие колебания, но в то же время обычно в общем поведение следующее: сначала качество на контроле становится все лучше с ростом k, а затем качество начинает ухудшаться. И вот нужно выбрать то самое k, при котором качество самое вменяемое. Теперь поговорим о весах объектов. Ну во-первых, понятно, что функция весов не должна возрастать с ростом номера объекта. Ну и понятно, что мы можем не заморачиваться и просто взять константные веса для всех объектов, получив самый стандартный kNN. Важно об этом помнить и не пытаться выдумывать какие-то сложные веса до того, как попробуете простой метод. Но если мы все же понимаем, что хотим попробовать разные веса, то подойдут веса вида число от 0 до 1 в степени i, где i — это номер соседа, или 1/i, или 1/i + какая-то константа, или можно вообще знаменатель возвести в какую-то степень. И вот эти константы, их тоже можно поварьировать и подобрать такие, при которых качество будет самое подходящее. Бывают и не очень удачные варианты функции весов. Ну например, если мы возьмем линейно зависящую от номера соседа функцию, то, например, при k=4, то есть для случая четырех соседей, если первый и последний сосед из одного класса, а второй и третий сосед из другого класса, алгоритм просто не сможет принять решение, потому что веса классов получатся одинаковые. Это, конечно, не значит, что эта функция вовсе не применима на практике, но важно учитывать, что ваша функция весов может иметь такого рода особенности. Ну а теперь посмотрим на веса объектов как на функцию от расстояния. Опять же мы помним, что можно было взять просто константы, но и можно придумать что-нибудь достаточно простое, например, 1 делить на расстояние. И вот давайте посмотрим, как будет выглядеть решение задачи регрессии в одном и в другом случае. Ну для простоты от одной переменной, то есть от одного признака. Это пример из прошлого видео, и мы уже обращали внимание на то, что вариант с весами получается очень переобученный. Действительно, когда мы пытаемся спрогнозировать зависимость в той точке, которая у нас уже есть в обучающей выборке, вес этого примера получается бесконечно большим, этот пример просто забивает другие и определяет результат. Поэтому нужно достаточно аккуратно выбирать веса. Можно, например, пробовать сгладить эту функцию весов, добавив в знаменателе какую-нибудь константу. Можно попробовать опять же возвести знаменатель в какую-то степень или попробовать функцию вида q в степени d, где q — это число от 0 до 1, а d — это расстояние. Есть и более общий подход к придумыванию функции весов, зависящих от расстояний, он использует функции, называемые ядрами, но на нем мы сейчас не будем останавливаться. Подведем итог: даже при том, что всё обучение kNN сводится к запоминанию обучающей выборке, есть параметры, которые можно понастраивать. Настраивать их нужно не на обучающей выборке, а на отложенной выборке, или по качеству на кросс-валидации. Мы обсудили выбор количества соседей и весов объектов. В следующем видео мы поговорим про расстояние, или иначе говоря, метрики, которые используется на практике.