Я пытаюсь реализовать приложение, использующее алгоритм AdaBoost. Я знаю, что AdaBoost использует набор слабых классификаторов, но я не знаю, что это за слабые классификаторы. Можете ли вы объяснить мне это на примере и сказать, должен ли я создавать свои собственные слабые классификаторы или я должен использовать какой-то алгоритм?
Слабый классификатор
Ответы (2)
Когда я использовал AdaBoost, мои слабые классификаторы были в основном пороговыми значениями для каждого атрибута данных. Эти пороги должны иметь производительность более 50%, иначе они будут полностью случайными.
Вот хорошая презентация об Adaboost и о том, как рассчитать эти слабые классификаторы: https://user.ceng.metu.edu.tr/%7Etcan/ceng734_f1112/Schedule/adaboost.pdf
Слабые классификаторы (или слабые ученики) — это классификаторы, которые работают лишь немного лучше, чем случайный классификатор. Таким образом, это классификаторы, которые имеют некоторое представление о том, как предсказывать правильные метки, но не так много, как сильные классификаторы, такие как, например, наивный байесовский алгоритм, нейронные сети или SVM.
Одним из самых простых слабых классификаторов является Пень решения, представляющий собой одноуровневое дерево решений. Он выбирает порог для одной функции и разбивает данные по этому порогу. Затем AdaBoost обучит целую армию таких решений, каждый из которых фокусируется на одной части характеристик данных.
x=size
, y=weight
, тогда ваш пень будет (например) порогом его 2d-евклидовой длины: if sqrt(x^2 + y^2) > 6 then return +1 else return -1
. Я выбрал условие > 6
случайным образом, просто чтобы показать суть.
- person Ory Band; 29.05.2014