Теория бустинга

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

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

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

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

  • Подмножество создается из исходного набора данных.
  • Изначально всем точкам данных присваивается одинаковый вес.
  • В этом подмножестве создается базовая модель.
  • Эта модель используется для прогнозирования всего набора данных.
  • Ошибки рассчитываются с использованием фактических значений и прогнозируемых значений.
  • Больший вес придается неверно предсказанным наблюдениям.
  • Создается другая модель, и для набора данных делаются прогнозы. (Эта модель пытается исправить ошибки предыдущей модели.)
  • Точно так же создается несколько моделей, каждая из которых исправляет ошибки предыдущей модели.
  • Последняя модель (сильный ученик) представляет собой средневзвешенное значение всех моделей.

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

Теория AdaBoost (адаптивного повышения)

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

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

Шаги для выполнения алгоритма AdaBoost приведены ниже:

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

Теория повышения градиента

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

Некоторые важные отличия Gradient Boosting:

  • Все начинается с листа, а не с пня,
  • Вы можете создавать более крупные деревья, чем Adaboost,
  • Слабые учащиеся имеют одинаковую скорость обучения,
  • Обучение последовательному обучению основано на остатках предыдущей модели.

Меньшая скорость обучения (то есть диапазон от 0 до 1) в Gradient Boosting потребует больше вычислительного времени для обучения, потому что каждое последовательное дерево не может внести большой вклад, требуя больше деревьев.

Теория XGBoost

XGBoost (extreme Gradient Boost) — это расширенная реализация алгоритма повышения градиента. XGBoost оказался чрезвычайно эффективным алгоритмом машинного обучения, широко используемым в соревнованиях по машинному обучению. XGBoost обладает высокой прогностической силой и работает почти в 10 раз быстрее, чем другие методы повышения градиента. Он также включает в себя различные корректировки, которые уменьшают переоснащение и улучшают общую производительность. По этой причине он также известен как метод «регулярного повышения».

Давайте посмотрим, чем XGBoost сравнительно лучше других методов:

Регуляризация:

Стандартная реализация GBM не имеет правил, таких как XGBoost.

Таким образом, XGBoost также помогает уменьшить переобучение.

Параллельная обработка:

XGBoost реализует параллельную обработку и работает быстрее, чем GBM.

Высокая гибкость:

XGBoost позволяет пользователям определять собственные цели оптимизации и критерии оценки, которые добавляют в модель совершенно новое измерение.

Обработка пропущенных значений:

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

Обрезка деревьев:

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

Max_depth = Используется для определения максимальной глубины.

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

Встроенная перекрестная проверка:

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

Вам не нужно заполнять пропущенные значения, так как XGBoost сам позаботится об отсутствующих значениях. Вы можете пропустить команду fillna, которую мы применили в начале.