Вопрос по random-forest, r, regression, machine-learning, statistics – установка значений для ntree и mtry для модели случайной лесной регрессии

34

м с использованием пакета RrandomForest сделать регресс на некоторых биологических данных. Размер моих тренировочных данных38772 X 201

Я просто задавался вопросом --- что будет хорошим значением для количества деревьевntree и количество переменных на уровеньmtry? Существует ли приблизительная формула для поиска таких значений параметров?

Каждая строка в моих входных данных представляет собой 200 символов, представляющих аминокислотную последовательность, и я хочу построить регрессионную модель, чтобы использовать такую последовательность для прогнозирования расстояний между белками.

В реальности построения случайных лесов из больших наборов данных, ntrees часто является компромиссом между временем выполнения и точностью. blmoore
Согласен, пока хороший вопрос, он здесь не относится. Также, возможно, постарайтесь сделать его более читабельным. PascalVKooten
Это больше похоже на работу дляstats.stackexchange.com MattLBeck

Ваш Ответ

5   ответов
5

Может ли эта статья помочь?Ограничение количества деревьев в случайных лесах

Аннотация. Цель этой статьи - предложить простую процедуру, которая априори определяет минимальное количество классификаторов для объединения, чтобы получить уровень точности предсказания, подобный тому, который получен с комбинацией больших ансамблей. Процедура основана на непараметрическом значении по Макнемару. Знание априори минимального размера ансамбля классификатора, обеспечивающего наилучшую точность прогнозирования, представляет собой выигрыш в затратах времени и памяти, особенно для огромных баз данных и приложений реального времени. Здесь мы применили эту процедуру к четырем системам множественных классификаторов с деревом решений C4.5 (Брейманs Bagging, Ho ’Случайные подпространства, их комбинацию мы обозначили ‘Bagfs’и Брейманs Случайные леса) и пять больших баз данных. Стоит отметить, что предложенная процедура может быть легко распространена и на другие базовые алгоритмы обучения, кроме дерева решений. Результаты эксперимента показали, что можно существенно ограничить количество деревьев. Мы также показали, что минимальное количество деревьев, необходимое для получения наилучшей точности прогноза, может варьироваться от одного метода комбинации классификаторов к другому

Они никогда не используют более 200 деревьев.

1

Я использую приведенный ниже код для проверки точности, так как я играю с ntree и mtry (измените параметры):

results_df 
18

Краткий ответ: нет.

randomForest Функция, конечно, имеет значения по умолчанию для обоихntree а такжеmtry, По умолчанию дляmtry часто (но не всегда) разумно, в то время как обычно люди хотят увеличитьntree от него'с по умолчанию 500 совсем немного.

"правильный" значение дляntree как правило, нетне вызывает особого беспокойства, так как, если немного повозиться, станет очевидно, что прогнозы, полученные в модели, победили.после определенного количества деревьев многое не меняется.

Вы можете потратить (читай: тратить) много времени, возиться с такими вещами, какmtry (а такжеsampsize а такжеmaxnodes а такжеnodesize и т.д.), вероятно, в какой-то мере, но по моему опыту не так много. Тем не менее, каждый набор данных будет отличаться. Иногда вы можете увидеть большую разницу, иногда вообще нет.

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

Кроме того, как-то я забыл, чтоranfomForest Сама упаковка имеетtuneRF функция, специально предназначенная для поискаоптимальный» значение для.mtry

К вашему сведению, я поговорил с Адель Катлер относительно оптимизации параметров РЧ, и она указала, что пошаговые процедуры, которые "tuneRF» а также "поезд" использование приводит к смещению. Кроме того, как указано в моем посте, возможно переоснащение RF, путем корреляции ансамбля. Таким образом, существует баланс в количестве повторов начальной загрузки между сближением ошибок, взаимодействием переменных и предотвращением перегрузки. Jeffrey Evans
1

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

35

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

Оптимизация количества загрузочных повторов отсутствует. Я часто начинаю сntree=501 а затем построить случайный объект леса. Это покажет вам сходимость ошибки, основанную на ошибке OOB. Вам нужно достаточно деревьев, чтобы стабилизировать ошибку, но не так много, чтобы вы слишком коррелировали ансамбль, что приводит к переобучению.

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

Для размеров вашей проблемы я бы началntree=1501, Я также рекомендовал бы взглянуть на один из опубликованных подходов выбора переменных, чтобы уменьшить количество ваших независимых переменных.

Надеюсь, ты нене возражаю, я чуть-чуть очистил это, чтобы сделать его более читабельным. joran
Что касается последнего пункта ответа @Jeffrey Evans, я бы предложил использоватьrfcv (объяснил также здесьstats.stackexchange.com/questions/112556/...). Я нашел это полезным для удаления наименее важных независимых переменных. Nemesi

Похожие вопросы