[Глубокие понятия] · Анализ модельного ансамбля (ансамбля)

искусственный интеллект Python

1 Интеграция модели (ансамбль)

Однажды я услышал поговорку,«Фишка — главное, Ансамбль — заднее». Feature определяет верхний предел эффекта модели, а Ensemble призвана приблизить вас к этому верхнему пределу. Ансамбль обращает внимание на «хорошее, но другое», и разница относится к разным акцентам, усвоенным моделью. Возьмем интуитивный пример, такой как тест по математике: если А лучше справляется с функциональными вопросами, чем Б, а Б лучше справляется с вопросами геометрии, чем А, то их совместные баллы обычно выше, чем их отдельные баллы.

Общие методы ансамбля включают в себя бэггинг, бустинг, стек и смешивание.

1.1 Bagging

Бэггинг заключается в объединении нескольких моделей (базовый ученик), результат прогноза простоСредневзвешенное значение или голосование. Преимущество Бэгинга в том, что он может параллельно обучать базовых учеников, а Random Forest использует идею Бэгинга. Возьмем простой пример, как показано ниже:

 

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

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

1.2 Boosting

Идея Boosting немного похожа наЗная ошибки можно исправить, каждое обучение базового ученика должно исправлять ошибки, допущенные предыдущим базовым учеником. Среди известных алгоритмов — AdaBoost и Gradient Boost. Gradient Boost Tree использует эту идею.

Я упомянул бустинг в разделе 1.2.3 (Анализ ошибок), Анализ ошибок -> Извлечение признаков -> Модель обучения -> Анализ ошибок, этот процесс очень похож на бустинг.

1.3 Stacking

Укладка сделана с новой моделью (средний ученик)идти снаучиться сочетатьТебазовый ученик, идея которого восходит кStacked GeneralizationЭто эссе. Если бэггинг рассматривается как линейная комбинация нескольких базовых классификаторов, то стекирование — это нелинейная комбинация нескольких базовых классификаторов. Стекирование может быть очень гибким: ученики могут размещаться слой за слоем, образуя сетчатую структуру, как показано на следующем рисунке:

 

Для более интуитивного примера две задачи на сложение:

 

Здесь A и B можно рассматривать как основных учеников, а C, D и E — второстепенных учеников.

  • Этап 1: А и Б написали свои ответы.
  • Стадия 2: C и D просматривают ответы A и B, C думает, что A так же умен, как B, а D думает, что A немного умнее, чем B. Каждый из них дал свой ответ, объединив ответы А и Б.
  • Стадия 3: E просматривает ответы C и D, E думает, что D умнее C, а затем E также дает свой ответ в качестве окончательного ответа.

 

Одна вещь, о которой следует помнить при реализации Stacking, — это избегатьУтечка этикетки. в обучениисредний ученик, необходимостьучащийся предыдущего уровняРезультаты теста на Train Data используются в качестве признаков. Если мы тренируемся на данных обучения, а затем предсказываем данные обучения, это приведет к утечке меток. Чтобы избежать утечки меток, необходимо использовать K-кратность для каждого учащегося и объединять результаты прогнозирования K моделей в действительном наборе в качестве входных данных для следующего уровня учащегося. Как показано ниже:

 

 

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

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

1.4 Blending

Blending очень похож на Stacking, и их различия можно отнести кздесь