Галантерея | Мобильное машинное обучение, начиная с понимания этих десяти классических алгоритмов

машинное обучение искусственный интеллект алгоритм Bootstrap
Перевод | Базовый лагерь технологий искусственного интеллекта (rgznai100)
Участвовать | Линь Чунсюань
Монтажер | Бобо, Донна

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

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

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

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

▌Важные принципы

При этом все алгоритмы контролируемого машинного обучения для прогнозного моделирования имеют общий принцип:

Суть алгоритма машинного обучения состоит в том, чтобы найти целевую функцию (f), которая наилучшим образом отображает входные переменные (X) в выходные переменные (Y): Y = f(X)

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

Наиболее распространенный тип машинного обучения — найти наилучшее отображение Y = f(X) и использовать его для прогнозирования значения Y для нового X. Этот процесс называется прогностическим моделированием или прогностической аналитикой, и его целью является получение максимально точных прогнозов.

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

▌ 1- Линейная регрессия

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

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

Линейная регрессия представляет собой уравнение, которое описывает прямую линию и находит наиболее подходящее отношение отображения между входной переменной (x) и выходной переменной (y) через определенный весовой коэффициент (B) входной переменной.

Линейная регрессия

Например: у = В0 + В1 * х

Учитывая ввод x, мы можем предсказать значение y. Целью алгоритма обучения линейной регрессии является нахождение значений коэффициентов B0 и B1.

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

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

▌ 2 - Логистическая регрессия

Логистическая регрессия — еще один метод, который машинное обучение позаимствовало из статистики для решения задач бинарной классификации (задач с двумя значениями класса).

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

График функции для логистической регрессии выглядит как большая сигмоида и преобразует любое значение в интервал от 0 до 1. Эта форма очень полезна, потому что мы можем использовать правило для преобразования значений логистической функции в 0 и 1 (например, если значение функции меньше 0,5, выведите 1), чтобы предсказать класс.

логистическая регрессия

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

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

▌ 3 - Линейный дискриминантный анализ

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

Выражение для линейного дискриминантного анализа очень простое. Он состоит из статистических свойств данных и вычисляет значение свойства для каждой категории. Для одной входной переменной она включает:

  • Среднее значение для каждой категории.

  • Дисперсия для всех категорий.

Линейный дискриминантный анализ

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

▌ 4 - Деревья классификации и регрессии

Деревья решений — важный алгоритм машинного обучения для прогнозного моделирования.

Представление модели дерева решений — это бинарное дерево, то есть бинарное дерево с точки зрения алгоритмов и структур данных, ничего особенного. Каждый узел в дереве представляет входную переменную (x) и точку разделения, основанную на этой переменной (при условии, что эта переменная является числом).

Древо решений

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

Алгоритмы дерева решений быстро обучаются и быстро делают прогнозы. Деревья решений могут делать точные прогнозы для широкого круга проблем без какой-либо специальной предварительной обработки данных.

▌ 5 - Наивный Байес

Наивный Байес — это простой, но мощный алгоритм прогнозного моделирования.

Модель состоит из двух видов вероятностей, обе из которых могут быть вычислены непосредственно из обучающих данных: 1) вероятность каждого класса; 2) условная вероятность каждого класса для заданного значения x. После расчета вероятностную модель можно использовать для прогнозирования новых данных с использованием теоремы Байеса. Когда ваши данные являются действительными, обычно предполагается распределение Гаусса (гауссовая кривая), чтобы вы могли легко вычислить вероятности для этих данных.

Наивный Байес

Наивный Байес предполагает, что каждая входная переменная независима, поэтому он называется «наивным». Это сильное предположение и несколько нереалистичное для реальных данных, но метод очень хорошо работает для широкого круга сложных задач.

▌ 6 - Алгоритм K-ближайшего соседа

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

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

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

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

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

▌ 7 - Обучение векторному квантованию

Одним из недостатков алгоритма K-ближайших соседей является необходимость использования всего обучающего набора данных. И, будучи искусственной нейронной сетью, Learning Vector Quantization (сокращенно LVQ) позволяет вам выбрать количество обучающих экземпляров и точно узнать, какие функции должны быть у этих экземпляров.

обучение векторному квантованию

Алгоритм квантования обучающего вектора представляет собой набор векторов кодовой книги. Эти векторы выбираются случайным образом при инициализации и оптимизируются в течение нескольких итераций алгоритма обучения до набора, который лучше всего обобщается на обучающий набор данных. После завершения обучения вектор кодовой книги можно предсказать, как алгоритм K-ближайших соседей. Найдите наиболее похожего соседа (наиболее подходящий вектор кодовой книги), вычислив расстояние между каждым вектором кодовой книги и новым экземпляром данных, а затем верните значение класса наилучшей соответствующей единицы или (фактическое значение в случае регрессии) как прогноз. Наилучшие результаты прогнозирования получаются, если данные могут быть перемасштабированы так, чтобы они находились в одном и том же интервале (например, между 0 и 1).

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

▌ 8 - Машины опорных векторов

Методы опорных векторов, вероятно, являются одним из самых популярных и широко обсуждаемых алгоритмов машинного обучения.

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

Опорные векторные машины

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

Метод опорных векторов, вероятно, является одним из самых мощных готовых классификаторов, и его стоит попробовать.

▌ 9 - алгоритм бэггинга и случайный лес

Random Forest — один из самых популярных и мощных алгоритмов машинного обучения. Это ансамблевый алгоритм машинного обучения, известный как Bootstrap Aggregation или Bagging.

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

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

случайный лес

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

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

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

▌ 10 - Алгоритмы повышения и AdaBoost

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

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

Обычно алгоритмы AdaBoost работают с деревьями решений. После создания первого дерева решений производительность дерева решений для каждого экземпляра обучения используется для измерения степени внимания, которое следующее дерево решений должно уделять этому экземпляру. Данные обучения, которые трудно предсказать, имеют больший вес, а данные, которые легко предсказать, — меньший. Модели создаются последовательно, и каждое обновление весов обучающих экземпляров влияет на эффективность обучения следующего дерева решений в последовательности. После того, как все деревья решений завершены, можно делать прогнозы на основе новых входных данных, и производительность каждого дерева решений будет определяться его точностью на обучающих данных.

Поскольку внимание модели сосредоточено на исправлении ошибок предыдущего алгоритма, она должна гарантировать чистоту данных и отсутствие аномалий.

▌ Окончательное предложение

Новички часто перегружены головокружительным набором алгоритмов машинного обучения, задавая вопросы вроде «Какой алгоритм мне следует использовать?»

Ответ на этот вопрос зависит от многих факторов, в том числе:

(1) размер, качество и характер данных;

(2) доступное вычислительное время;

(3) срочность задачи;

(4) Что вы хотите сделать с данными.

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

Автор | Джеймс Ле

Оригинальная ссылка |к data science.com/ah-put-of-he…