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

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

Почему алгоритм KNN называется ленивым алгоритмом?:

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

Большинство алгоритмов, таких как байесовский, классификация, логистическая регрессия, SVM и т. д., обобщаются на обучающем наборе перед получением тестовых данных. они создают модель на основе данных обучения перед получением тестовых данных, а затем делают прогноз/классификацию. Таким образом, эти алгоритмы называются алгоритмом нетерпеливого. Но в случае Knn он никогда не создает модель. Алгоритм KNN пытается сохранить весь набор данных и дать вам некоторый прогноз.

Непараметрический

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

Значение K в алгоритме KNN:-

K = сколько ближайших точек вы регистрируете

K в KNN — количество ближайших соседей, учитываемых для присвоения метки текущей точке. K является чрезвычайно важным параметром, и выбор значения K является наиболее важной проблемой при работе с алгоритмом KNN. Процесс выбора правильного значения K называется настройкой параметров и имеет большое значение для достижения большей точности. Если значение K слишком мало, существует вероятность переобучения модели, а если оно слишком велико, то алгоритм становится дорогостоящим в вычислительном отношении. Большинство ученых, занимающихся данными, обычно выбирают нечетное значение для K, когда количество классов равно 2. Другая формула, которая хорошо работает для выбора K, это k- sqrt (n), где n — общее количество точек данных.

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

Применение алгоритма KNN: -

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

КАК ПРИНЯТЬ ОПТИМАЛЬНОЕ ЗНАЧЕНИЕ K В KNN?

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

Преимущества использования KNN:

1-Фантастическое применение этого — использование KNN в алгоритмах совместной фильтрации для рекомендательных систем. Это метод, который стоит за экранами рекомендательных систем Amazon.

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

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

4-Этап обучения KNN довольно быстрый, поскольку он включает в себя только сохранение векторов признаков и меток классов обучающих выборок.

5-Гибкие критерии расстояния на выбор при построении модели KNN — евклидово, манхэттенское и расстояние Хэмминга. Каждая из функций расстояния имеет различное назначение в зависимости от типа набора данных. Исходя из характера признаков, можно выбрать наилучший вариант — манхэттенский и евклидов для числовых и Хэмминга для категориальных признаков.

Недостатки использования KNN:

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

2-Эффективность алгоритма очень быстро снижается по мере роста набора данных.

3-Он не может обрабатывать какие-либо пропущенные значения, и вам понадобится полный вектор функций для каждого экземпляра, чтобы вычислить расстояние.

4. Он страдает от асимметричного распределения классов, что означает, что если конкретный класс часто встречается в обучающем наборе, то он, скорее всего, будет доминировать в голосовании большинства в новом примере.

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

ПРИМЕНЕНИЕ KNN В РЕАЛЬНОЙ ЖИЗНИ:

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

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

ЗАКЛЮЧЕНИЕ:

Алгоритм KNN — очень мощная реализация машинного обучения. Мы можем построить наше машинное обучение KNN для прогнозов, используя ,python. У R и python есть очень интересные пакеты для выполнения машинного обучения и статистической работы.

Протестируйте специалиста по анализу данных на алгоритме K-NN

1) алгоритм k-NN выполняет больше вычислений во время тестирования, чем во время обучения.

А) ВЕРНО
Б) НЕВЕРНО

2) Какой из следующих показателей расстояния нельзя использовать в k-NN?

A) Манхэттен
B) Минковски
C) Танимото
D) Ничего из вышеперечисленного

3) Какой из следующих вариантов верен для алгоритма k-NN?

A) Его можно использовать для классификации
B) Его можно использовать для регрессии
C) Его можно использовать как для классификации, так и для регрессии

4) Какое из следующих утверждений верно в отношении алгоритма k-NN?

  1. k-NN работает намного лучше, если все данные имеют одинаковый масштаб
  2. k-NN хорошо работает с небольшим количеством входных переменных (p), но плохо работает, когда количество входных данных очень велико.
  3. k-NN не делает предположений о функциональной форме решаемой задачи

А) 1 и 2
Б) 1 и 3
В) Только 1
Г) Все вышеперечисленное

5) – Какой из следующих алгоритмов машинного обучения можно использовать для вменения пропущенных значений как категориальных, так и непрерывных переменных?

A) K-NN
B) Линейная регрессия
C) Логистическая регрессия