← Назад к вопросам

Какие из трех моделей регрессии: линейная регрессия, дерево решений, градиентный бустинг - обученных на данных только с положительными значениями могут давать отрицательные предсказания?

2.0 Middle🔥 201 комментариев
#Машинное обучение#Метрики и оценка моделей

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Какие модели могут давать отрицательные предсказания

Краткий ответ

Линейная регрессия и Градиентный бустинг могут. Дерево решений — нет.

Линейная регрессия

from sklearn.linear_model import LinearRegression

X = [[1], [2], [3], [4], [5]]
y = [1, 2, 3, 4, 5]

lr = LinearRegression()
lr.fit(X, y)
print(lr.predict([[-1]])[0])  # Может быть отрицательным

Моделирует линейную функцию ŷ = w0 + w1*x без ограничений. Экстраполирует за пределы тренировочных данных.

Дерево решений

from sklearn.tree import DecisionTreeRegressor

dt = DecisionTreeRegressor()
dt.fit(X, y)
print(dt.predict([[-100]])[0])  # Только положительное

Предсказывает среднее значение в листе. Так как все листья содержат положительные y, результат всегда >= min(y_train).

Градиентный бустинг

from sklearn.ensemble import GradientBoostingRegressor

gb = GradientBoostingRegressor()
gb.fit(X, y)
print(gb.predict([[-1]])[0])  # Может быть отрицательным

Сумма деревьев: ŷ = сумма(αi * treei). Взвешенная сумма положительных значений может быть отрицательной при экстраполяции.

Таблица

МодельОтрицательныеПричина
Линейная регрессияДаНет ограничений
Дерево решенийНетСреднее в листе
Градиентный бустингДаСумма с коэффициентами

Практика

Для предотвращения отрицательных значений:

y_pred = np.maximum(model.predict(X), 0)

Вывод: Линейная регрессия и Градиентный бустинг могут давать отрицательные предсказания, дерево решений — нет.