Может ли модель регрессии предсказывать значения за границами целевой переменной в обучающей выборке?

«Может ли модель регрессии предсказывать значения за границами целевой переменной в обучающей выборке?» — вопрос из категории Классическое ML, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, модель регрессии может выдавать предсказания за пределами диапазона целевой переменной (y), наблюдавшегося при обучении. Чаще всего это происходит при экстраполяции — когда модель применяется к входным данным (X), которые выходят за границы пространства признаков обучающей выборки.

Пример с линейной регрессией:

import numpy as np
from sklearn.linear_model import LinearRegression

# Обучаем на простой линейной зависимости
X_train = np.array([1, 2, 3]).reshape(-1, 1)  # Признак от 1 до 3
y_train = np.array([10, 20, 30])              # Таргет от 10 до 30

model = LinearRegression()
model.fit(X_train, y_train)

# Предсказание в пределах интервала X (интерполяция)
print(model.predict([[2.5]]))  # ~25.0 - внутри диапазона y

# Предсказание за пределами интервала X (экстраполяция)
print(model.predict([[5]]))    # ~50.0 - ВЫШЕ максимального y_train (30)
print(model.predict([[0]]))    # ~0.0 - НИЖЕ минимального y_train (10)

Когда это происходит и какие риски:

  1. Линейные модели (LinearRegression, Ridge, Lasso): Легко экстраполируют, продолжая найденный тренд. Это может быть опасно, если зависимость нелинейна.
  2. Древовидные модели (DecisionTree, RandomForest, Gradient Boosting): Как правило, не умеют экстраполировать. Их предсказание для точек вне обучающего диапазона будет равно значению в ближайшей «граничной» области обучения (например, максимальному или минимальному y_train).
  3. Нейронные сети: Способны к экстраполяции, но их поведение вне обучающего распределения непредсказуемо и часто ненадежно.

Вывод из практики: Всегда нужно понимать, как ваша модель ведет себя на краях и за пределами обучающих данных. Перед развертыванием важно проводить анализ и, возможно, добавлять ограничивающую постобработку.