Почему регрессия Gradient Boosting предсказывает отрицательные значения, когда в моем тренировочном наборе нет отрицательных значений y?


8

Как я могу увеличить количество деревьев в scikit узнать «S GradientBoostingRegressor, я получаю более негативные прогнозы, несмотря на то, нет отрицательных значений в моем обучении или тестирования набора. У меня есть около 10 функций, большинство из которых являются двоичными.

Вот некоторые параметры, которые я настраивал:

  • количество деревьев / итераций;
  • глубина обучения;
  • и скорость обучения.

Процент отрицательных значений, по-видимому, максимально около 2%. Глубина обучения 1 (пни), казалось, имела самый большой% отрицательных значений. Этот процент также, казалось, увеличился с большим количеством деревьев и меньшей скоростью обучения. Набор данных от одного из соревнований детской игровой площадки.

Мой код что-то вроде:

from sklearn.ensemble import GradientBoostingRegressor

X_train, X_test, y_train, y_test = train_test_split(X, y)

reg = GradientBoostingRegressor(n_estimators=8000, max_depth=1, loss = 'ls', learning_rate = .01)

reg.fit(X_train, y_train)

ypred = reg.predict(X_test)

1
Есть ли шанс воспроизвести пример с кодом и данными?
Spacedman

2
какой игровой конкурс это?
TheAxeR

Ответы:


8

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

X     Y
10    0
20    1
30    2

разумно построить модель f(x) = x/10-1, которая x<10возвращает отрицательные значения.

То же самое относится «между» вашими точками данных, всегда возможно, что из-за предполагаемого набора функций (которые могут быть смоделированы определенным методом) вы получите значения «из ваших обучающих выборок».

Вы можете подумать об этом по-другому - «что такого особенного в отрицательных значениях?», Почему вы находите наличие отрицательных значений странным (если оно не предусмотрено в обучающем наборе), в то время как вас не пугает существование, скажем, допустимого. .. значение 2131,23? Если не разрабатывать таким образом, ни одна модель не будет относиться к отрицательным значениям «иначе», чем к положительным. Это просто естественный элемент реальных ценностей, который может быть достигнут как любая другая ценность.


Что касается вашего набора вопросов, я думаю, что просто отрицательные значения легче идентифицировать как аномалии, потому что они имеют «-» перед ними или явно опускаются ниже нуля на графиках. С таким же легкостью можно задать вопрос: «Почему регрессия с градиентным ускорением предсказывает ранее невидимые значения?». Может быть, вы могли бы попытаться расширить это? Это наверняка получит от вас голос "за".
Джош

@lejlot - Вообще говоря, это не так. Регрессионные модели с логистической или тан-активацией часто гарантированно имеют выходы в определенных пределах.
user48956

@ user48956 отвечает, что «может вести себя произвольным образом», я не утверждаю, что вы не можете принудительно установить некоторые ограничения, конечно, вы можете - отвечать только в том случае, если нет «зависимого от данных» ограничения (если у вас нет очень специфической модели, которая имеет это встроенная конструкция) - если вы добавите это вручную в качестве эксперта - это ваше дело.
lejlot

5

Помните, что GradientBoostingRegressor(при условии функции потери квадрата ошибок) последовательно подгоняет деревья регрессии к остаткам предыдущего этапа. Теперь, если дерево на этапе i прогнозирует значение, большее, чем целевая переменная для конкретного обучающего примера, остаток этапа i для этого примера будет отрицательным, и поэтому дерево регрессии на этапе i + 1 столкнется с отрицательными целевыми значениями. (которые являются остатками от стадии i). Поскольку алгоритм повышения складывает все эти деревья, чтобы сделать окончательный прогноз, я считаю, что это может объяснить, почему вы можете получить отрицательные прогнозы, даже если все целевые значения в обучающем наборе были положительными, особенно если вы упомянули, что это происходит чаще часто, когда вы увеличиваете количество деревьев.


Это правильный ответ.
hahdawg
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.