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

В этом блоге мы будем в основном освещать контролируемые алгоритмы.

Ограничения алгоритмов параметрического машинного обучения: —

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

Ограничения непараметрических алгоритмов машинного обучения: —

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

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

1. Линейная регрессия (параметрическая)

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Чувствителен к отсутствующим значениям и выбросам, требуется масштабирование функций

Подходит для постоянно распространяемых данных — проблемы регрессии

Предположения?

  1. Отношение между X (независимая переменная) и средним значением Y (зависимая переменная) является линейным
  2. Равная дисперсия остатков, т. е. дисперсия остается одинаковой для любого значения X (гомоскедастичность)
  3. Наблюдения независимы друг от друга (без автокорреляции)
  4. При любом значении X Y имеет нормальное распределение.

Преимущества

Просто реализовать и легко интерпретировать

Идеальный выбор для непрерывных линейно разделимых данных

Есть способы преодоления переобучения (регуляризация и перекрестная проверка)

Недостатки

Склонность к недостаточному оснащению

Чувствителен к выбросам

Слишком много предположений

Склонен к мультиколлинеарности

Подходы к поиску линии наилучшего соответствия

Достигается путем минимизации функции стоимости с помощью OLS (обычный метод наименьших квадратов)

Слагаемое ошибки =y(фактическое)-y(пред) возводится в квадрат для простоты дифференцирования, отсюда и названиенаименьшие квадраты

OLS реализуется с использованием следующего:

  1. Дифференциация (решение закрытой формы): подходит для меньшего количества функций.
  2. Градиентный спуск (итеративное решение): подходит, когда у нас есть огромное количество переменных.

Показатели оценки

MSE

MAE

R-квадрат

Скорректированный R-квадрат

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

Документация Sklearn (гиперпараметры)

класс sklearn.linear_model.LinearRegression(*, fit_intercept=True, normalize=’deprecated’, copy_X=True, n_jobs=None, Positive=False)

2. Логистическая регрессия (параметрическая)

