Задачи регрессии
Коротко
Definition
Задача регрессии — это задача машинного обучения, в которой модель должна предсказать численное значение целевой переменной.
Регрессия используется, когда ответом модели должно быть число: цена, температура, энергия, концентрация, длительность, вероятность события в течение времени или другой количественный показатель.
Главный вопрос регрессии: насколько близко предсказанное число к истинному значению.
Что требуется предсказать
В задаче регрессии модель получает объект и предсказывает численное значение .
Формально:
где:
- — входной объект;
- — предсказанное численное значение;
- — истинное численное значение.
В отличие от классификации, где модель выбирает класс, в регрессии ответ лежит на числовой шкале.
Примеры целевых переменных:
- цена квартиры;
- температура завтра;
- энергия образования материала;
- растворимость вещества;
- время доставки;
- количество продаж;
- концентрация вещества;
- прочность материала.
Примеры задач
Типичные задачи регрессии:
- предсказать цену недвижимости по характеристикам квартиры;
- предсказать расход топлива по параметрам автомобиля;
- предсказать температуру по метеоданным;
- предсказать энергию образования кристалла в Materials ML;
- предсказать механические свойства материала;
- предсказать активность молекулы по её структуре;
- предсказать спрос на товар;
- предсказать время выполнения операции.
Во всех этих случаях модель должна вернуть не категорию, а число.
Типы входов и выходов
Входные данные могут быть разными:
- Табличные данные — признаки объекта в виде строк и колонок;
- Изображения — снимки, микроскопия, медицинские изображения;
- Последовательности — временные ряды, сигналы, тексты;
- Графовые данные — молекулы, кристаллы, сети связей.
Выход регрессионной модели обычно один из трёх:
- одно число, например цена квартиры;
- несколько чисел, например координаты объекта;
- распределение или интервал неопределённости, если модель оценивает не только прогноз, но и уверенность.
Простая регрессия предсказывает одно значение. Многовыходная регрессия предсказывает несколько числовых значений одновременно.
Подходящие модели
Для табличных данных часто используют:
- Линейная регрессия;
- Полиномиальная регрессия;
- SVR;
- Дерево решений;
- Случайный лес;
- Градиентный бустинг.
Для изображений могут использоваться:
Для последовательностей могут использоваться:
Для графов, молекул и кристаллов используются графовые модели, подробнее см. Графовые данные, ML для материалов и GNN для молекул и кристаллов.
Функции потерь
Регрессионные модели обычно обучаются так, чтобы уменьшить ошибку между истинными значениями и предсказаниями.
Частые функции потерь:
- MSE — средний квадрат ошибки;
- MAE — средняя абсолютная ошибка;
- Huber loss — компромисс между MSE и MAE;
- Quantile loss — ошибка для предсказания квантилей.
MSE сильнее штрафует большие ошибки, потому что ошибка возводится в квадрат. MAE менее чувствительна к выбросам, потому что использует абсолютное отклонение.
Выбор функции потерь зависит от того, какие ошибки особенно нежелательны в задаче.
Метрики оценки
Основные метрики регрессии:
- MAE — средняя абсолютная ошибка;
- MSE — среднеквадратичная ошибка;
- RMSE — корень из среднеквадратичной ошибки;
- R² — качество относительно baseline, который предсказывает среднее;
- MAPE — средняя абсолютная процентная ошибка.
Подробно эти метрики разобраны в Метрики качества регрессоров.
Обычно для регрессии полезно смотреть не одну метрику, а несколько. Например, MAE показывает средний размер ошибки, а RMSE помогает увидеть, есть ли у модели крупные промахи.
Типичные ошибки
Смотреть только на R²
R² удобен для сравнения с baseline, но сам по себе не говорит, насколько ошибка приемлема практически.
Например, модель может иметь хороший R², но ошибаться на величину, которая недопустима в реальном применении.
Не сравнивать с простым baseline
Перед сложной моделью нужно проверить простой baseline:
- всегда предсказывать среднее;
- всегда предсказывать медиану;
- использовать простую линейную модель;
- использовать простое правило из предметной области.
Если сложная модель ненамного лучше baseline, возможно, данные или признаки недостаточно информативны.
Игнорировать масштаб целевой переменной
MAE = 10 может быть хорошим результатом для цены квартиры в тысячах евро, но плохим результатом для температуры в градусах.
Метрики регрессии нужно интерпретировать в единицах целевой переменной.
Не смотреть распределение ошибок
Средняя ошибка может скрывать важные проблемы:
- модель хорошо работает на обычных объектах, но плохо на редких;
- модель систематически завышает прогноз;
- модель систематически занижает прогноз;
- модель плохо работает на краях диапазона.
Поэтому после метрик полезно смотреть остатки:
Использовать MAPE около нуля
MAPE плохо работает, если истинные значения могут быть равны нулю или близки к нулю. Даже маленькая абсолютная ошибка в таком случае может дать огромную относительную ошибку.
Минимальный пример
Допустим, модель предсказывает цену квартиры в тысячах евро.
| Квартира | Истинная цена | Предсказание | Ошибка |
|---|---|---|---|
| 1 | 300 | 310 | -10 |
| 2 | 250 | 240 | 10 |
| 3 | 500 | 470 | 30 |
| 4 | 400 | 420 | -20 |
Абсолютные ошибки:
| Квартира | Абсолютная ошибка |
|---|---|
| 1 | 10 |
| 2 | 10 |
| 3 | 30 |
| 4 | 20 |
Средняя абсолютная ошибка:
Интерпретация: модель в среднем ошибается примерно на 17.5 тысяч евро.
Если для задачи такая ошибка приемлема, модель может быть полезной. Если нет, нужно улучшать данные, признаки, модель или постановку задачи.
Практические замечания
Хороший workflow для регрессии:
- Понять единицы измерения целевой переменной.
- Проверить распределение целевой переменной.
- Построить простой baseline.
- Обучить модель.
- Оценить MAE, RMSE и R².
- Посмотреть распределение ошибок.
- Проверить ошибки на важных подгруппах.
- Проверить, нет ли data leakage.
- Сравнить качество с практическими требованиями задачи.
В прикладных задачах важно не только получить хорошую метрику, но и понять, где именно модель ошибается.
Например, в Materials ML средняя ошибка по всем материалам может быть приемлемой, но модель может плохо работать на редких классах соединений. Для научной задачи это может быть критичнее, чем среднее качество.