Я применяю алгоритм случайного леса в качестве классификатора для набора данных микрочипов, который разделен на две известные группы с тысячами объектов. После первого запуска я смотрю на важность функций и снова запускаю алгоритм дерева с 5, 10 и 20 наиболее важными функциями. Я обнаружил, что для всех 10-ти и 20-ти функций оценка вероятности ошибок OOB составляет 1,19%, тогда как для топ-5 функций - 0%. Это кажется мне нелогичным, поэтому мне было интересно, можете ли вы объяснить, что я что-то упускаю или я использую неправильную метрику.
Я использовал пакет randomForest в R с ntree = 1000, nodeize = 1 и mtry = sqrt (n)
r
machine-learning
classification
random-forest
danielsbrewer
источник
источник
Ответы:
Это наряд для выбора функций, и он довольно известен - см. Ambroise & McLachlan 2002 . Проблема основана на том факте, что RF слишком умный, а количество объектов слишком мало. В последнем случае, как правило, довольно легко случайно создать атрибут, который может иметь хорошую корреляцию с решением. И когда количество атрибутов велико, вы можете быть уверены, что некоторые из совершенно не относящихся к делу будут очень хорошими предикторами, даже достаточными для формирования кластера, который сможет воссоздать решение на 100%, особенно когда огромная гибкость РФ считается. Итак, становится очевидным, что при получении команды на поиск наилучшего из возможных подмножеств атрибутов процедура FS находит этот кластер.
Одно из решений (CV) дано в A & McL, вы также можете проверить наш подход к теме,Алгоритм Боруты , который в основном расширяет набор «теневыми атрибутами», сделанными случайными по конструкции, и сравнивает их РЧ-важность с этим, полученным для реальных атрибутов, чтобы определить, какие из них действительно случайны и могут быть удалены; это повторяется много раз, чтобы быть значительным. Boruta скорее предназначен для немного другой задачи, но, как показали мои тесты, полученный набор свободен от проблемы переоснащения FS.
источник
Я думал, что добавлю интуитивное объяснение этой модели.
В каждом дереве решений, содержащем случайный лес, данные итеративно разделяются по отдельным измерениям. Важно, что эта процедура включает
1) рассматривая только небольшое, случайно выбранное подмножество всех объясняющих переменных, и
2) выбрать наиболее тесно связанную объясняющую переменную в этом случайно выбранном подмножестве переменных, чтобы разделить данные.
Следовательно, вероятность того, что n наиболее важных переменных будет выбрано в любом конкретном узле, уменьшается с увеличением числа объясняющих переменных. Следовательно, если добавить большое количество переменных, которые дают мало объяснений или вообще не дают объяснений, это автоматически приводит к увеличению частоты ошибок леса. И наоборот, выбор только самых важных переменных для включения очень вероятно приведет к снижению частоты ошибок.
Случайные леса достаточно устойчивы к этому, и обычно требуется очень большое добавление этих «шумовых» параметров для значительного снижения производительности.
источник