Здесь независимые переменные линейно связаны с логарифмическими шансами (log(p/(1-p))

где p — вероятность события, а 1-p — вероятность его отсутствия

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

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Чувствителен к отсутствующим значениям и выбросам, поэтому требует масштабирования признаков.

Используется в случае задач классификации (двоичной или многочленной)

Служит базовой моделью для любой задачи классификации

Предположения?

  1. Линейная зависимость между независимыми объектами и логарифмическими шансами
  2. Независимость членов ошибок (или остатков)
  3. Отсутствие мультиколлинеарности
  4. Выбросы должны быть обработаны до перехода к этапу моделирования

Преимущества

  1. Очень интуитивно понятный и простой для понимания
  2. Требуется меньше обучения
  3. Хорошая точность для многих простых наборов данных, и он хорошо работает, когда набор данных линейно разделим.
  4. Не делает никаких предположений о распределении классов в пространстве признаков.
  5. Логистическая регрессия менее склонна к избыточной подгонке, но может дать избыточную подгонку в многомерных наборах данных. Можно рассмотреть методы регуляризации (L1 и L2), чтобы избежать чрезмерной подгонки в этих сценариях.
  6. Логистическую регрессию легче реализовать, интерпретировать и очень эффективно обучать.

Недостатки

  1. Иногда перед моделированием требуется много работы по проектированию признаков.
  2. Коррелированные функции резко влияют на его производительность
  3. Часто он склонен к шуму и переоснащению
  4. Если количество наблюдений меньше количества признаков, логистическую регрессию использовать не следует, иначе это можетпривести к переоснащению.
  5. Нелинейные задачи нельзя решить с помощью логистической регрессии, поскольку она имеет линейную поверхность принятия решений. Линейно разделимые данные редко встречаются в реальных сценариях.
  6. С помощью логистической регрессии сложно получить сложные взаимосвязи. Более мощные и компактные алгоритмы, такие как нейронные сети, могут легко превзойти логистическую регрессию.

Показатели оценки

  1. Матрица путаницы
  2. Точность, отзыв, оценка F1
  3. Кривая ROC

Документация Sklearn (гиперпараметры)

class sklearn.linear_model.LogisticRegression(penalty='l2', *, dual=False, tol=0,0001, C=1,0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state =Нет, Solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=Нет, l1_ratio=Нет)

3. Наивный Байес (параметрический)

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Возможность обработки отсутствующих данных

Чрезвычайно чувствителен к выбросам

Особенно полезно для очень больших наборов данных, активно используемых в НЛП (текстовые данные)

Предположения?

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

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

Типы

Преимущества

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

Масштабируемые и более быстрые прогнозы в реальном времени

Идеальный выбор для начала в случае проблем с НЛП

Недостатки

  • Если категориальная переменная имеет категорию (в тестовом наборе данных), которая не наблюдалась в обучающем наборе данных, тогда модель присвоит 0 (нулевую) вероятность и не сможет сделать прогноз . Это часто называют «нулевой частотой». Чтобы решить эту проблему, мы можем использовать технику сглаживания. Один из самых простых методов сглаживания называется оценка по Лапласу.
  • Наивный байесовский метод также известен как плохая/плохая оценка, поэтому нельзя слишком серьезно относиться к выходным данным прогнозирования вероятности.
  • Еще одним ограничением является предположение о независимых предикторах. В реальной жизни практически невозможно получить набор полностью независимых предикторов.

Показатели оценки

Документация Sklearn (гиперпараметры)

Подробный блог о Наивном Байесе

4. КНН (непараметрический)

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

На него отрицательно влияют выбросы и чувствительность к отсутствующим/зашумленным данным

Можно использовать как для регрессии, так и для классификации

Требуется масштабирование функций

Предположения?

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

Модель KNN вычисляет сходство, используя расстояние между двумя точками на графике (сходство признаков)

Эти расстояния можно рассчитать различными способами. Здесьэто статья о том же

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

Преимущества

Простота реализации и понимания.

Намного быстрее в работе.

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

Недостатки

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

Плохо работает с большими размерными данными и огромными наборами данных

Документация Sklearn (гиперпараметры)

КНН Регрессор

Классификатор КНН

классsklearn.neighbors.KNeighborsClassifier(n_neighbors=5, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None)

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

5. Деревья решений (непараметрические)

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

Здесь — подробная статья о работе деревьев решений

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Можно использовать как для задач классификации, так и для регрессии

Устойчив к выбросам и способен обрабатывать отсутствующие значения

Не требует масштабирования функций

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

Предположения?

  1. Вначале вся обучающая выборка считается корневой.

2. Значения признаков предпочтительнее, чтобы они были категориальными.

3. Если значения непрерывны, то перед построением модели они дискретизируются. Записи распределяются рекурсивно на основе значений атрибутов.

Типы

Критерии разделения

Энтропия,
Прирост информации,
Индекс Джини,
Коэффициент усиления,
Снижение дисперсии
Хи-квадрат

Здесь — еще одна отличная статья на ту же тему

Преимущества

  1. Четкая визуализация.Алгоритм интуитивно понятен и прост для интерпретации и визуализации, поскольку эта идея в основном используется в нашей повседневной жизни. Вывод дерева решений может быть легко интерпретирован людьми.
  2. Простой и понятный. Дерево решений выглядит как простые операторы if-else, которые очень легко понять.
  3. Дерево решений может обрабатывать как непрерывные, так и категориальные переменные.
  4. Масштабирование объекта не требуется: так как вместо расчета расстояния используется подход, основанный на правилах.
  5. Эффективно обрабатывает нелинейные параметры: нелинейные параметры не влияют на производительность дерева решений, в отличие от алгоритмов на основе кривых. Таким образом, если существует высокая нелинейность между независимыми переменными, деревья решений могут быть более эффективными по сравнению с другими алгоритмами на основе кривых.
  6. Дерево решений может автоматически обрабатывать отсутствующие значения.
  7. Дерево решений обычно устойчиво к выбросам и может обрабатывать их автоматически.
  8. Меньший период обучения: период обучения меньше по сравнению со случайным лесом, поскольку он создает только одно дерево, в отличие от леса деревьев в случайном лесу.

Недостатки

  1. Склонен к переоснащению. Это основная проблема дерева решений. Обычно это приводит к переоснащению данных, что в конечном итоге приводит к неправильным прогнозам. Чтобы соответствовать данным (даже зашумленным), он продолжает генерировать новые узлы, и в конечном итоге дерево становится слишком сложным для интерпретации. Таким образом, он теряет свои возможности обобщения. Он очень хорошо работает на обученных данных, но начинает делать много ошибок на невидимых данных.
  2. Высокая дисперсия. Как упоминалось в пункте 1, дерево решений обычно приводит к переоснащению данных. Из-за переобучения очень высока вероятность высокой дисперсии выходных данных, что приводит к большому количеству ошибок в окончательной оценке и показывает высокую неточность результатов. Чтобы добиться нулевого смещения (переобучения), это приводит к высокой дисперсии.
  3. Нестабильно. Добавление новой точки данных может привести к перегенерации всего дерева, и все узлы должны быть пересчитаны и созданы заново.
  4. Не подходит для больших наборов данных. Если размер данных велик, одно дерево может стать сложным и привести к переоснащению. Поэтому в этом случае мы должны использовать случайный лес вместо одного дерева решений.

Документация Sklearn (гиперпараметры)

класс sklearn.tree.DecisionTreeClassifier(*, критерий='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None , random_state=Нет, max_leaf_nodes=Нет, min_impurity_decrease=0,0, class_weight=Нет, ccp_alpha=0,0)

Показатели эффективности

Классификация

  1. Матрица путаницы
  2. Точность, отзыв, оценка F1

Регрессия

  1. R2, скорректированный R2
  2. MSE, RMSE, MAE

6. SVM (параметрический)

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

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Устойчив к выбросам

Работает как с регрессией, так и с классификацией

Предположения?

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

Преимущества

Очень надежный и универсальный по своей природе (как для линейных, так и для нелинейных границ решения)

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

Менее склонен к переоснащению

Эффективность использования памяти — использование небольшого оптимального подмножества данных для прогнозирования

Гарантированная оптимальность: решение гарантированно будет глобальным минимумом благодаря природе выпуклой оптимизации

Недостатки

Сложно реализовать и сложно интерпретировать

Придумать подходящее ядро ​​может быть непросто и требует больших вычислительных ресурсов

Не подходит для задач, связанных с НЛП, поскольку требует структурированного представления текста, которое SVM не поддерживает (встраивание слов)

  • Обучение модели относительно просто
  • Модель относительно хорошо масштабируется для многомерных данных
  • SVM — полезная альтернатива нейронным сетям
  • Компромисс между сложностью классификатора и ошибкой можно контролировать явно
  • Это полезно как для линейно-разделимых, так и для нелинейно-разделимых данных
  • Гарантированная оптимальность: решение гарантированно будет глобальным минимумом благодаря природе выпуклой оптимизации

Документация Sklearn (гиперпараметры)

классsklearn.svm.SVC(*, C=1.0, kernel='rbf', степень=3, gamma='scale', coef0=0,0, shrinking=True, вероятность=False, tol=0,001, cache_size=200, class_weight=None, verbose=False , max_iter=- 1, decision_function_shape='ovr', break_ties=False, random_state=нет)

Ансамбли

Типы

Здесь — отличная статья, в которой подробно описаны все три ансамбля.

7. Упаковка

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

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

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

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

Случайный лес является примером бэггинга (где базовым алгоритмом является дерево решений). Однако оба они не совсем одинаковы!

Предположения — нет данных

Преимущества

Решает проблему переобучения

Работает лучше, чем один сильный ученик

Помогает добиться снижения дисперсии, сохраняя при этом низкую погрешность

Недостатки

Трудно интерпретировать (черный ящик)

Может увеличить общую предвзятость в процессе, если уменьшить дисперсию

Показатели оценки

Оценка OOB —вычисляется как количество правильно предсказанных строк из выборок, не входящих в пакет, т. е. выборок, которые не были частью какой-либо модели.

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

Документация Sklearn (гиперпараметры)

Классификатор пакетов

Регрессор бэггинга

8. Случайный лес (непараметрический)

голосование/усреднение ансамбль деревьев решений (параллельное обучение)

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

Обычно выбирают для соревнований Kaggle.

Здесь — подробная статья о том, как это работает

Многонедельные деревья решений дают в целом сильную модель

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Масштабирование объекта не требуется, и на него не влияют отсутствующие значения

Устойчив к выбросам

Может использоваться как классификатор, а также как регрессор

Предположения?

Нет

Преимущества

  1. Не подходитв отличие от деревьев решений
  2. Требуется меньше настроек параметров
  3. Может обрабатывать как непрерывные, так и категориальные переменные.
  4. Способен придавать важность функциям
  5. Масштабирование функций не требуется: внутри используется дерево решений
  6. Подходит для решения любых задач машинного обучения

Недостатки

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

Документация Sklearn (гиперпараметры)

Случайный лесной классификатор

Случайный лесной регрессор

Чем бэггинг отличается от случайных лесов?

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

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

Бэггинг против бустинга

9. Адабуст

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

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

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Adaboost может обрабатывать отсутствующие значения

Чувствителен к выбросам и зашумленным данным

Масштабирование объекта не требуется

Предположения?

Нет

Преимущества

  1. Не подходит
  2. Меньше параметров для настройки
  3. Доказано, что он дает более точные результаты, чем случайный лес/бэггинг.

Недостатки

  1. Необходимы качественные наборы данных (чистые), чтобы работать хорошо, так как на них негативно влияют выбросы.
  2. Менее интерпретируемый — модель черного ящика

Показатели оценки

Классификация

  1. Матрица путаницы
  2. Точность, отзыв, оценка F1
  3. ROC-кривая

Регрессия

  1. R2, скорректированный R2
  2. МСЭ, RMSE, МАЭ

Документация Sklearn (гиперпараметры)

Классификатор Adaboost

Регрессор Adaboost

Вот — замечательная статья на Adaboost

10 i) Gradient Boost (градиентный спуск + повышение)

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

Он реализует повышение с точки зрения численной оптимизации функции ошибки с использованием —

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

Здесь — интуитивное объяснение того же.

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

Еще интересная статья по подробной работе

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Не удается обработать отсутствующие значения

Хорошо справляется с мультиколлинеарностью

Масштабирование объекта не требуется

Устойчив к выбросам

Предположения?

Нет

Преимущества

  1. У него отличная производительность
  2. Может решать сложные нелинейные функции
  3. Может работать практически с любым сценарием машинного обучения

Недостатки

  1. Требуется некоторая настройка параметров

2. Требует больших вычислительных ресурсов и времени

Показатели оценки

Классификация

  1. Матрица путаницы
  2. Точность, отзыв, оценка F1
  3. ROC-кривая

Регрессия

  1. R2, скорректированный R2
  2. МСЭ, RMSE, МАЭ

Документация Sklearn (гиперпараметры)

Классификатор повышения градиента

Градиентный повышающий регрессор

10 ii) XGBoost (Экстремальное повышение градиента)

