← Назад к вопросам
Какие из трех моделей регрессии: линейная регрессия, дерево решений, градиентный бустинг - обученных на данных только с положительными значениями могут давать отрицательные предсказания?
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)
Вывод: Линейная регрессия и Градиентный бустинг могут давать отрицательные предсказания, дерево решений — нет.