ММООЗЗГГ.ru

Словарь ИИ

Что такое дисбаланс классов

Коротко

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

Машинное обучение · class imbalance

Михаил МозгПроверено: 1 минута чтения

Ребенку

Представь, что в коробке сто красных шариков и всего два синих. Если каждый раз говорить «красный», ошибаться почти не будешь, но синий так и не научишься находить. Компьютер, который учится на таких примерах, поступает похоже: привыкает к частому ответу. Поэтому люди следят, чтобы редкие примеры тоже было хорошо видно.

Простыми словами

Модель учится на примерах и замечает, какие ответы встречаются чаще. Если среди тысячи платежей мошеннических всего несколько, ей выгодно всегда отвечать «платеж честный»: доля верных ответов выйдет почти идеальной, а пользы не будет никакой. Такой перекос исправляют тремя способами: редкие примеры показывают чаще, частые прореживают или прямо объясняют модели, что пропуск редкого случая стоит дороже. Похожая история с врачом, который годами видел только здоровых пациентов: редкую болезнь он легко пропустит.

Для бизнеса

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

Для специалиста

Дисбаланс классов (class imbalance) это неравномерное распределение меток в задаче классификации, при котором миноритарный класс (minority class) занимает малую долю выборки. Функцию потерь, усредненную по примерам, тогда определяет в основном мажоритарный класс, а доля верных ответов (accuracy) теряет смысл; качество оценивают точностью и полнотой, F1-мерой, PR-AUC и матрицей ошибок. Методы делят на три группы. Уровень данных: случайная недовыборка (undersampling), повторение редких примеров (oversampling) и синтез новых; SMOTE (Chawla и соавторы, JAIR, 2002) создает синтетические точки миноритарного класса между соседними примерами и сочетается с недовыборкой мажоритарного. Уровень функции потерь: веса классов (class weights), обучение с учетом стоимости ошибок (cost-sensitive learning), focal loss (Lin и соавторы, 2017), которая снижает вес хорошо классифицированных примеров и сосредотачивает обучение на трудных. Уровень решения: сдвиг порога и калибровка вероятностей. Стратифицированное разбиение сохраняет долю классов в обучающей и тестовой частях.

Пример

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

Связанные термины

Вопросы и ответы

Почему при дисбалансе классов нельзя смотреть на долю верных ответов?

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

Как исправить дисбаланс классов?

Есть три пути: изменить данные, то есть повторить или синтезировать редкие примеры и проредить частые, задать редкому классу больший вес в функции потерь или сдвинуть порог решения. Какой путь подходит, проверяют на отложенной выборке с реальным соотношением классов.

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram