Слабый классификатор

Я пытаюсь реализовать приложение, использующее алгоритм AdaBoost. Я знаю, что AdaBoost использует набор слабых классификаторов, но я не знаю, что это за слабые классификаторы. Можете ли вы объяснить мне это на примере и сказать, должен ли я создавать свои собственные слабые классификаторы или я должен использовать какой-то алгоритм?


person AjMeen    schedule 23.08.2012    source источник


Ответы (2)


Когда я использовал AdaBoost, мои слабые классификаторы были в основном пороговыми значениями для каждого атрибута данных. Эти пороги должны иметь производительность более 50%, иначе они будут полностью случайными.

Вот хорошая презентация об Adaboost и о том, как рассчитать эти слабые классификаторы: https://user.ceng.metu.edu.tr/%7Etcan/ceng734_f1112/Schedule/adaboost.pdf

person marc_ferna    schedule 23.08.2012
comment
ссылка не работает - person Dzhao; 02.08.2017
comment
Ссылку нашел здесь: user.ceng.metu.edu. tr/~tcan/ceng734_f1112/Schedule/adaboost.pdf - person rayryeng; 02.01.2018

Слабые классификаторы (или слабые ученики) — это классификаторы, которые работают лишь немного лучше, чем случайный классификатор. Таким образом, это классификаторы, которые имеют некоторое представление о том, как предсказывать правильные метки, но не так много, как сильные классификаторы, такие как, например, наивный байесовский алгоритм, нейронные сети или SVM.

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

person Sicco    schedule 23.08.2012
comment
Я решил использовать пни решений. Моя идея для приложения: Распознавание типа слона. В моем классе Elephant есть поля: int size, int weight, double sampleWeight, тип ElephantType (который может быть азиатским или африканским). Я хотел бы знать, должен ли я создать только 2 пня решения (1 для размера и 1 для веса) или я должен сделать больше пней решения (несколько для размера и несколько для веса)? - person AjMeen; 24.08.2012
comment
@AjMeen Поскольку культ решения по определению является только одноуровневым, вы не можете использовать два культя решения один за другим. Лучший способ решить вашу проблему, IMO, - это создать двухмерный пень решения на основе этих двух различных функций. Таким образом, вы будете учитывать обе функции в (одном) пне решения: скажем, 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
comment
@AjMeen Когда я сказал, что вы не можете использовать более одного пня решения, я имел в виду ... за одну итерацию. Вы должны тренировать один пень решения на каждой итерации в adaboost. - person Ory Band; 29.05.2014