Введение в машинное обучение и анализ данных

Алгоритм KNN (k ближайших соседей)

В материале рассматривается работа алгоритма k-ближайших соседей (k-NN) для задачи классификации. На простом примере с фруктами объясняется логика работы: от признаков объекта (сладость, кислость) к его классу (тип фрукта). Излагается принцип расчета евклидова расстояния от нового объекта до всех известных, сортировка по близости и выбор класса на основе большинства среди k ближайших соседей. Подчеркивается, что алгоритм универсален и может применяться к данным с большим числом признаков.

Основные мысли

В результате изучения лекции слушатель будет способен:

  1. Объяснить основную идею алгоритма k-ближайших соседей.
  2. Описать, что такое обучающая выборка, признаки и целевая переменная в контексте задачи классификации.
  3. Сформулировать принцип расчета евклидова расстояния между объектами по их числовым признакам.
  4. Применить алгоритм k-NN для предсказания класса нового объекта на простом примере.
  5. Проанализировать, как выбор параметра k влияет на результат классификации.
Показывать лекцию целиком
Краткое изложение

Исходные данные: обучающая выборка

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

Первый столбец — название фрукта: лимон, грейпфрут, апельсин, малина, вишня, банан, виноград, арбуз, авокадо, клубника.

Далее идут два признака, по которым мы будем оценивать каждый фрукт:

Эти признаки выражены числовыми оценками. Например, у лимона оценки 1 и 9 (несладкий, но очень кислый), у банана — 9 и 1 (сладкий и некислый).

Последний столбец — целевая переменная, или тип фрукта. Это правильный ответ, который мы должны предсказывать. В нашем примере есть три класса:

  1. Кислый (лимон, грейпфрут, апельсин, малина).
  2. Сладкий (вишня, банан, виноград, арбуз, клубника).
  3. Никакой (авокадо).

Это задача мультиклассовой классификации с непересекающимися классами: фрукт не может быть одновременно кислым и сладким.

Важно понимать, что эта таблица заполнена экспертом на основе его опыта. Наша цель — научить машину (модель) воспроизводить этот принцип.

Постановка задачи

Нам поступает новый объект — инжир с оценками: сладость — 7, кислость — 3. Наша задача — определить, к какому классу он принадлежит, используя только данные из обучающей выборки.

В этой простой задаче ответ очевиден: инжир — сладкий. Но представьте, что признаков не два, а сотни или тысячи, и они не такие интуитивно понятные (например, параметры движения звезд). В таких случаях эксперт может классифицировать объекты, опираясь на сложные, неочевидные закономерности, которые он сам не может формализовать. Задача алгоритма машинного обучения — выявить эти скрытые принципы из данных и автоматически классифицировать новые объекты.

Принцип работы алгоритма k-NN

В основе алгоритма лежит понятие расстояния между объектами. Мы предполагаем, что похожие объекты (находящиеся близко друг к другу в пространстве признаков) принадлежат к одному классу.

Функцию расстояния задает разработчик. В нашем случае, так как признаки числовые, мы будем использовать евклидово расстояние. Оно вычисляется по теореме Пифагора: корень из суммы квадратов разностей соответствующих координат.

Формула для двух признаков:
Расстояние = √((x1новый – x1известный)² + (x2новый – x2известный)²)

Шаги алгоритма

  1. Расчет расстояний: Вычисляем евклидово расстояние от нового объекта (инжира) до каждого объекта из обучающей выборки.
  2. Сортировка: Сортируем все объекты по возрастанию расстояния до нашего нового объекта.
  3. Выбор соседей: Отбираем k первых (самых близких) объектов из отсортированного списка.
  4. Голосование: Смотрим, какой класс встречается чаще всего среди этих k соседей. Этот класс и присваивается новому объекту.

Демонстрация в Excel

  1. В таблицу добавляется столбец «Расстояние».
  2. В первую ячейку вводится формула для расчета расстояния от инжира до лимона. Координаты (оценки) инжира фиксируются с помощью клавиши F4 (абсолютная ссылка), чтобы они не менялись при растягивании формулы.
  3. Формула растягивается на все остальные фрукты. Теперь для каждого фрукта рассчитано его расстояние до инжира.
  4. Таблица сортируется по столбцу «Расстояние» по возрастанию (с помощью фильтра).
  5. Смотрим на первых k объектов. Возьмем k=4. Четыре ближайших соседа инжира — это сладкие фрукты. Все они принадлежат к классу «сладкий».

Вывод: так как все 4 ближайших соседа — сладкие, мы классифицируем инжир как сладкий.

Выбор параметра k

Параметр k (количество соседей) мы выбираем сами. При k=4 результат однозначен. Если взять k=5, то, возможно, среди соседей окажется один кислый фрукт, и уверенность снизится.

Значение k должно быть осмысленным:

В нашем случае k=4 — разумный выбор.

Применение алгоритма

Алгоритм k-NN, несмотря на свою простоту, очень эффективен для многих задач мультиклассовой классификации. Принцип, лежащий в его основе — «похожие объекты относятся к одному классу» — естественен и понятен. Этот же алгоритм без изменений можно применять к гораздо более сложным задачам с сотнями признаков, где нет очевидных закономерностей и где невозможно использовать простой человеческий опыт для классификации.

Краткие итоги

Практическая значимость рассмотренного метода заключается в его способности решать задачи классификации без необходимости выявления явных правил или законов. Вместо построения сложной аналитической модели алгоритм опирается на фундаментальный принцип подобия: объекты, имеющие схожие характеристики, с высокой вероятностью принадлежат к одной группе. Это делает метод особенно ценным в ситуациях, где взаимосвязи между данными неочевидны, нелинейны или не поддаются простой формализации человеком.

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

