В Случайном Лесу, почему случайное подмножество объектов выбрано на уровне узла, а не на уровне дерева?


13

Мой вопрос: почему случайный лес учитывает случайные подмножества объектов для разбиения на уровне узла в каждом дереве, а не на уровне дерева ?

Справочная информация: это вопрос истории. Тин Кам Хо опубликовал эту статью о построении «лесов принятия решений» путем случайного выбора подмножества объектов, которые будут использоваться для выращивания каждого дерева в 1998 году. Несколько лет спустя, в 2001 году, Лео Брейман опубликовал свою оригинальную статью « Случайный лес» , в которой подмножество объектов является случайным образом. выбран в каждом узле в каждом дереве, а не в каждом дереве. В то время как Брейман цитировал Хо, он конкретно не объяснил переход от случайного выбора объектов на уровне дерева к уровню узла.

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

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

mppmip

То, на что я смотрел до сих пор: до сих пор я прочитал статью Бреймана и статью Хо и провел широкий онлайн-поиск сравнений методов, не найдя однозначного ответа. Обратите внимание, что аналогичный вопрос был задан ранее. Этот вопрос идет немного дальше, включая мои предположения / работу по поиску возможного решения. Я был бы заинтересован в любых ответах, соответствующих цитатах или имитационных исследованиях, сравнивающих два подхода. Если ничего не выйдет, я планирую провести собственную симуляцию, сравнивая два метода.


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

2
Я уверен, что у Бреймана есть комментарий, связанный с этим, в его (имхо) оригинальной статье «Статистика - две культуры». Его точка зрения заключается в том, что иногда важность переменной маскируется другой переменной. Пакетирование на уровне узла позволит увидеть, что и когда для переменной.
Мех

1
Спасибо за комментарии. Возвращаясь к моей идее об эффективности: предположим, что пара переменных была связана и, как вы сказали, важность одной «маскировалась» под важность другой. Если бы мы построили предиктор RF с достаточным количеством деревьев и использовали поднабор функций на уровне дерева, у нас не было бы в конечном итоге достаточно деревьев с функцией «маскировки» и без функции «маскировки», чтобы понять важность первых без влияния последний? Я думаю, что мы говорим об одной и той же идее, по крайней мере. Благодарность!
Джлид

4
Вы можете, но подумайте, сколько еще деревьев вам нужно будет построить! Это тоже не понятно. Переменная A может вызвать расщепления, так что ни в одной из них переменная B не будет светиться. Это просто явно более надежно для выборки на уровне узла. Для меня это в основном относится к тому, какой должна быть начальная загрузка.
Мех

Ответы:


1

Предположим, у нас есть 10 объектов f1, f2, ..., f9, f10, затем, когда мы возьмем подмножество, предположим, что f1, f3, f4, f8 функций на самом уровне дерева, мы строим целое дерево, взяв эти 4 функции во внимание.

Мы вычисляем энтропию, сравниваем только эти 4 функции в каждом узле и выбираем функцию, которая дает максимальную энтропию. Это не очень полезно, поскольку мы ограничиваем наше древовидное обучение только этими 4 функциями. В противоположность этому, когда мы берем некоторое подмножество функций, скажем, f1, f8, f9 в первом узле, мы вычисляем энтропию и сравниваем их среди этих трех функций и выбираем ту, которая дает максимальное значение. Вместо дальнейшего наращивания дерева с теми же функциями, мы выбрали другое подмножество функций, скажем, f4, f7, f2 и сделаем разделение на основе этих функций. Предположим, что f8 был выбран в первом узле, а f2 был выбран во втором узле. Модель способна выучить отношения между этими двумя

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

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