Деревья решений / пни с Adaboost

Я только начал изучать деревья решений с Adaboost и пробую это на OpenCV, и у меня есть несколько вопросов.

Усиленные деревья решений

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

Могу ли я вместо этого использовать Bootstrapping при обучении деревьев решений с Adaboost? то есть мы выбираем подмножества нашего набора данных и обучаем дерево для каждого подмножества перед подачей классификаторов в Adaboost.

Усиленные пни решений

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

1

Решение

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

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

  1. Обучите пень принятия решения на начальном наборе данных без весов (так же, как каждый элемент, имеющий вес = 1).
  2. Обновите веса всех элементов, используя формулу из алгоритма AdaBoost. Вес правильно классифицированных элементов должен стать меньше, вес неправильно классифицированных — больше.
  3. Тренируйте пень решения, используя текущие веса. То есть минимизируйте не только количество ошибок, допущенных этим пнем решения, но и сумму весов ошибок.
  4. Если желаемое качество не было достигнуто, переходите к пт. 2.
2

Другие решения

Других решений пока нет …