Использовать Adaboost со случайными базовыми классификаторами леса?

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

(В основном кто-то спросил его здесь, но единственный ответ так сильно противоречит моим наблюдениям, которыми я делюсь ниже)

Тем не менее, никто явно не сказал, что с этим что-то не так, поэтому я попробовал его на типичном наборе данных с n строками p реальных функций и списком меток длиной n. В случае, если это имеет значение, они представляют собой вложения узлов в граф, полученный с помощью алгоритма DeepWalk, и узлы делятся на два класса. Я обучил несколько моделей классификации на этих данных, используя 5-кратную перекрестную проверку, и измерил для них общие показатели оценки (точность, отзыв, AUC и т. Д.). Я использовал такие модели, как SVM, логистическая регрессия, случайный лес, двухслойный персептрон и Adaboost со случайными классификаторами леса. Последняя модель, Adaboost со случайными классификаторами лесов, дала наилучшие результаты. Конечно, теперь время выполнения увеличилось, скажем, в 100 раз, но это все еще около 20 минут, так что для меня это не ограничение. Теперь мне интересно, стоит ли мне подозревать его хорошую точность (95% AUC по сравнению с 89% многослойного персептрона и 88% случайного леса).

Вот что я подумал: во-первых, я использую перекрестную проверку, поэтому, вероятно, нет переоснащения, летящего под радаром. Во-вторых, оба являются методами ансамблевого обучения, но случайный лес - это метод пакетирования, тогда как Adaboost - метод повышения. Так что они все еще достаточно разные, чтобы их комбинация имела смысл.

Я ошибся?


person Esi    schedule 06.06.2021    source источник
comment
никто явно не сказал, что с этим что-то не так - это неправда, я прямо объяснил в связанном ответе, что, по крайней мере, теоретически, Adaboost следует применять к нестабильные классификаторы, которых нет в РФ. Теперь имейте в виду, что машинное обучение в значительной степени является эмпирической областью с недостаточной теоретической составляющей, и тот факт, что в вашем случае с конкретными данными вы получаете лучшие результаты, не противоречит. В любом случае это не вопрос программирования - см. ПРИМЕЧАНИЕ здесь, где можно задать альтернативные места: stackoverflow.com/tags/machine-learning/info   -  person desertnaut    schedule 06.06.2021
comment
Также обратите внимание, что AUC не является точностью и не измеряет производительность единственной окончательной модели (он измеряет производительность модели, усредненную по диапазону всех возможных пороги классификации); см. stackoverflow.com/a/58612125/4685471   -  person desertnaut    schedule 06.06.2021
comment
Я знаю, что AUC - это не точность, но это было то, что нас в основном интересовало (потому что это лучший показатель при использовании несбалансированных данных). Позвольте мне добавить сюда цифры точности: Adaboost с RF: 90,5, RF: 88,5, многослойный персептрон: 86% (в среднем более 5 раз)   -  person Esi    schedule 06.06.2021
comment
Возможно, для несбалансированных данных вам следует проверить оценку F1 (точность действительно бессмысленна). Упомянутые проблемы с AUC сохраняются.   -  person desertnaut    schedule 06.06.2021