Введение в алгоритмы машинного обучения

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

Категории алгоритмов машинного обучения

Область алгоритмов машинного обучения можно разделить на:

  • Контролируемое обучение - В контролируемом обучении набор данных помечен, т. Е. Для каждой функции или независимой переменной есть соответствующие целевые данные, которые мы будем использовать для обучения модели.
  • Обучение под наблюдением - В отличие от обучения под наблюдением, в этом случае набор данных не помечается. Таким образом, метод кластеризации используется для группировки данных на основе их сходства между точками данных в одной группе.
  • Укрепление обучения - особый тип машинного обучения, где модель учится на каждом предпринятом действии. Модель вознаграждается за любое правильное решение и наказывается за любое неправильное решение, которое позволяет ей изучать шаблоны и принимать более точные решения на неизвестных данных.

Отдел алгоритмов машинного обучения

Проблемы в алгоритмах машинного обучения можно разделить на:

  • Регрессия - существует постоянная связь между зависимой и независимой переменными. Целевая переменная имеет числовой характер, в то время как независимые переменные могут быть числовыми или категориальными.
  • Классификация . Наиболее распространенная формулировка проблемы, которую вы найдете в реальном мире, - это классификация точки данных в некоторый двоичный, многочленный или порядковый класс. В задаче двоичной классификации целевая переменная имеет только два результата (Да / Нет, 0/1, Истина / Ложь). В задаче о полиномиальной классификации в целевой переменной есть несколько классов (Apple / Orange / Mango и т. Д.). В задаче Порядковой классификации упорядочена целевая переменная (например, класс учащихся).

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

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

Алгоритмы

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

Ниже приведены некоторые алгоритмы машинного обучения, а также примеры фрагментов кода на python.

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

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

y = a * x + b + e, где y - целевая переменная, которую мы пытаемся предсказать, a - перехват, b - наклон, x - наша зависимая переменная, используемая для прогнозирования. Это простая линейная регрессия, поскольку существует только одна независимая переменная. В случае множественной линейной регрессии уравнение было бы

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Здесь e - член ошибки, a1, a2 .. a (n) - коэффициент независимых переменных.

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

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

Линейная регрессия может быть написана на Python, как показано ниже:

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

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

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

Метрикой, используемой для оценки проблемы классификации, обычно является точность или кривая ROC. Чем больше площадь под РПЦ, тем лучше модель. Случайный граф будет иметь AUC 0, 5. Значение 1 указывает на наибольшую точность, а 0 указывает наименьшую точность.

Логистическая регрессия может быть записана в процессе обучения как -


3. K-Ближайшие соседи

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

Я узнал, что KNN написано как -


KNN используется для создания рекомендательного механизма.

4. Машины опорных векторов

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

Как видите, одна строка разделяет два класса. Однако в большинстве случаев данные не будут такими совершенными, и простая гиперплоскость не сможет разделить классы. Следовательно, вам нужно настроить такие параметры, как Regularization, Kernel, Gamma и так далее.

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

В sklearn SVM записывается как -


5. Наивный байесовский

Он работает по принципу теоремы Байеса, который определяет вероятность события с учетом некоторых истинных условий. Теорема Байеса представлена ​​в виде -

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

Наивный байесовский код в Python -

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

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

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

В sklearn деревья решений кодируются как -



7. Случайный лес

Чтобы уменьшить переоснащение в Дереве Решений, необходимо уменьшить дисперсию модели, и, таким образом, появилась концепция упаковки в пакеты. Упаковка в мешки - это метод, при котором выходные данные нескольких классификаторов используются для формирования конечного результата. Случайный лес - один из таких методов создания пакетов, когда набор данных выбирается из нескольких наборов данных, и объекты выбираются случайным образом для каждого набора. Затем для каждой выборки данных применяется алгоритм дерева решений для получения выходных данных из каждого режима. В случае проблемы регрессии берется среднее значение выходных данных всех моделей, тогда как в случае проблемы классификации считается, что класс, который получает максимальное количество голосов, классифицирует точку данных. Случайный лес не подвержен влиянию выбросов, отсутствующих значений в данных, а также помогает уменьшить размерность. Тем не менее, это не объяснимо, что недостаток для случайного леса. В Python вы можете кодировать случайный лес как -


8. K-означает кластеризацию

До сих пор мы работали с контролируемыми проблемами обучения, где для каждого входа есть соответствующий выход. Теперь мы узнаем о неконтролируемом обучении, когда данные немаркированы и должны быть сгруппированы в определенные группы. Есть несколько методов кластеризации. Однако наиболее распространенным из них является кластеризация K-средних. Ink-означает, k относится к числу кластеров, которые должны быть установлены до поддержания максимальной дисперсии в наборе данных. Как только k установлено, центроиды инициализируются. Центроиды затем настраиваются многократно, так что расстояние между точками данных внутри центроида является максимальным, а расстояние между двумя отдельными - максимальным. Евклидово расстояние, манхэттенское расстояние и т. Д. - это некоторые из формул расстояния, используемых для этой цели.

Значение k может быть найдено из метода локтя.

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


Вывод: алгоритмы машинного обучения

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

Рекомендуемые статьи

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

  1. Методы машинного обучения
  2. Что такое глубокое обучение
  3. Data Scientist vs Machine Learning
  4. Контролируемое обучение против неконтролируемого обучения
  5. Гиперпараметр машинного обучения
  6. Что такое обучение усилению?
  7. Наиболее используемые техники ансамблевого обучения
  8. Полное руководство по примерам алгоритма C ++
  9. Руководство по этапам жизненного цикла машинного обучения