Регрессия: предсказываем число

Первая большая задача обучения с учителем — предсказать число.

Регрессия — задача обучения с учителем, в которой модель предсказывает непрерывное число.

Когда это регрессия

Если ответ, который вы хотите получить, — это число на шкале (а не одна из нескольких категорий), перед вами регрессия. Примеры:

  • Цена квартиры по её характеристикам.
  • Температура завтра по данным за прошлые дни.
  • Сколько товара купят на следующей неделе.
  • Время доставки заказа.
  • Зарплата по опыту и навыкам.

Во всех случаях ответ — число, и между числами есть порядок: 9 миллионов больше 8, а разница «8 и 9» осмысленна. Это отличает регрессию от классификации, где ответ — ярлык («спам»/«не спам») без понятия «больше-меньше».

Интуиция: ищем зависимость

Суть регрессии — найти зависимость метки от признаков. Представьте точки на графике: по горизонтали площадь квартиры, по вертикали цена. Точки лежат не идеально, но видно тенденцию: больше площадь — выше цена. Модель пытается описать эту тенденцию математически, чтобы по новой площади предсказать цену.

Самая простая зависимость — прямая линия. Поэтому первый и базовый метод регрессии так и называется — линейная регрессия. Ей посвящён следующий урок.

Регрессия и классификация рядом

ВопросТип задачиОтвет
Сколько будет стоить квартира?РегрессияЧисло (12.5 млн)
Это спам или нет?КлассификацияКатегория
Какая завтра температура?РегрессияЧисло (+18°)
Кошка на фото или собака?КлассификацияКатегория

Иногда границы размываются: «вероятность, что клиент уйдёт» — это число от 0 до 1, но по сути задача о категориях. Тут важно понимать смысл, а не цепляться за форму.

Грубая регрессия руками

Чтобы почувствовать идею, оценим цену совсем наивно: предположим фиксированную цену за квадратный метр и умножим на площадь. Это ещё не настоящая модель, но уже регрессия — мы предсказываем число. Код запускается:

# Наивная регрессия: цена = площадь * цена_за_метр
price_per_m2 = 200_000   # руб за квадратный метр

flats = [40, 55, 75, 100]
for area in flats:
    predicted = area * price_per_m2
    print(f"{area} м2 -> {predicted/1_000_000:.1f} млн руб")

Вывод:

40 м2 -> 8.0 млн руб
55 м2 -> 11.0 млн руб
75 м2 -> 15.0 млн руб
100 м2 -> 20.0 млн руб

Здесь коэффициент 200 000 мы взяли с потолка. В настоящей регрессии модель сама подберёт такой коэффициент по данным — так, чтобы предсказания были как можно ближе к реальным ценам. Как именно она это делает, разберём в уроке про функцию потерь.

Итог

  • Регрессия предсказывает непрерывное число, между значениями которого есть порядок.
  • Примеры: цена, температура, спрос, время, зарплата.
  • Отличие от классификации: там ответ — категория без понятия «больше-меньше».
  • Базовый метод — линейная регрессия: описать зависимость прямой линией.
Проверьте себя
1. Какая из задач является задачей регрессии?
AОпределить, спам письмо или нет
BПредсказать стоимость квартиры в рублях
CПонять, кошка на фото или собака
DРазбить клиентов на сегменты без меток
2. Чем регрессия принципиально отличается от классификации?
AРегрессия предсказывает число, классификация — категорию
BРегрессия не использует данные
CКлассификация работает только без учителя
DОни ничем не отличаются
3. Как называется самый базовый метод регрессии, описывающий зависимость прямой линией?
AКластеризация
BЛинейная регрессия
CЛогистическая классификация
DПонижение размерности
Поддержать проект