Случайный лес с начальной загрузкой = False в scikit-learn python

#python #machine-learning #scikit-learn

#python #машинное обучение #scikit-learn

Вопрос:

Что делает RandomForestClassifier(), если мы выбираем bootstrap = False?

Согласно определению в этой ссылке

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble .RandomForestClassifier.html#sklearn.ensemble.Классификатор randomForest

bootstrap: логическое значение, необязательно (по умолчанию = True), используются ли образцы начальной загрузки при построении деревьев.

Спрашиваю это, потому что я хочу использовать подход случайного леса к временному ряду, поэтому тренируюсь с переходящим окном размера (t-n) и прогнозируемой датой (t k) и хотел знать, произойдет ли это, если мы выберем True или False:

1) Если Bootstrap = True , значит, когда обучающие выборки могут быть любого дня и любого количества функций. Так, например, могут быть выборки из day (t-15), day (t-19) и day (t-35), каждый из которых содержит случайно выбранные функции, а затем прогнозировать вывод date (t 1).

2) Если Bootstrap = False , то для обучения будут использоваться все образцы и все функции от date (t-n) до t, поэтому на самом деле он будет соблюдать порядок дат (то есть он будет использовать t-35, t-34, t-33… и т.д. до t-1). И затем будет предсказывать вывод даты (t 1).

Если это так, как работает Bootstrap, я был бы склонен использовать Boostrap = False, как будто было бы немного странно (подумайте о финансовых сериях) просто игнорировать возвраты за последовательные дни и переходить с дня t-39 на t-19, а затем на день t-15, чтобы предсказать день t 1. Мы бы пропустили всю информацию между этими днями.

Итак … так ли работает Bootstrap?

Ответ №1:

У меня нет репутации, чтобы комментировать. Поэтому я просто опубликую здесь свое мнение. В документации scikit-learn говорится, что размер подвыборки всегда совпадает с исходным размером входной выборки, но выборки выводятся с заменой, если bootstrap= True (по умолчанию). Итак, если bootstrap = FALSE, я думаю, что каждый подвыбор точно такой же, как и исходный входной образец.

Ответ №2:

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

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

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

Хорошо, что у вас не будет ежедневного построения каждого дерева — вот откуда берется значение RF. Каждое отдельное дерево будет довольно плохим предсказателем, но когда вы усредняете прогнозы из сотен или тысяч деревьев, вы (вероятно) получите хорошую модель.

Комментарии:

1. Кристально ясно, спасибо @Tchotchke. и хорошая ссылка. Был обеспокоен тем, что при этом будет игнорироваться информация об автокорреляции при использовании последовательных дней. Но я думаю, что RF позаботится об этом тогда.

2. Мне нравится ISLR — это лучшее введение в машинное обучение, которое я нашел. Прикладное прогнозное моделирование также довольно хорошо (хотя и не доступно в свободном доступе), а элементы статистического обучения (свободно доступные здесь ) намного более углублены.

3. Когда начальная загрузка имеет значение True, размер выборки совпадает с размером исходных данных. Каков размер выборки, когда значение bootstrap равно False?

4. Настройка bootstrap = False не приводит к подвыборке данных. Новая документация делает это более понятным.

Ответ №3:

Согласно этому определению [1]

Случайный лес — это метаоценщик, который соответствует ряду классификаторов дерева решений в различных подвыборках набора данных и использует усреднение для повышения точности прогнозирования и контроля над подгонкой. Размер подвыборки всегда совпадает с исходным размером входной выборки, но выборки выводятся с заменой, если bootstrap= True (по умолчанию).

Примечание: размер выборки всегда одинаков

Но образцы выводятся с заменой, если bootstrap= True (по умолчанию).

Итак, Bootstrap = True (по умолчанию): образцы отображаются с заменой Bootstrap = False: образцы отображаются без замены

[2] При выборке без замены каждая единица выборки из совокупности имеет только один шанс быть выбранной в выборке. Например, если кто-то рисует простую случайную выборку, так что ни одна единица не встречается в выборке более одного раза, выборка рисуется без замены.

Визуально можно представить, что из пакета шариков (образцов) вы выбираете M.

мешок шариков

Это составляет ваше подмножество под номером 1 с M шариками.

Теперь, если вы бросаете шарики в сумку, прежде чем подобрать еще один M для своего подмножества 2, вы выполняете «рисование с заменой» (bootstrap = True)

Но, если вы отложите подмножество 1 в сторону и возьмете еще M шариков из пакета для своего подмножества 2, то ни один из шариков в подмножестве 1 не может быть в подмножестве 2 (или любом другом подмножестве), потому что вы «рисуете без замены» (bootstrap = False)

[1]https://scikit-learn.org/stable/modules/generated/sklearn.ensemble .RandomForestClassifier.html

[2] http://methods.sagepub.com/Reference//encyclopedia-of-survey-research-methods/n516.xml