Концептуальное обучение [1]

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

Контролируемое обучение [2]

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

Цель: найти функцию h: XY, которая аппроксимирует f: XY как можно лучше. ( Дискретный f(x): классификация, непрерывный f(x): регрессия)

Геометрический вид [3]

От данных к векторам объектов

  • Реальные функции копируются напрямую.
  • Бинарные признаки становятся равными 0 (ложь) или 1 (истина).
  • Категориальные функции с Vвозможными значениями сопоставляются с V — многими функциями бинарных индикаторов.

После этого сопоставления вы можете думать об одном примере как о векторе в многомерном пространстве признаков. Если у вас есть D-множество признаков (после расширения категориальных признаков), то этот вектор признаков будет иметь компоненты D-множества. Мы будем обозначать векторы признаков как
x= ⟨x1,x2,…,xD⟩, так что xdобозначает значение d-го признака x. Поскольку это векторы с вещественными компонентами в D-размерностях, мы говорим, что они принадлежат пространству RD.

Для D= 2 наши векторы признаков — это просто точки на плоскости, как на рис. 3.1. Для D= 3 это трехмерное пространство. Для D› 3 визуализировать становится довольно сложно.

Метрики расстояния [2][3]

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

Классификатор ближайших соседей [2][3]

Как только мы подумаем о наборе данных как о наборе точек в многомерном пространстве, мы можем начать выполнять геометрические операции с этими данными. Например, предположим, что вам нужно предсказать, понравятся ли Алисе алгоритмы. Возможно, мы можем попытаться найти другого ученика, наиболее «похожего» на Алису в плане любимых курсов. Скажем, этот студент Джереми. Если Джереми нравились Алгоритмы, то можно предположить, что и Алисе тоже. Это пример модели обучения ближайший сосед. [3]

Алгоритм классификатора ближайших соседей

Во время обучения мы просто сохраняем весь тренировочный набор O (1). Во время тестирования мы получаем тестовый пример xˆ. Чтобы предсказать его метку, мы находим обучающий пример x, который наиболее похож на xˆ O(n) . В частности, мы находим обучающий пример x, который минимизирует d(x, xˆ ). Поскольку xявляется обучающим примером, у него есть соответствующая метка y. Мы прогнозируем, что метка xˆ также будет y.

Плохо, когда O(n) предсказывает время. Мы хотим, чтобы классификаторы быстро предсказывали; медленно для обучения подходит.

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

Решение этой проблемы состоит в том, чтобы при принятии решения о классификации учитывать не только одного ближайшего соседа. Мы можем рассмотреть K-ближайших соседей и позволить им проголосовать за правильный класс для этой контрольной точки.

к-ближайший сосед

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

Большой вопрос, конечно, в том, как выбрать K. Как мы видели, при K= 1 мы рискуем получить переобучение. С другой стороны, если
K велико (например, K= N), KNN-Predict всегда будет прогнозировать класс большинства. Ясно, что это недоработка. Таким образом, K – это гиперпараметр алгоритма KNN, который позволяет нам найти компромисс между переоснащением (малое значение K) и недостаточным соответствием (большое значение K).

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

Связанной с KNN проблемой является масштаб функций. Предположим, что мы пытаемся классифицировать, является ли некоторый объект лыжами или сноубордом. Нам даны две характеристики этих данных: ширина и высота. Как принято в лыжах, ширина измеряется в миллиметрах, а высота в сантиметрах. Поскольку значения ширины теперь крошечные по сравнению со значениями высоты, классификатор KNN будет фактически игнорировать значения ширины и классифицировать почти исключительно на основе высоты. Прогнозируемый класс для отображаемой контрольной точки изменился из-за масштабирования этой функции.

Взвешенный k-ближайший сосед

Во взвешенной kNN ближайшим k точкам присваивается вес с помощью функции, называемой функцией ядра. Интуиция, лежащая в основе взвешенного kNN, заключается в том, чтобы придать больший вес точкам, которые находятся поблизости, и меньший вес точкам, которые находятся дальше. [4]

Взвешенный K-NN для регрессии

Рекомендации

[1] https://en.wikipedia.org/wiki/Concept_learning

[2] В основном адаптировано из https://web.cs.hacettepe.edu.tr/~erkut/ain311.f22/slides/l2-knn.pdf

[3] В основном адаптировано из http://ciml.info/dl/v0_99/ciml-v0_99-ch03.pdf

[4] https://www.geeksforgeeks.org/weighted-k-nn/