Как следует из названия, это регуляризованная и расширенная форма Gradient Boosting. Быстрее и эффективнее, чем Gradient Boosting.

Начавшись какисследовательский проект Тяньци Чена,он покорил весь мир машинного обученияздесь — полная история XGB и его эволюция.

Когда использовать (отсутствующие данные/выбросы/характер проблемы)

Не удается обработать отсутствующие значения

Устойчив к выбросам

Масштабирование объекта не требуется

Хорошо подходит как для регрессии, так и для классификации

Предположения?

Никто

Преимущества

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

2. Придает значимость функциям.

3. На него не влияют зашумленные данные/выбросы.

4. Максимально использует доступную память и ОС

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

6. Способность извлекать статистику/шаблоны из отсутствующих данных (если таковые имеются)

Недостатки

  1. Требуется некоторая настройка параметров
  2. Вычислительно дорого и требует много времени
  3. Модель черного ящика — отсутствие интерпретируемости

Показатели оценки

Классификация

  1. Матрица путаницы
  2. Точность, отзыв, оценка F1
  3. ROC-кривая

Регрессия

  1. R2, скорректированный R2
  2. МСЭ, RMSE, МАЭ

Реализация Sklearn (гиперпараметры) — Kaggle

Здесьотличный блог на XGBoost

Последние мысли

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

Теперь, когда дело доходит до науки о данных, у нас есть важная теорема — НЕТ БЕСПЛАТНЫХ ОБЕДОВ, которая гласит, что не существует одной модели, которая лучше всего работала бы для каждой конкретной ситуации.

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

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

Здесь потрясающая статья о том же

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

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

До тех пор..

Удачного надзора :)