Каждый день нам приходится принимать множество решений, которые приводят нас к разным результатам. Если мы хотим быть здоровыми, мы могли бы бегать, а не смотреть Netflix. Если мы решим заняться бегом, мы можем бежать в одиночку, а не присоединяться к групповому забегу. Если мы надеемся найти мотивацию для бега в одиночку, это может быть марафон или просто попытка расслабиться. Это ДЕРЕВО РЕШЕНИЙ!

Дерево решений: простая схема принятия решений.

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

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

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

Если мы используем технику «мешков», она называется RANDOM FOREST.

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

Если мы используем технику «усиления», это называется GRADIENT BOOSTING.

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

Усиление градиента: как вы можете догадаться, это просто «алгоритм градиентного спуска + концепция повышения». По сравнению со случайным лесом повышение градиента строится аддитивно, а не независимо.

Экстремальное повышение градиента (XGBoost). Это обновленная версия повышения градиента. XGBoost был представлен двумя студентами UW в 2014 году. Это может быть один из самых популярных алгоритмов глубокого обучения в настоящее время, поскольку он помогает выигрывать бесчисленные соревнования Kaggle, а XGBoost — это открытый исходный код на Github с более чем 500 участниками и 5000 коммитами. Назовем несколько преимуществ XGBoost: полезно для больших наборов данных, регуляризация во избежание переобучения, эффективная обработка отсутствующих данных и т. д.

Приложение

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

Позвольте мне просто объяснить два показателя производительности заранее:

  1. R²: базовый показатель производительности модели. Если R² = 0, это означает отсутствие улучшения по сравнению со средним значением данных; если R² = 1, значит модель идеальна. Мы хотели бы максимально увеличить R².
  2. Среднеквадратическая ошибка (MSE): простая метрика, усредняющая квадрат расстояния между фактическими и прогнозируемыми значениями. Мы хотели бы минимизировать MSE.

Затем мы готовы к графикам каждого алгоритма.

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

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

-

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