В Случайном Лесу каждое дерево растет параллельно на уникальной выборке данных Boostrap. Поскольку ожидается, что каждая выборка бустрапа будет содержать около 63% уникальных наблюдений, это оставляет примерно 37% наблюдений, которые можно использовать для тестирования дерева.
Теперь, кажется , что в стохастической Градиент Активизации, существует также оценки похож на тот , в РФ:
Если для bag.fraction задано значение больше 0 (рекомендуется 0,5), gbm вычисляет ожидаемую оценку улучшения качества прогноза. Он оценивает уменьшение отклонения от тех наблюдений, которые не использовались при выборе следующего дерева регрессии.
Источник: Ridgeway (2007) , раздел 3.3 (стр. 8).
У меня проблемы с пониманием, как это работает / действительно. Скажем, я добавляю дерево в последовательности. Я выращиваю это дерево на случайной подвыборке исходного набора данных. Я мог бы проверить это единственное дерево на наблюдениях, которые не были использованы для его выращивания. Согласовано. НО , поскольку Boosting является последовательным, я скорее использую всю последовательность деревьев, построенных до сих пор, чтобы обеспечить прогноз для этих опущенных наблюдений. И есть большая вероятность, что многие из предшествующих деревьев уже видели эти наблюдения. Таким образом, модель на самом деле не тестируется в каждом раунде на невидимых наблюдениях, как с RF, верно?
Итак, как же это называется оценкой ошибки "из пакета"? Мне кажется, что это не "из" сумки, так как наблюдения уже были замечены?
Ответы:
Отвечая только частично (и добавляя новый вопрос к вашему вопросу).
Реализация gbm в R http://www.rdocumentation.org/packages/gbm/functions/gbm имеет два параметра для настройки некоторых параметров.
а)
train.fraction
определит часть данных, которые используются для обучения всех деревьев, и, таким образом, 1 -train.fraction
будет истинной OOB (вне пакета) данных.б)
bag.fraction
определит пропорцию обучающих данных, которые будут использоваться при создании следующего дерева в бусте. Таким образом, могут существовать некоторые данные, которые никогда не используются для создания какого-либо дерева, и они могут действительно использоваться как данные OOB (но это маловероятно, см. Вопрос ниже)err.rate
confusion
Я не знаю, как на это ответить (и я благодарю вас (+1) за то, что задали вопрос и заставили меня осознать, что я не понимаю этот аспект randomForests). Возможное решение состоит в том, что есть только один загрузчик - и все деревья построены из него - но, насколько я знаю, это не так.
источник
train.fraction
параметра (который является просто функцией функции gbm, но отсутствует в исходном алгоритме), а на самом деле от того факта, что только подобразец Данные используются для обучения каждого дерева в последовательности, оставляя наблюдения (которые могут быть использованы для тестирования). Что восходит к моему первоначальному вопросу. Как эти наблюдения можно использовать для тестирования, поскольку они, вероятно, были много раз замечены многими предыдущими деревьями в последовательности?Я полагаю, что они делают из сумки оценку на каждом этапе. Поскольку результаты всех шагов суммируются (с коэффициентами), ошибки OOB также могут быть добавлены с такими же коэффициентами.
источник