Как использовать вес при обучении слабого ученика для adaboost

Ниже приведен алгоритм adaboost: enter image description here

Он упоминает "использование весов wi на данных обучения" в части 3.1.

Я не очень понимаю, как использовать вес. Должен ли я пересчитывать данные обучения?

Ответ 1

Я не очень понимаю, как использовать вес. Должен ли я перепрограммировать данные обучения?

Это зависит от того, какой классификатор вы используете.

Если ваш классификатор может учитывать вес экземпляра (взвешенные примеры обучения), тогда вам не нужно перепродавать данные. Примером классификатора может быть наивный классификатор байков, который накапливает взвешенные счета или взвешенный классификатор k-ближайшего соседа.

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

На практике

Фактически на практике усиление работает лучше, если вы полагаетесь только на пул очень наивных классификаторов, например, решающий пень, линейный дискриминант. В этом случае приведенный вами алгоритм имеет легко реализуемую форму (подробнее см. здесь): enter image description here Где альфа выбирается (epsilon определяется так же, как и ваш).

enter image description here

Пример

Определить задачу двух классов в плоскости (например, круг точек внутри квадрата) и построить сильного классера из пула случайных порожденных линейных дискриминантов знака типа (ax1 + bx2 + c).

Два ярлыка класса представлены красными крестиками и синими точками. Мы используем кучу линейных дискриминантов (желтые линии) для создания пула наивных/слабых классификаторов. Мы генерируем 1000 точек данных для каждого класса в графе (внутри круга или нет), а 20% данных зарезервировано для тестирования.

enter image description here

Это результат классификации (в тестовом наборе данных), в котором я использовал 50 линейных дискриминаторов. Ошибка обучения составляет 1,45%, а ошибка тестирования составляет 2,3%.

enter image description here

Ответ 2

Весовые значения - это значения, применяемые к каждому примеру (образцу) на этапе 2. Эти веса затем обновляются на этапе 3.3 (wi).

Итак, изначально все веса равны (шаг 2), и они увеличиваются для ошибочно классифицированных данных и уменьшаются для корректно классифицированных данных. Таким образом, на этапе 3.1 вам необходимо взять это значение в расчет, чтобы определить новый классификатор, придавая большее значение более высоким значениям веса. Если вы не изменили вес, вы будете производить точно такой же классификатор каждый раз, когда выполняете шаг 3.1.

Эти веса используются только для целей обучения, они не являются частью окончательной модели.