Как реализовать вес в adaboost?

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

1 ответ

Для этого есть два решения: конкретное для используемого классификатора и общий подход.

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

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

  (e1,0.2),(e2,0.4),(e3,0.8)

Вероятность того, что e3 содержится в выбранном в качестве первого примера 4/7, Проблема с этим подходом, однако, очевидна. Чтобы получить точное представление, нам нужно сгенерировать обучающий набор, по крайней мере, с 7 элементы. Это значительно увеличивает время выполнения. Тем не менее, для повышения точности взвешивания во время тренировки имхо это не так важно.

Другие вопросы по тегам