Что такое K-ближайшие соседи?
KNN — это контролируемый алгоритм машинного обучения, который можно использовать как для задач регрессии, так и для задач классификации.
Объяснение того, почему следует использовать KNN по сравнению с другими алгоритмами, будет объяснено позже.
Как работает K-ближайшие соседи? (Проблема классификации)
Мы не сомневаемся, что алгоритмам машинного обучения нужны данные для обучения. KNN не является исключением.
Чтобы объяснить, как работает KNN, давайте рассмотрим пример:
Давайте рассмотрим задачу, в которой нам даны рост и вес человека, мы должны классифицировать, годен ли человек для службы в армии или нет (извините, не удалось найти лучшего примера), и предположим, что рисунок 1.1 представляет это. данные многих людей. где красный представляет собой Fit, синий представляет собой непригодный.
Итак, скажем, новый человек должен пройти этот тест, чтобы быть отнесенным к одному из этих классов (пригодный/непригодный).
Теперь пусть рост нового человека будет H, а вес W.
и Красная звезда на рис. 1.2 представляют этого нового человека.
Итак, координаты Звезда будет (H,W)
В KNN мы должны вручную выбрать значение имени переменной k, что будет показано позже.
В этом случае давайте попробуем k=3 и k=6:
если K = 3, мы собираемся найти 3 существующие точки данных в нашем тренировочном наборе, ближайшие к нашей Красной звезде (Новый человек).
Как найти ближайшие 3 точки к новой точке данных?
- Найдите евклидово расстояние между новой точкой данных (H, W) и всеми другими точками данных в обучающем наборе и поместите их в массив.
2. Отсортировать массив в порядке возрастания
3. Получить первые 3 элемента массива (потому что k=3)
Как классифицировать нового человека?
Теперь, когда мы получили 3 точки данных, наиболее близких к координатам Red Star (новый человек), осталось только найти классы, к которым принадлежат эти 3 точки данных.< br /> Если 2 из них принадлежат к классу годных, а другой принадлежит к классу непригодных, то мы классифицируем нового человека (Красную Звезду) как годного. а если это не так, мы классифицируем нового человека как непригодного.
Так работает KNN. мы буквально классифицируем данные на основе класса большинства соседних данных (евклидово расстояние), отсюда и название K ближайших соседей.
Как работает K-ближайшие соседи? (Проблема регрессии)
Все шаги одинаковы для регрессии и классификации до получения
«K» элементов массива (показано выше)
после нахождения K элементов, ближайших к новой точке данных. мы берем среднее значение зависимой переменной Y элементов «K» в списке, и это значение присваивается как значение для Y новой точки данных.
Примечание. В отличие от классификации, выходные данные регрессии представляют собой непрерывные значения для регрессии, поэтому мы берем среднее значение k верхних элементов массива и назначаем это значение в качестве прогнозируемого значения для наших новых данных.
Почему значение К важно?
K влияет на точность нашей модели, и количество ближайших соседей, из которых классифицируются новые данные, очень важно
очень малое значение для K может привести к переоснащению, а очень маленькое значение для k может привести к недообучению. Итак, выбор правильного значения для K очень важен.
Как выбрать значение K?
Не существует идеального способа выбрать значение для K. Но оно в значительной степени зависит от набора данных.
Но все же есть некоторые показатели оценки, которые упрощают задачу.
использование тестового набора и функции потерь.
Итак, функция потерь — это то, что говорит нам о том, насколько наши прогнозируемые значения отклоняются от фактическая стоимость
Для задачи регрессии мы можем использовать среднеквадратичную ошибку потерь, а для задач классификации мы можем использовать либо бинарную кросс-энтропию, либо категориальную кросс-энтропию потерь в зависимости от типа классификации.
Объяснение этих функций потерь выходит за рамки этой статьи. Но основной вывод заключается в том, что мы могли бы использовать разные значения K и вычислять потери, используя функцию потерь для каждого значения.
Наконец, мы выбираем значение K, для которого потери являются самыми низкими.
Вывод
Итак, KNN — это простой, но эффективный алгоритм, так как он сильно зависит от координат соседних значений, и именно так он работает.
Спасибо за прочтение