Главный практический вызов при использовании этого метода — корректный выбор количества «соседей» (параметра k). Этот параметр напрямую управляет балансом между точностью и устойчивостью классификации. Небольшое значение делает модель чувствительной к локальным особенностям данных и возможному шуму, в то время как слишком большое — приводит к размыванию границ между классами и принятию решений на основе глобального, а не локального сходства. Осознанный выбор этого параметра требует понимания структуры данных и целей конкретной задачи.

Таким образом, рассмотренный алгоритм представляет собой мощный и универсальный инструмент. Его сила — в способности к обучению на основе примеров и масштабировании на задачи высокой размерности, где человеческая интуиция бессильна. Простота реализации и интерпретируемость результата делают его хорошей отправной точкой для решения многих прикладных задач анализа данных.

Постановка задачи

Алгоритм k-ближайших соседей (k-NN) используется для классификации. У нас есть обучающая выборка — таблица с примерами. В примере с фруктами: колонки «Сладость» и «Кислость» — это признаки, а колонка «Тип» — это целевая переменная (класс: «кислый», «сладкий», «никакой»). Это задача мультиклассовой классификации.

Цель — научить машину относить новые объекты (например, инжир с оценками 7 и 3) к одному из классов, основываясь только на данных из таблицы. В простых задачах ответ очевиден, но алгоритм незаменим, когда признаков много (сотни, тысячи), и закономерности неочевидны для человека (например, в научных или технических задачах).

Принцип работы

Алгоритм основан на идее: «похожие объекты принадлежат к одному классу». Мера похожести — это расстояние между объектами. Разработчик выбирает функцию расстояния. В лекции используется евклидово расстояние (теорема Пифагора).

Формула: √((x1новый – x1старый)² + (x2новый – x2старый)²)

Шаги алгоритма

  1. Расчет: Вычислить расстояние от нового объекта до всех объектов в обучающей выборке.
  2. Сортировка: Отсортировать объекты по возрастанию расстояния.
  3. Выбор: Отобрать k первых (самых близких) объектов.
  4. Голосование: Определить, какой класс встречается чаще всего среди этих k соседей. Этот класс и будет ответом.

Пример в Excel

  1. В таблицу добавляется столбец «Расстояние».
  2. Вводится формула евклидова расстояния. Координаты нового объекта (инжира) фиксируются клавишей F4, чтобы не менялись при растягивании.
  3. Формула растягивается на все строки, вычисляя расстояние от инжира до каждого фрукта.
  4. Таблица сортируется по столбцу «Расстояние» от минимального к максимальному.
  5. При k=4, ближайшие соседи — сладкие фрукты. Вывод: инжир относится к классу «сладкий».

Выбор параметра k

Значение k выбирается вручную. Оно должно быть сбалансированным:

Обобщение

k-NN — эффективный и универсальный алгоритм. Он не требует построения явных правил и может применяться к сколь угодно сложным данным с огромным числом признаков. Его принцип («похожие объекты — один класс») естественен и интуитивно понятен, что делает алгоритм мощным инструментом для задач, где человеческий опыт бессилен.

Выводы

  1. Алгоритм k-ближайших соседей (k-NN) решает задачу классификации, относя объект к классу, преобладающему среди его ближайших «соседей» из обучающей выборки.
  2. Для работы алгоритму необходима обучающая выборка с известными признаками и правильными ответами (целевой переменной).
  3. Обучающая выборка может содержать любое количество классов, и в этом случае задача называется мультиклассовой классификацией.
  4. Ключевая идея алгоритма — предположение, что объекты с похожими признаками принадлежат к одному классу.
  5. Степень «похожести» определяется через функцию расстояния, которую выбирает разработчик.
  6. Для числовых признаков часто используется евклидово расстояние, вычисляемое по теореме Пифагора.
  7. Процесс работы включает: расчет расстояний от нового объекта до всех известных, их сортировку по возрастанию и выбор k ближайших.
  8. Класс нового объекта определяется простым «голосованием»: выбирается класс, который чаще всего встречается среди k соседей.
  9. Параметр k (количество соседей) выбирается вручную и должен быть сбалансированным: не слишком большим и не слишком маленьким.
  10. Слишком большое k может привести к захвату объектов из других классов и неверному решению.
  11. Алгоритм k-NN эффективен для задач, где связи между признаками и классом неочевидны или слишком сложны для формализации человеком.
  12. Главное преимущество алгоритма — его универсальность: он может применяться к задачам с огромным количеством признаков без изменения логики.

Вопросы для самопроверки

1. Какую основную задачу решает алгоритм k-ближайших соседей?
2. Что такое обучающая выборка и какую роль она играет в работе алгоритма?
3. Какие два основных типа информации (кроме имени объекта) содержит обучающая выборка в рассмотренном примере?
4. Объясните понятие «целевая переменная» простыми словами.
5. Почему задача, где есть классы «кислый», «сладкий» и «никакой», называется мультиклассовой?
6. На каком фундаментальном предположении основана логика работы алгоритма k-NN?
7. Как рассчитывается евклидово расстояние между двумя объектами с двумя признаками?
8. Перечислите четыре основных шага алгоритма k-NN после получения нового объекта.
9. Как технически можно рассчитать расстояния до всех объектов в Excel, не вводя формулу для каждого вручную?
10. Как влияет на результат классификации увеличение параметра k?
11. Почему нельзя брать слишком маленькое значение k?
12. В чем заключается главное преимущество алгоритма k-NN при переходе к сложным задачам с большим числом признаков?
Вернуться к учебному плану