Классификация и регрессия
Банку нужен ответ «вернёт кредит или нет», риелтору — цена квартиры. Обе задачи решает обучение с учителем, но ответы у них разной природы. Первый ответ выбирают из двух вариантов, второй может быть любым числом. От этого зависит, какую модель брать и как измерять её ошибку.
Классификация (classification) — задача, где целевая переменная принимает одно значение из конечного набора категорий. Категории называют классами: спам и не спам, кошка, собака и птица. Классов бывает два, как у спама, или десятки, как у пород собак на фото. Регрессия (regression) — задача, где цель — число на непрерывной шкале: цена, температура, время доставки.
| Задача | Цель | Тип |
|---|---|---|
| Отсеять спам | спам / не спам | классификация |
| Оценить квартиру | цена в миллионах | регрессия |
| Узнать животное на фото | кошка / собака / птица | классификация |
| Предсказать время доставки | минуты | регрессия |
В регрессии ошибки бывают разного размера: промах на тысячу рублей лучше промаха на миллион. Поэтому ошибку регрессии измеряют в единицах цели. В классификации ответ либо верный, либо нет, и считают долю неверных ответов.
Решает цель, а не название
Тип задачи определяет только целевая переменная. Классы часто хранят числами: 0 — кошка, 1 — собака, 2 — птица. Числовой столбец не делает задачу регрессией.
Проверьте, имеет ли смысл среднее между двумя ответами. Средняя цена двух квартир — тоже цена, а среднего между кошкой и птицей не существует.
Название модели тип задачи тоже не определяет. Логистическая регрессия (logistic regression), несмотря на название, решает задачу классификации: она предсказывает класс объекта.
Частая ошибка
Номера классов считают обычными числами:
classes = ["cat", "dog", "bird"]
y = [0, 2, 0, 2]
average = sum(y) / len(y) # ✗
print(average) # 1.0
print(classes[int(average)]) # dogPython считает без ошибок, но в ответе смысла нет. Среднее между кошками и птицами оказалось собакой.
Номер 1 стоит между 0 и 2 только потому, что классы так пронумеровали. Расстояние между номерами классов ничего не значит. Модель регрессии, обученная на таком столбце, будет делать ту же ошибку: предсказывать «промежуточные» классы.
Если цель — категория, задача остаётся классификацией, в каком бы виде ни хранились классы.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.