Использование LASSO в случайном лесу


14

Я хотел бы создать случайный лес, используя следующий процесс:

  • Построить дерево на случайных выборках данных и объектов, используя прирост информации для определения разбиений
  • Завершить листовой узел, если он превышает предопределенную глубину, ИЛИ любое разделение приведет к тому, что число листьев будет меньше, чем предопределенный минимум
  • Вместо того, чтобы назначать метку класса для каждого дерева, назначьте пропорцию классов в узле листа
  • Прекратите строить деревья после того, как предварительно определенное число было построено

Это нарушает традиционный случайный лесной процесс двумя способами. Во-первых, он использует обрезанные деревья, которые назначают пропорции, а не метки классов. И, во-вторых, критерием остановки является заранее определенное количество деревьев, а не некоторая оценка ошибки вне пакета.

У меня вопрос такой:

Для вышеупомянутого процесса, который выводит N деревьев, могу ли я затем подогнать модель, используя логистическую регрессию с выбором LASSO? У кого-нибудь есть опыт подбора классификатора Random Forest и постобработки с помощью логистики LASSO?

В структуре ISLE упоминается использование LASSO в качестве этапа последующей обработки для проблем регрессии, но не для проблем классификации. Кроме того, я не получаю никаких полезных результатов, когда гуглю "Случайный лесной лассо".


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

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

Можете ли вы быть более конкретным о том, как вы планируете соответствовать логистической модели? Что именно являются переменными предиктора? Кроме того - какова ваша мотивация для пост-обработки? Если вы пытаетесь сделать выбор переменной, есть другие методы, которые следует учитывать.
Алекс Уильямс

Путем вывода прогнозов каждого дерева создается новый набор данных предикторов. Этот набор данных может использоваться в регрессии LASSO для получения разреженной комбинации предсказаний дерева. Мотивация заключается в создании моделей, которые являются более лаконичными и работают быстрее в производстве.
Zelazny7

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

Ответы:


5

Это звучит как повышение градиентного дерева. Идея повышения состоит в том, чтобы найти лучшую линейную комбинацию из класса моделей. Если мы подгоняем дерево к данным, мы пытаемся найти дерево, которое лучше всего объясняет переменную результата. Если вместо этого мы используем бустинг, мы пытаемся найти лучшую линейную комбинацию деревьев.

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

Более подробно об этом я бы предложил прочитать главу 10 «Элементы статистического обучения»: http://statweb.stanford.edu/~tibs/ElemStatLearn/

Хотя это не полный ответ на ваш вопрос, я надеюсь, что это поможет.


3
Благодарю. С тех пор, как я впервые разместил этот вопрос, я очень хорошо познакомился с пакетом GBM от R. Мой процесс теперь включает в себя создание модели GBM, скажем, 10 000 деревьев, а затем запуск всех 10 000 деревьев через GLMnet для выполнения регрессии LASSO на деревьях. Это приводит к сжатой модели GBM с минимальной потерей производительности или ее отсутствием (а иногда и повышением).
Zelazny7

@ Zelazny7 А как насчет данных о несогласованности / тестировании? Хорошо ли это предсказывает?
Джош

Да, все мои тесты проводятся с задержкой, которая никак не информирует разработчиков. Производительность не ухудшается в большинстве случаев. Иногда это немного хуже, иногда даже улучшается.
Zelazny7

1
@ Zelazny7 Я столкнулся с той же процедурой (на моей последней работе), с тем же опытом.
Мэтью Друри

Вы должны быть к чему-то ... Сам Хасти предлагает пост-обработку деревьев из случайного леса или повышение с помощью LASSO. Он упоминается в этом видео в 30:10.
Джонатан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.