Классификация: предсказываем класс
Вторая большая задача с учителем — определить, к какому классу относится объект.
Классификация — задача обучения с учителем, в которой модель относит объект к одной из заранее заданных категорий (классов).
Когда это классификация
Если ответ — это ярлык из конечного набора, а не число на шкале, перед вами классификация. Примеры:
- Письмо: спам или не спам.
- Снимок: есть патология или нет.
- Фото: кошка, собака или птица.
- Транзакция: мошенническая или обычная.
- Отзыв: позитивный, нейтральный или негативный.
Между классами нет отношения «больше-меньше»: «кошка» не больше «собаки». Этим классификация отличается от регрессии, где ответы можно упорядочить.
Бинарная и многоклассовая
| Тип | Сколько классов | Пример |
| Бинарная | Два | Спам / не спам |
| Многоклассовая | Три и больше | Кошка / собака / птица |
Самый частый случай — бинарная классификация: «да/нет», «здоров/болен», «уйдёт/останется». Многие сложные задачи сводят к набору бинарных.
Классы и вероятности
Большинство классификаторов выдают не просто ярлык, а вероятность каждого класса. Например, «спам с вероятностью 0.92». Дальше применяют порог: если вероятность спама выше 0.5 — считаем письмо спамом. Порог можно двигать: для важной почты его поднимают, чтобы случайно не отправить в спам нужное письмо.
# Превращаем вероятность в класс по порогу
def classify(prob_spam, threshold=0.5):
return "спам" if prob_spam >= threshold else "не спам"
for p in [0.1, 0.45, 0.5, 0.92]:
print(f"вероятность={p} -> {classify(p)}")
# Поднимем порог: модель станет осторожнее
print("С порогом 0.8:", classify(0.7, threshold=0.8))
Вывод:
вероятность=0.1 -> не спам вероятность=0.45 -> не спам вероятность=0.5 -> спам вероятность=0.92 -> спам С порогом 0.8: не спам
Почему задача нетривиальна
Спамеры маскируют слова, болезни проявляются по-разному, кошки бывают в неожиданных позах. Жёсткими правилами всё это не покрыть — поэтому классификацию решают через обучение на размеченных примерах. Модель сама находит, какие сочетания признаков характерны для каждого класса. Как именно она проводит границу между классами — тема следующего урока.
Цена ошибки бывает разной
В классификации две ошибки не равнозначны, и это сильно влияет на дело. Пропустить мошенническую транзакцию (назвать её обычной) — потеря денег. Заблокировать честную операцию (назвать обычную мошеннической) — раздражённый клиент. В медицине пропустить болезнь куда опаснее, чем перестраховаться и отправить здорового на повторный анализ.
Именно поэтому порог классификации настраивают под задачу: где-то важнее ничего не пропустить, где-то — не поднимать ложных тревог. Этот компромисс мы измерим конкретными числами в разделе про метрики, а пока запомните саму мысль: «правильно классифицировать» не всегда значит «угадать побольше ответов» — иногда важнее не допустить определённого типа ошибки.
Итог
- Классификация предсказывает категорию из конечного набора, между классами нет порядка.
- Бинарная — два класса, многоклассовая — три и больше.
- Классификаторы обычно выдают вероятности; ярлык получают, сравнивая вероятность с порогом.
- Порог можно настраивать под цену ошибки в конкретной задаче.