Обзор 20 моделей машинного обучения от линейной регрессии до XGBoost и кластеризации DBSCAN до PCA

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

Охваченные модели

1.  Linear Regression
2.  Polynomial Regression
3.  Ridge Regression
4.  Lasso Regression
5.  Elastic Regression
6.  Logistic Regression
7.  K Nearest-Neighbors
8.  Naive Bayes
9.  Support Vector Machines
10. Decision Trees
11. Random Forest
12. Extra Trees
13. Gradient Boost
14. Ada Boost
15. XGBoost
16. K Means Clustering
17. Hierarchical Clustering
18. DBSCAN Clustering
19. Apriori 
20. PCA

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

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

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

Лассо-регрессия (L1)

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

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

Регрессия хребта (L2)

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

Регуляризацию L2 лучше всего использовать, когда наши данные страдают от мультиколлинеарности (независимые переменные сильно коррелированы), потому что она уменьшает все коэффициенты до нуля.

Эластичная чистая регрессия

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

Это позволяет сбалансировать оба штрафа, что приводит к более эффективной модели по сравнению с использованием только l1 или l2.

Полиномиальная регрессия

Он моделирует взаимосвязь между зависимой и независимой переменными как полином степени nᵗʰ. Полиномы представляют собой сумму членов в виде k.xⁿ,где n – целое неотрицательное число, k — константа, а x — независимая переменная. Он используется для нелинейных данных.

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

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

K-ближайшие соседи (KNN)

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

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

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

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

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

Наивный байесовский метод классификации основан на теореме Байеса. Он в основном используется для классификации текста.

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

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

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

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

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

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

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

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

Он начинается с выбора атрибута в качестве корневого узла с использованием меры выбора атрибута (ID3 или CART), а затем рекурсивного сравнения оставшихся атрибутов с их родительским узлом для создания дочерних узлов, пока дерево не достигнет конечных узлов.

CART (GINI)
1. Probability Table
2. Calculate the Gini Index for Attribute Values Like Overcast, Sunny, Rain
1 - (P/P+N)² -(N/P+N)²
3. Calculate Gini Index for Attribute Eg: Outlook
len(sunny) / len(y) *gini(sunny) + ....
ID3 (INFORMATION GAIN & ENTROPY)
1. Calculate IG For y
IG(Attr) = -[P/P+N] * log[p/P+N] - [N/P+N * log[N/P+N]
2. Calculate Entropy for each value of different attributes in by like outlook - overcase,rain,sunny
entropy(Attr=Value) = -[P/P+N] * log[p/P+N] - [N/P+N * log[N/P+N]
3. Calculte Gain For Attribute Like outlook
Gain(Outlook) = len(sunny) / len(y) *entropy(sunny) + ....
4. Calculate Total Information Gain
IG(y) - Gain(Attribute)
IG(Outcome) - Gain(Outlook)

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

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

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

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

Дополнительные деревья

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

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

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

Повышение АДА

ADA Boost — это алгоритм повышения, похожий на случайный лес с некоторыми существенными отличиями:

  1. Вместо того, чтобы строить лес деревьев решений, ADA Boost создает лес пней решений. (пень - это дерево решений только с одним узлом и двумя листьями)
  2. Каждому пню решения присваивается разный вес при принятии окончательного решения.
  3. Он присваивает более высокие веса точкам данных, которые неправильно классифицированы, чтобы им придавалось большее значение при построении следующей модели.
  4. Это помогает объединить несколько «слабых классификаторов» в один сильный классификатор.

Повышение градиента

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

Gradient Boosting похож на ADA Boost, разница между ними заключается в том, что ADA Boosts строит пни решений, тогда как Gradient Boosting строит деревья решений с несколькими листьями.

Gradient Boosting начинается с построения базового дерева решений и получения начальных прогнозов, как правило, среднего значения. Затем создается новое дерево решений с начальными признаками и остаточной ошибкой в ​​качестве зависимых переменных. Прогноз для нового дерева решений делается путем принятия начального прогноза модели + остаточной ошибки для скорости обучения за шаг выборки, и процесс повторяется до тех пор, пока мы не достигнем минимальной ошибки.

XGBoost

XGBoost – это более регуляризованная форма повышения градиента. Он использует расширенную регуляризацию (L1 и L2) для улучшения возможностей обобщения модели.

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

Кластеризация K-средних

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

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

1. Define K and Create K Clusters
2. Calculate Euclidean Distance of each data point from K Centroid
3. Assing CLosest Data Point to Centroid and Create a CLuster
4. Recalculate Centroid By Taking mean

Иерархическая кластеризация

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

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

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

Кластеризация DBSCAN

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

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

Априорный алгоритм

Априорный алгоритм — это алгоритм анализа правил ассоциации, который сопоставляет элементы данных вместе на основе их зависимости друг от друга.

Существует несколько ключевых шагов для создания правила ассоциации с использованием априорного алгоритма:
1. Определить поддержку для каждого набора элементов размера 1, где поддержка — это частота элементов в наборе данных.
2. Подвергнуть все набор элементов ниже минимального порога поддержки (определяется пользователем)
3. Создайте набор элементов размера n+1 (n — предыдущий размер набора элементов) и повторяйте шаги 1 и 2, пока поддержка всех наборов элементов не превысит пороговое значение. .
4. Сгенерируйте правила, используя достоверность (как часто x и y встречаются вместе, когда x уже задано)

Анализ основных компонентов

PCA — это метод уменьшения линейной размерности, который преобразует набор коррелированных признаков в меньшее (k‹p) число некоррелированных признаков, называемых главными компонентами.

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

Спасибо за чтение до сих пор, если вам нравится мой контент и вы хотите поддержать меня -

Подпишитесь на меня Mediumи моюпотрясающую публикациюдля разработчиков Python и искусственного интеллекта Энтузиасты.

Связаться со мной вLinkedIn.

Стать участником Medium с помощьюМоя реферальная ссылка. небольшая часть вашего членского взноса пойдет мне.

Присоединитесь кМоему списку адресов электронной почты, чтобы не пропустить еще одну мою статью.
Подписание — Абхай Парашар🧑‍💻

Некоторые отобранные статьи для вас, чтобы прочитать дальше

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу