Совместное использование машинного обучения — алгоритм KNN и реализация numpy

машинное обучение

KNN — это непараметрический алгоритм ленивого обучения с учителем.

Непараметрический означает, что модель не делает никаких предположений о базовом распределении данных. Другими словами, структура модели определяется из данных. Ленивый означает отсутствие или очень мало тренировок.

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

Алгоритм KNN очень прост.

Например, для задачи классификации алгоритм выглядит следующим образом:

Выполните следующие действия по очереди для каждой части данных, которые необходимо предсказать:

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

在这里插入图片描述
Следует отметить, что для данных требуется масштабирование функций.Следующие два рисунка иллюстрируют важность хорошего масштабирования.

image
image

Итак, каковы преимущества и недостатки KNN в практическом использовании?

Его преимущества:

  • Может обрабатывать линейные и нелинейные данные
  • Интуитивно понятный
  • с высокой точностью
  • Может использоваться как задача регрессии, так и задача классификации.

Его недостатком является

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

При фактическом использовании могут возникнуть следующие проблемы.

  1. Категория k ближайших соседей связана.Например, в бинарной классификации количество соседей положительного и отрицательного типов одинаково.Использование нечетного числа соседей может решить эту проблему, но не может решить проблему мульти- классификации. В настоящее время вы можете
    • Случайным образом решить, к какой категории принадлежать
    • Отдавайте предпочтение определенным категориям
    • Используйте ближайших соседей для принятия окончательных решений

2. Как обращаться с пропущенными значениями обучающих данных.Если пропущенные значения не обрабатываются, расстояние не может быть рассчитано.Основной принцип обработки пропущенных значений заключается в том, чтобы повлиять на расчет расстояние как можно меньше. Разумным решением является использование обучающих данных для заполнения пропущенных значений.

Наконец, код реализации прилагается, и вы можете просмотреть его после входа в систему.Просмотр исходного кода на компьютере

использованная литература

  1. medium.com/@adi Или о, ты…
  2. Woohoo.YouTube.com/watch?V=DRI…
  3. woohoo.datacamp.com/community/he…
  4. stats.stackExchange.com/questions/2…

—————————————————————————————————————— Mo (веб-сайт: momodel.cn) — это платформа моделирования искусственного интеллекта, поддерживающая Python, которая может помочь вам быстро разрабатывать, обучать и развертывать приложения ИИ.