Модель листа в случайной лесной регрессии - PullRequest
0 голосов
/ 26 марта 2020

Я работаю над проблемой ограниченной регрессии, где моя целевая переменная находится в интервале [0,100]. Мои тренировочные данные имеют значения целевой переменной, равномерно распределенные по интервалу [0,100], поэтому реализация моделей наивно часто приводит к большим ошибкам, потому что прогноз находится вне интервала [0,100].

Я хочу использовать модель случайного леса, потому что мои входные данные имеют несколько разных типов данных (некоторые непрерывные функции, некоторые двоичные и т. д. c), и я знаю, что модель случайных лесов хорошо справляется с этим. В моем учебнике говорится, что отдельное дерево решений регрессии, учитывая новую точку данных, назначенную листу L, либо (a) вернет среднее значение данных обучения, равное листу L ИЛИ (b) подгонит линейную модель к обучению данные в листе L, а затем вернуть прогнозируемое значение линейной модели, учитывая нашу новую точку данных.

Я действительно хочу, чтобы первая функция (a) использовалась, поскольку она заставит мои деревья решений возвращать значения только в правильном ограниченном наборе. Однако я использую sklearn.ensemble.RandomForestRegressor и предполагаю, что он (как и большинство деревьев решений регрессии) использует функцию (b), описанную выше. Я думаю, что она использует функцию (b) для каждого отдельного дерева, а затем возвращает среднее значение ВСЕХ деревьев в лесу в качестве окончательного значения регрессии, но это все еще может быть вне интервала [0,100].

Подхожу ли я на правильные предположения? Есть ли способ решить эту проблему с помощью sklearn или других пакетов Python?

(Кроме того, если у кого-то есть какие-либо рекомендации по моделям для этих данных, ограниченная цель с входными данными смешанного типа, оставьте ее в комментарии!)

...