Почему оценка ошибки случайного леса OOB улучшается при уменьшении количества выбранных объектов?


14

Я применяю алгоритм случайного леса в качестве классификатора для набора данных микрочипов, который разделен на две известные группы с тысячами объектов. После первого запуска я смотрю на важность функций и снова запускаю алгоритм дерева с 5, 10 и 20 наиболее важными функциями. Я обнаружил, что для всех 10-ти и 20-ти функций оценка вероятности ошибок OOB составляет 1,19%, тогда как для топ-5 функций - 0%. Это кажется мне нелогичным, поэтому мне было интересно, можете ли вы объяснить, что я что-то упускаю или я использую неправильную метрику.

Я использовал пакет randomForest в R с ntree = 1000, nodeize = 1 и mtry = sqrt (n)


2
Просто чтобы прояснить: применяете ли вы RF итеративным образом, то есть выбираете лидирующие функции (в соответствии с индексом Джини или уменьшением MSE) из всего пространства ввода? Я знаю, что RF могут не обязательно улучшаться с увеличением количества деревьев, но то, что вы изображаете, кажется, имеет смысл (лучшие функции позволяют с 100% точностью предсказать выборки OOB), хотя при этом действии явно существует риск переобучения. ,
ЧЛ

Да, это то, что я делаю
Дэниелсбрюер

2
@chl, не могли бы вы объяснить, почему существует риск переоснащения при использовании только 5 функций?
Ташухка

Ответы:


15

Это наряд для выбора функций, и он довольно известен - см. Ambroise & McLachlan 2002 . Проблема основана на том факте, что RF слишком умный, а количество объектов слишком мало. В последнем случае, как правило, довольно легко случайно создать атрибут, который может иметь хорошую корреляцию с решением. И когда количество атрибутов велико, вы можете быть уверены, что некоторые из совершенно не относящихся к делу будут очень хорошими предикторами, даже достаточными для формирования кластера, который сможет воссоздать решение на 100%, особенно когда огромная гибкость РФ считается. Итак, становится очевидным, что при получении команды на поиск наилучшего из возможных подмножеств атрибутов процедура FS находит этот кластер.
Одно из решений (CV) дано в A & McL, вы также можете проверить наш подход к теме,Алгоритм Боруты , который в основном расширяет набор «теневыми атрибутами», сделанными случайными по конструкции, и сравнивает их РЧ-важность с этим, полученным для реальных атрибутов, чтобы определить, какие из них действительно случайны и могут быть удалены; это повторяется много раз, чтобы быть значительным. Boruta скорее предназначен для немного другой задачи, но, как показали мои тесты, полученный набор свободен от проблемы переоснащения FS.


2

Я думал, что добавлю интуитивное объяснение этой модели.

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

1) рассматривая только небольшое, случайно выбранное подмножество всех объясняющих переменных, и

2) выбрать наиболее тесно связанную объясняющую переменную в этом случайно выбранном подмножестве переменных, чтобы разделить данные.

Следовательно, вероятность того, что n наиболее важных переменных будет выбрано в любом конкретном узле, уменьшается с увеличением числа объясняющих переменных. Следовательно, если добавить большое количество переменных, которые дают мало объяснений или вообще не дают объяснений, это автоматически приводит к увеличению частоты ошибок леса. И наоборот, выбор только самых важных переменных для включения очень вероятно приведет к снижению частоты ошибок.

Случайные леса достаточно устойчивы к этому, и обычно требуется очень большое добавление этих «шумовых» параметров для значительного снижения производительности.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.