sklearn RandomForest: объединение случайных голосований в лесах и принятие финансового решения - PullRequest
0 голосов
/ 07 ноября 2018

Я построил RandomForest (RF) с пакетом sklearn.

Моя проблема в том, что я обучил РЧ с одинаковыми образцами с разными группами функций.

Например, есть 10 000 образцов, и я получил данные из разных лабораторий.

FR1 обучен с данными из Lab1 FR2 обучается с данными из Lab2 ... FR5 обучается с данными из Lab5

Количество функций в каждой лаборатории составляет 4000, поэтому размер данных в каждой лаборатории составляет 10 000 x 4000

Вместо слияния всех данных я бы хотел обучить RF и принять окончательное решение большинством голосов. Большинство голосов не только на основе лабораторий, но с учетом всех голосов в отдельных лабораториях.

Например, все модели произвели 100 деревьев, тогда я хотел бы принять окончательное решение из 100 * (5 лабораторных работ) = 500 деревьев. Не только большинством голосов лабораторий, но и большинством голосов от всех деревьев, полученных из отдельных лабораторий.

Не могли бы вы помочь мне, как я могу решить эту проблему?

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

RF делает прогнозы, используя средние значения прогнозов по всем деревьям. Итак, вы можете взять

estimators_

(это DecisionTrees; 5 * 100 в вашем примере) из каждого леса, сделайте прогнозы для каждого из них и затем усредните вероятности / результаты. Но я полагаю, что этот подход довольно равен усреднению выходных данных по всем RF:

outputs from forest 1: 0.5, 1, 1.5; average: 1
outputs from forest 2: 1, 1.25, 1.5; average: 1.25

average of forests: (1 + 1.25) / 2 = 1.125
average of trees: (0.5 + 1 + 1.5 + 1 + 1.25 + 1.5) / 6 = 6.75 / 6 = 1.125

Или лучшее решение: поместите сверху простую модель (LinearRegression / LogisticRegression), которая принимает выходные данные каждого RF и прогнозирует окончательное значение. Работал довольно хорошо в некоторых соревнованиях Kaggle. Простая модель поможет вам не одеваться.

...