Чи є формула або правило для визначення правильного sampSize для randomForest?


13

Я граю з randomForest і виявив, що загалом збільшення sampSize призводить до кращої продуктивності. Чи існує правило / формула / тощо, яке підказує, яким повинен бути оптимальний sampSize або це річ проб і помилок? Я здогадуюсь іншого способу її фразування; які мої ризики занадто малого розміру sampSize або занадто великого (надмірного розміщення?)?


Це питання стосується R впровадження випадкового лісу в randomForestпакеті. Функція randomForestмає параметр, sampSizeякий описаний у документації як

Розмір (и) зразка для малювання. Для класифікації, якщо вибірка розміру є вектором довжини чисельності шарів, то відбір проб стратифікується шарами, а елементи вибірки вказують на числа, які слід вивести з верств.

Відповіді:


21

Загалом, розмір вибірки для випадкового лісу виступає як контроль за "ступенем випадковості", що займається, і, таким чином, як спосіб коригування компромісу зміщення зміщення. Збільшення розміру вибірки призводить до «менш випадкових» лісів, і тому має тенденцію до надмірного використання. Зменшення розміру вибірки збільшує різницю в окремих деревах всередині лісу, запобігаючи перезволоження, але, як правило, за рахунок продуктивності моделі. Корисний побічний ефект полягає в тому, що менші розміри зразків скорочують час, необхідний для підготовки моделі.

Звичайне правило для найкращого розміру вибірки - це "зразок завантажувальної програми", зразок, який за розмірами дорівнює початковому набору даних, але обраний із заміною, тому деякі рядки не вибираються, а інші вибираються не один раз. Зазвичай це забезпечує майже оптимальну продуктивність і є типовим для стандартної реалізації R. Однак у реальних програмах ви можете виявити, що регулювання розміру вибірки може призвести до покращення продуктивності. У разі сумнівів виберіть відповідний розмір вибірки (та інші параметри моделі), використовуючи перехресну перевірку.


2

Я пробіг 4500 випадкових лісів за ніч з деякими випадковими параметрами параметрів:

Проблема регресії, Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5 коли будь-яка xвибірка відбирається незалежно від нормального розподілу, sd = 1, середнє = 1

Ytotal = Ysignal + Yerror

де Yerror = rnorm(n.observations,sd=sd(Ysignal))*noise.factor

theoretical.explainable.variance"TEV" = var(Ysignal= / var(Ytotal)

randomForest.performance = explained.variance(OOB cross-validation) / TEV

набори даних були відібрані з проблеми регресії, і доданий шум n.obsбув випадковим числом від 1000 до 5000 n.extra.dummy.variablesміж 1 і 20

ntree завжди 1000

sample_replacement завжди true

mtryстановить від 5 до 25, обмежений n.obs noise.factorміж 0 і 9

samplesize.ratio випадкове число між 10% і 100%, розмір відношення кожної завантажувальної програми

всі моделі були навчені як би rfo = randomForest(x=X, y=Ytotal, <more args>)

randomForest.performance, Його здатність пояснити найвищу частку від TEVзбільшення в загальному випадку, коли samplesizeопускається , коли TEVменше , ніж 50% , і зменшується , коли TEVвище , ніж 50%.

Таким чином, якщо ваші randomForest-modelfitзвіти, наприклад, 15% пояснюють відхилення OOB-CV, і це є прийнятною для вас точністю моделі, то, ймовірно, ви можете змінити ефективність трохи вище, знизивши sampsizeдо третини спостережень ntree > 1000.

Мораль : Для дуже галасливих даних краще де-співвіднести дерева, ніж зменшити упередженість шляхом вирощування дерев максимального розміру.


1

Щоб випадкові ліси працювали так само в нових даних, як і у навчальних даних, необхідний розмір вибірки величезний, часто буває в 200 разів більший за кількість кандидатів . Дивіться тут .


2
Доктор Харрелл, я думаю, що ОП запитує про розмір повторного відбору проб, який використовується для побудови кожного окремого дерева, а не про загальний розмір набору даних.
Sycorax повідомляє про відновлення Моніки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.