10 лучших алгоритмов для начинающих машинного обучения

машинное обучение искусственный интеллект алгоритм модульный тест
10 лучших алгоритмов для начинающих машинного обучения

Статья выбрана из TowardsDataScience, автор: Джеймс Ле, составлена ​​сердцем машины.

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

В машинном обучении есть теорема под названием «Бесплатных обедов не бывает». Короче говоря, в нем говорится, что ни один алгоритм не эффективен для всех задач, особенно в обучении с учителем (то есть в прогнозном моделировании).

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

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

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

большой принцип

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


3. Линейный дискриминантный анализ (LDA)

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

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

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

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

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

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


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

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

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


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

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

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


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

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

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

теорема Байеса

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


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

Алгоритм KNN очень прост и эффективен. Модельное представление KNN — это весь обучающий набор данных. Разве это не просто?

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

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

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

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

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


7. Изучение векторного квантования

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

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

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

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


8. Машины опорных векторов (SVM)

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

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

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

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

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


9. Бэггинг и случайные леса

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

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

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

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

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

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

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


10. Повышение и AdaBoost

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

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

AdaBoost

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

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


Суммировать

Столкнувшись с различными алгоритмами машинного обучения, новички часто задаются вопросом: «Какой алгоритм мне следует использовать?» Ответ на этот вопрос зависит от многих факторов, включая: (1) размер, качество и характеристики данных; (2) доступное вычислительное время; (3) срочность задачи; (4) что вы хотите делать с данными.

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