Часть 1 из серии статей по вводным алгоритмам машинного обучения

Вступление

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

Что такое KNN? KNN - это модель, которая классифицирует точки данных на основе точек, наиболее похожих на нее. Он использует тестовые данные, чтобы сделать «обоснованное предположение» о том, как следует классифицировать неклассифицированную точку.

Плюсы:

  • Легко использовать.
  • Быстрый расчет времени.
  • Не делает предположений относительно данных.

Минусы:

  • Точность зависит от качества данных.
  • Необходимо найти оптимальное значение k (количество ближайших соседей).
  • Плохо классифицирует точки данных на границе, где их можно так или иначе классифицировать.

KNN - это алгоритм, который считается как непараметрическим, так и примером ленивого обучения. Что именно означают эти два термина?

  • Непараметрический означает, что он не делает никаких предположений. Модель полностью состоит из предоставленных ей данных, а не предполагает, что ее структура является нормальной.
  • Ленивое обучение означает, что алгоритм не делает обобщений. Это означает, что использование этого метода требует небольшого обучения. Из-за этого все данные обучения также используются при тестировании при использовании KNN.

Где использовать KNN

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

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

На изображении выше показано, как работает KNN при попытке классифицировать точку данных на основе заданного набора данных. Он сравнивается с ближайшими к нему точками и классифицируется в зависимости от того, на какие точки он наиболее близок и наиболее похож. Здесь вы можете видеть, что точка Xj будет классифицироваться как W1 (красная) или W3 (зеленая) в зависимости от ее расстояния от каждой группы точек.

Математика, лежащая в основе KNN

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

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

Чтобы наглядно представить эту формулу, она будет выглядеть примерно так:

Заключение

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

Собираясь начать использовать этот алгоритм, имейте в виду следующие три момента:

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

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

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

Для получения дополнительных ресурсов ознакомьтесь с некоторыми проектами с использованием k-ближайших соседей:

Связанный:

СООБЩЕНИЕ О РАСКРЫТИИ ИНФОРМАЦИИ: © 2019 Capital One. Мнения принадлежат отдельному автору. Если в этом посте не указано иное, Capital One не является аффилированным лицом и не поддерживается ни одной из упомянутых компаний. Все используемые или отображаемые товарные знаки и другая интеллектуальная собственность являются собственностью соответствующих владельцев.