Моделирование ансамбля: развертывание базового точного жадного алгоритма

~ ИИ и машинное обучение поднимут планку во всем. Те, кто сейчас не обращает на это внимания, отстают~ Участник дискуссии

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

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

Знакомство с ансамблевыми моделями

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

  1. Бэггинг: Контролирует дисперсию, создавая параллельные независимые деревья решений. Он отбирает данные с заменой при обучении базовых учеников. Таким образом, деревья многократно подходят к бутстрапированным подмножествам наблюдений. Окончательный прогноз — это средний результат (регрессия) или большинство голосов (классификация) базовых учащихся. Например, RandomForests.
  2. Повышение: контролирует смещение путем построения последовательных деревьев, чтобы уменьшить ошибку предыдущего дерева. При повышении роста конкретного дерева учитываются другие деревья, которые уже были выращены, и эти деревья представляют собой аддитивные модели, которые подгоняются к остаткам предыдущей модели. Аддитивные модели добавляются к исходной модели перед ними, и процесс продолжается до тех пор, пока модель не сойдется (достигнет оптимального решения или наименьшего балла, такого как среднеквадратическая ошибка). Например, повышение градиента и усиление градиента Xtreme (XBoost).
  3. Наложение: использует прогнозы разных моделей в качестве новых функций в новой модели.

В этой статье я расскажу об очень простой структуре, чтобы понять, как на самом деле работает повышение с использованием точного жадного алгоритма. Тем не менее, введение градиентного спуска (подъема) сделало бустинговые модели очень сложными с n-мерными данными. Таким образом, понимание основ любой техники необходимо, прежде чем использовать продвинутые алгоритмы, построенные на их основе. Никакая модель не должна использоваться, если практикующий врач не может знать основы, лежащие в ее основе. Следовательно, понимание того, как работает жадный алгоритм, необходимо, прежде чем переходить к модели повышения градиента или масштабируемым системам обучения, таким как известный XBoost.

Усреднение является первой и базовой моделью!

Точный жадный алгоритм

Первая модель

Прежде чем объяснять механику точного жадного алгоритма, давайте взглянем на очень важную модель, называемую усреднением!

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

Дифференциация целевой функции SE с целью ее минимизации привела бы нас к выводу, что ожидаемое значение Y (альфа) на самом деле является средним значением всех истинных Y. Таким образом, среднее является первой известной моделью, пока не была введена оптимизация вычислительных алгоритмов, и модели не стали сложными.

Теперь мы перейдем к точному жадному алгоритму, коснувшись усреднения, которое является первой моделью. Усреднение будет снова и снова использоваться в жадном алгоритме для поиска наилучшего разделения, которое минимизирует сумму квадратов ошибок на каждой итерации. Я продемонстрирую алгоритм с помощью Excel, чтобы понять, как он работает, поскольку модели повышения scikit-learn уже поддерживают этот алгоритм, и довольно просто построить модель повышения в python.

Алгоритм

Алгоритм не зря называется жадным! Жадный алгоритм — это один из многих методов обучения дереву, позволяющий найти наилучшее разделение между переменными и внутри каждой переменной. Процесс выполняется путем перечисления всех возможных расщеплений в каждой переменной. Наилучшее разделение выбирается в соответствии с используемой функцией потерь (градиентный спуск, квадрат ошибки, абсолютная ошибка…) относительно оптимального решения. Оптимальным решением будет оптимальный градиент для функции потерь градиента и минимальная сумма квадратов ошибок для функции стоимости квадратов ошибок соответственно. Сначала алгоритм сортирует непрерывный признак (переменную) в порядке возрастания, а затем находит разделенную статистику между каждыми двумя строками этой переменной. Если переменная имеет n строк, алгоритм перечисляет n-1 разбиений. И если данные имеют m признаков, то у нас есть (n-1)*m расщеплений.

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

  1. Инициализируйте базовую модель, взяв среднее значение переменной Y, если MSE является функцией потерь. Если используется MAE (средняя абсолютная ошибка), то исходная модель будет медианой столбца Y.
  2. Вычислите остатки (Y — исходные прогнозы модели)
  3. Жадный алгоритм запускается для вычисления первой аддитивной модели, находя наилучшее разделение переменных, которое дает наименьшую SSE. Это конкретное разделение в функции X используется для расчета среднего значения остатков до разделения и после него.
  4. Аддитивная модель добавляется (подгоняется) к остаткам для каждой строки, чтобы получить новую функцию, которая имеет более низкую СКО по сравнению с исходной функцией.
  5. Процесс продолжается, когда несколько других аддитивных моделей подгоняются, чтобы получить более новую модель, пока функция потерь не сходится, когда доза MSE больше не изменяется значительно.

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

Приложение повышения жадного алгоритма

Вычисляются остатки F1 (Y — F1). На них устанавливается новая аддитивная модель.

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

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

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

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

Вывод

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

Не стесняйтесь обращаться ко мне в LinkedIn, если вам нужна таблица Excel!